summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2021-11-21 17:04:21 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2021-11-21 17:09:35 +0900
commite6ba08c3b21cdb14ee3a97b5d584759a4597b54b (patch)
treee8b4121323f2f448aeaa15bf3bddb465f36aea8b
parentf312c235ea5f9971066f3808997d20f89c25f33b (diff)
downloadextra-dependencies-e6ba08c3b21cdb14ee3a97b5d584759a4597b54b.tar.gz
extra-dependencies-e6ba08c3b21cdb14ee3a97b5d584759a4597b54b.zip
uncrustify-trinity: updated based on upstream version 0.74.0
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/AUTHORS158
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CMakeLists.txt538
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CONTRIBUTING.md95
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/ChangeLog1476
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/README.md377
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/changelog328
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/docs2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/002_trinity_customization.diff230
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/003_allow_older_distributions.diff40
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/004_fixed_usage.diff51
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/005_upstream_cb1a42dd.diff14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/006_fix_python_detection_on_older_cmake.diff22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/series6
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/rules15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/ben.cfg.txt112
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/config.txt3214
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/default.cfg3214
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/index.html186
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Indenting.html129
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_For.html33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Spaces.html432
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/amxmodx.cfg207
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/ben.cfg1200
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/ben2.cfg83
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/d.cfg83
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/defaults.cfg3214
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/freebsd.cfg382
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/gnu-indent.cfg82
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/klaus.cfg501
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/kr-indent.cfg82
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/linux.cfg121
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/mono.cfg86
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/sun.cfg1781
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uigui_uncrustify.ini6712
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/forUncrustifySources.cfg467
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/man/uncrustify.1.in170
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/package.json21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/release-process.rst324
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/EnumStructUnionParser.cpp2858
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ParseFrame.cpp294
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/add_space_table.h302
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_proto.cpp218
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/backup.cpp166
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/brace_cleanup.cpp1426
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/braces.cpp1622
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/chunk_list.cpp1159
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/chunk_list.h1014
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine.cpp3815
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_fix_mark.cpp2574
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_skip.cpp324
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_tools.cpp565
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/frame_list.cpp299
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/indent.cpp4402
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/keywords.cpp665
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_rules.cpp80
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_rules.h63
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/newlines.cpp6609
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option.cpp1184
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options.h3879
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/output.cpp3319
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/output.h46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/remove_extra_returns.cpp83
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/remove_extra_returns.h23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/space.cpp3649
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/token_enum.h398
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize.cpp2866
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize_cleanup.cpp1724
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_tools.cpp496
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify.cpp2648
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify.h99
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_emscripten.cpp1217
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/CMakeLists.txt91
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c-sharp.test144
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c.test397
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/replace.list1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/28.txt371
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/66.txt741
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/Debug_tracking_space.html23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/help.txt77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_error.txt1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_uc.txt756
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_ucwd.txt3214
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_nd_uc.txt756
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_nd_ucwd.txt3214
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/show_config.txt3214
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/tracking_space.html23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/universalindent.cfg6712
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/test_cli_options.py831
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2591.cf2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U01-Cs.cfg281
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U07-Cs.cfg282
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U08-Cpp.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U08-Cs.cfg281
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U26-Cpp.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11095.cfg318
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11993.cfg286
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18437.cfg286
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-29935.cfg147
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-32657.cfg315
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-32658.cfg285
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-37241.cfg286
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet.cfg507
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon4.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben2.cfg44
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_012.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_014.cfg41
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_018.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_021.cfg10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_022.cfg10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_047.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_058.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_074.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_086.cfg22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_087.cfg36
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_100.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_105.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1620.cfg288
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1637.cfg286
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1650.cfg287
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1689.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_752.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-2.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-center.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-left.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-right.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-types.txt28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clark.cfg37
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d.cfg46
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d2.cfg48
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/empty_body.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/freebsd.cfg26
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_param.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_3116.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_527.cfg265
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst3.cfg70
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda1.cfg15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-1.rerun.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-f.cfg16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-r.cfg19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-force.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-1.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-2.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pascal_ptr.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pawn.cfg14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/preproc-cleanup.cfg36
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr-arith.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-1.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-2.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-3.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.3315874.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sim.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_byref-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-a.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-f.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-r.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_empty.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_class_empty.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_def_empty.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_proto_empty.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_type_brace_init_lst-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_comma.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-force.cfg19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-remove.cfg17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cpp.test961
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/d.test68
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/ecma.test7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00005-cmt-align.c20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02000-i2c-core.c1457
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02002-i2c-core.c1457
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02100-i2c-core.c1393
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02503-pp_concat_asn1.h298
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10003-bug_i_222.c6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/0044-i2116.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10101-issue_574.cpp-a13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30023-templates.cpp196
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30098-Issue_2692.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30100-templates.cpp199
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30101-templates.cpp181
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30102-templates.cpp187
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30103-templates.cpp187
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30122-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30123-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30124-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30125-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30126-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp153
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp153
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30320-returns.cpp30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30321-returns.cpp30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30322-returns.cpp30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30323-returns.cpp30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30324-returns.cpp30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30325-returns.cpp30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30744-Issue_2170.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30750-lambda.cpp89
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30751-lambda.cpp72
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30770-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30771-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30772-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30773-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30774-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30775-lambda.cpp88
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30804-block_pointer.cpp16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30806-ptr-star.cpp70
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30807-ptr-star.cpp70
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30810-ptr-star.cpp76
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30811-misc3.cpp21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30922-variadic-template.h10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30944-sp_paren_comma.cpp2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31600-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31601-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31602-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31603-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31604-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31605-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31606-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31607-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31608-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31609-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31661-Issue_3097.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33018-byref-2.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33058-stdcall.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33081-namespace_namespace.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33093-bug_i_322.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33203-bug_1288.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34167-nl_func_call_args_multi_line_ignore_closures.cpp75
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34203-i1516.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34209-lambda_selfcalling.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34280-UNI-29935.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/39001-GH-2091.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60006-UNI-2049.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10013-620_getset-brace.cs10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60043-UNI-36862.cs10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40010-template.d30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50035-sort_import.m32
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50070-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50071-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50072-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50073-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50074-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50075-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50076-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50601-bug_i_477.m1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m103
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-react_native.m42
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60003-tags.pawn69
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60004-enum.pawn91
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60100-Issue_2586.pawn4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21000-mysql.sqc45
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21001-sta-select.sqc76
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3097.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-330.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref-2.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/gcc_case_ellipsis.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1516.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_3116.cpp213
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_args_multi_line_ignore_closures.cpp58
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/returns.cpp30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_enum_colon.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates.cpp185
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template.d28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_catch.m18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/tags.pawn63
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/java.test43
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/objective-c.test180
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/pawn.test24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/staging.test8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/test.py292
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/vala.test15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.editorconfig (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.editorconfig)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitattributes (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.gitattributes)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/ISSUE_TEMPLATE (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.github/ISSUE_TEMPLATE)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/workflows/uncrustify_test.yml (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.github/workflows/uncrustify_test.yml)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitignore (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.gitignore)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.travis.yml (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.travis.yml)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS166
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/BUGS (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/BUGS)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt554
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CODEOWNERS (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CODEOWNERS)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CONTRIBUTING.md90
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/COPYING (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/COPYING)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog1544
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/Comments.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/Comments.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/HELP (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/HELP)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/LIMITATIONS.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/LIMITATIONS.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/NEWS (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/NEWS)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/README.md389
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/TESTING (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/TESTING)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/appveyor.yml (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/appveyor.yml)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/CodeCoverage.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/CodeCoverage.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateTokenNames.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/GenerateTokenNames.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateVersionHeader.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/GenerateVersionHeader.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw32.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/Toolchain-mingw32.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw64.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/Toolchain-mingw64.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/uninstall.cmake27
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/commit.log (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/commit.log)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/coverity.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.travis.yml (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/coverity.travis.yml)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/debian-tde.mk (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/cdbs/debian-tde.mk)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/versions.pl (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/cdbs/versions.pl)0
-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/compat (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/compat)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/control (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/control)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/copyright (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/copyright)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/docs4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/001_docs-remove-remote-images.patch (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/001_docs-remove-remote-images.patch)0
-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/debian/patches/003_allow_older_distributions.diff40
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/004_fixed_usage.diff55
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/series4
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/rules19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/format (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/source/format)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/options (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/source/options)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Track.jpg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/Track.jpg)bin23478 -> 23478 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Tracking.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/Tracking.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/align-thresholds.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/align-thresholds.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/control_the_spaces.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/control_the_spaces.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/dump-steps.txt53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/example.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/example.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/goals.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/goals.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/how_to_format_cpp_lambda_functions.rst (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/how_to_format_cpp_lambda_functions.rst)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/align_typedef.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/align_typedef.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/ben.cfg.txt113
-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/configuration.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/configuration.txt)0
-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/examples/c-1.in.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/c-1.in.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.out.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/c-1.out.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/example.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/example.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/images/linuxlinks.gif (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/images/linuxlinks.gif)bin462 -> 462 bytes
-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/linux.cfg.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/linux.cfg.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ASM.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_ASM.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Align.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Align.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_CLI_NET.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_CLI_NET.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_C_sharp.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_C_sharp.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_D.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_D.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Indenting.html130
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Java.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Java.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ModifyCode.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_ModifyCode.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Namespace.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Namespace.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_NewLines.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_NewLines.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Objectiv-C.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Objectiv-C.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Positioning.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Positioning.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Preprocessor.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Preprocessor.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Assign.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Assign.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Byref.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Byref.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Case.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Case.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Cast.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Cast.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Class.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Class.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Comma.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Comma.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Enum.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Enum.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_For.html33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_New.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_New.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Operator.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Operator.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Paren.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Paren.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Template.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Template.html)0
-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/htdocs/project-support.jpg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/project-support.jpg)bin3788 -> 3788 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.css (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/uncrustify.css)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/uncrustify.html)0
-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/documentation/overview.odt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/overview.odt)bin16651 -> 16651 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/paren_stack.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/paren_stack.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/theory.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/theory.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/threads.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/threads.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/track.html (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/track.html)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMakeLists.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMakeLists.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_catFiles.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMake_catFiles.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_emscripten_test.cmake (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMake_emscripten_test.cmake)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/README.md (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/README.md)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/build.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/build.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/libUncrustify.d.ts (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/libUncrustify.d.ts)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_file (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/postfix_file)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_module.js (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/postfix_module.js)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_file (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/prefix_file)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_module.js (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/prefix_module.js)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/run_tests.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/test/run_tests.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/test_run.js (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/test/test_run.js)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/MS-calling_conventions.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/MS-calling_conventions.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/align_assign.txt19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/amxmodx.cfg208
-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/ben2.cfg84
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/d.cfg84
-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/dofiles.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/dofiles.sh)0
-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/gnu-indent.cfg83
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/klaus.cfg508
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/kr-indent.cfg83
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux-indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/linux-indent.cfg)0
-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/mono.cfg87
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/msvc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/msvc.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/objc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/objc.cfg)0
-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/types.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/types.txt)0
-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/etc/uncrust-files.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uncrust-files.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrustify.xml.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uncrustify.xml.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/xsupplicant.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/xsupplicant.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/extras.vpj (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/extras.vpj)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg471
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/forUncrustifySources.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/ChunkStack.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/ChunkStack.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/align.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/align.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/chunk_list.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/chunk_list.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/logger.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/logger.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/readme.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/readme.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/unc_text.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/unc_text.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/uncrustify_types.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/uncrustify_types.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/man/uncrustify.1.in181
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/osx/Xcode Organizer Actions.xccommands (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/osx/Xcode Organizer Actions.xccommands)0
-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
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Gcov_test.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/Gcov_test.sh)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Run_clang-tidy.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/Run_clang-tidy.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/add_test_list.awk (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/add_test_list.awk)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/check_options.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/check_options.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/cmpcfg.pl (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/cmpcfg.pl)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/compare_the_gcov.awk (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/compare_the_gcov.awk)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_changelog.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_changelog.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_config_combinations_uniq_output.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output_example.json (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_config_combinations_uniq_output_example.json)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/grammar_permutator.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/grammar_permutator.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_katehl.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_katehl.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_option_enum.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_option_enum.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_options.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_options.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_punctuator_table.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_punctuator_table.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_version.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_version.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/option_reducer.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/option_reducer.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/au-sm123.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/au-sm123.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/co-gcc.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/co-gcc.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/lint_cfg.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/lint_cfg.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/pclint_cfg_eclipse.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/pclint_cfg_eclipse.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/policy.lnt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/policy.lnt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/run-pclint-eclipse.bat (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/run-pclint-eclipse.bat)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/usage.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/usage.txt)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/prepare_list_of_authors.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/prepare_list_of_authors.sh)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/release_tool.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/release_tool.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/run_ctest.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/run_ctest.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/tokenizer.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/tokenizer.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/update_emscripten_bindings.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/update_emscripten_bindings.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/.kateconfig (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/.kateconfig)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ChunkStack.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ChunkStack.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/EnumStructUnionParser.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ListManager.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ListManager.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ParseFrame.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/add_space_table.h296
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_add.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_add.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_asm_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_asm_colon.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_assign.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_assign.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_eigen_comma_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_eigen_comma_init.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_params.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_proto.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_init_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_init_brace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_left_shift.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_log_al.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_log_al.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_nl_cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_nl_cont.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_decl_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_decl_colon.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_colons.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_colons.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_spec.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_spec.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_preprocessor.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_preprocessor.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_same_func_call_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_same_func_call_params.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_stack.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_stack.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_struct_initializers.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_struct_initializers.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tab_column.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tab_column.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tools.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tools.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_trailing_comments.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_trailing_comments.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_typedefs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_typedefs.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_var_def_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_var_def_brace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/args.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/args.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.cpp165
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/backup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/base_types.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/base_types.h)0
-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/brace_cleanup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/brace_cleanup.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/braces.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/calculate_closing_brace_position.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/calculate_closing_brace_position.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/char_table.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/char_table.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_fix_mark.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_labels.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_labels.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_skip.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_tools.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_posix.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat_posix.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_win32.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat_win32.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/config.h.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/config.h.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/cs_top_is_question.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/cs_top_is_question.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/detect.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/detect.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_cleanup.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_cleanup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_flags.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_flags.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/error_types.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/error_types.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_braced_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_braced_init_list.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_decltype.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_parens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_parens.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/frame_list.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/indent.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/keywords.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/lang_pawn.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/lang_pawn.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/language_tools.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/language_tools.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_levels.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_levels.h)0
-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.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logger.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logger.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logmask.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logmask.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/md5.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/md5.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/newlines.h)0
-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/option.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.cpp.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option_enum.cpp.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.h.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option_enum.h.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.cpp.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options.cpp.in)0
-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/options_for_QT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options_for_QT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options_for_QT.h)0
-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/output.h50
-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/parameter_pack_cleanup.h15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parens.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parent_for_pp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parent_for_pp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/pcf_flags.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/pcf_flags.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/prototypes.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/prototypes.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/punctuators.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/punctuators.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/quick_align_again.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/quick_align_again.h)0
-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/remove_extra_returns.h21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/semicolons.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/semicolons.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/sorting.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/sorting.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/space.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/symbols_table.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/symbols_table.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize_cleanup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_ctype.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_ctype.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_text.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_text.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_tools.h)0
-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.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_limits.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_types.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_types.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_version.h.in (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_version.h.in)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unicode.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unicode.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/universalindentgui.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/universalindentgui.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/width.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/width.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/windows_compat.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/windows_compat.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/.editorconfig (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/.editorconfig)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/CMakeLists.txt93
-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/config/I-842.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/I-842.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.txt2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_d.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/mini_d.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_nd.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/mini_nd.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/replace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/replace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/tracking_space.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/tracking_space.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/truncate.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/truncate.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/unmatched_close_pp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/unmatched_close_pp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-3310.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/I-842.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-842.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/I-842.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/backup.h-save (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/backup.h-save)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/class_enum_struct_union.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/class_enum_struct_union.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/logger.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/logger.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/replace.list2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/testSrc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrcP.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/testSrcP.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/tracking_space.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/tracking_space.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/truncate.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/truncate.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/unmatched_close_pp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/unmatched_close_pp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/21.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/21.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/25.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/25.txt)0
-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.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/31.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/36.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/36.txt)0
-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/9.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/9.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/92.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/92.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/Debug_tracking_space.html23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/I-842.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/unmatched_close_pp.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/backup.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/backup.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.csv (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/class_enum_struct_union.csv)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/class_enum_struct_union.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/copyright-header.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/help.txt83
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/logger_cs_L_99.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/logger_cs_L_99.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/p.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/p.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/pc-.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/pc-.txt)0
-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/tracking_space.html23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/truncate.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/truncate.txt)0
-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/cli/output/unmatched_close_pp.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2302.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/v-out.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/v-out.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/xyz-err.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/xyz-err.txt)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/test_cli_options.py853
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1225.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1225.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-no-split.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1liner-no-split.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-split.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1liner-split.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue-2278.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue-2278.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2279.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2279.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2360-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-b.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2360-b.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2411.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2411.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2640.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2640.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3169.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3233.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3269.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3272.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3274.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3327.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3350.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3351.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3356.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3370.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3377.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/add_long_closebrace_comment_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/add_long_closebrace_comment_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_attr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_attr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-1.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-2.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-3.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-4.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-5.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-6.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-7.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-8.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-9.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_keep_extra.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_keep_extra.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_right_cmt_gap-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_right_cmt_gap-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_418.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_span_418.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_419.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_span_419.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_416.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_thresh_416.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_417.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_thresh_417.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_stack.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_stack.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_func-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_gap-3_span-5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_gap-3_span-5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_047.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_048.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_048.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_049.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_049.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_050.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_050.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_051.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_051.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_052.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_052.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_053.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_053.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_054.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_054.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_055.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_055.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_056.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_056.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_057.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_057.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_058.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_061.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_061.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_063.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_063.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_064.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_064.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_065.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_065.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_069.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_069.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_070.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_070.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_071.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_071.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_072.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_072.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_073.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_073.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_074.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_075.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_075.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_076.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_076.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_077.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_077.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_078.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_078.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_079.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_079.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_080.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_080.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_081.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_081.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_083.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_083.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_084.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_084.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_085.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_085.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_086.cfg23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_087.cfg37
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_088.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_088.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_089.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_089.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_090.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_090.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_091.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_091.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_092.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_092.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_093.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_093.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_094.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_094.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_095.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_095.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol-break.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol-break.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-break.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol-break.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol-force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-banner.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-banner.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-gnu.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-gnu.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-br.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr-br.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-nobr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr-nobr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-remove-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-all.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-remove-all.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-ws.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-ws2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1702.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1702.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1718.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1718.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_2331.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2331.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_489.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_489.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_i_771.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_771.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-sp-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-sp-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-type.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-type.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cgal.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cgal.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/clang-has_include.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clang-has_include.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_indent_multi-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent_multi-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_multi_check_last-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_multi_check_last-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_nl_end.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_nl_end.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_reflow.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_reflow.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/code_width-80.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/code_width-80.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cond-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cond-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/custom_types_ssl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom_types_ssl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-no.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-comment-no.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-yes.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-comment-yes.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/else-if-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/else-if-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/empty_body.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/endif.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/endif.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/enum_comma_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/force_tab_after_define-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/force_tab_after_define-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/freebsd.cfg27
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/func_call_user.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_call_user.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ger.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ger.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/i1564.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1564.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/if_chain.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/if_chain.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-vbrace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-vbrace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_assign.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_assign.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-false.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-true.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_comment_align_thresh-0.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_compound_literal_return-false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_compound_literal_return-true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_call_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_call_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_def_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_def_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_proto_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_proto_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_macro_brace-false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_macro_brace-true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_close-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_close-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_single_line_comments_after.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_sparen_extra-8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_sparen_extra-8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ternary_operator-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ternary_operator-2.cfg)0
-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/label_colon_nl_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/label_colon_nl_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/label_colon_nl_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/leave_one_liners.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/leave_one_liners.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod-paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod-paren2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_case_brace_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_case_brace_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_move_case_brace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_move_case_brace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/my_conf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/my_conf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nepenthes.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nepenthes.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/newline_after_endif.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/newline_after_endif.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl-comment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl-comment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_false.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_return_false.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_true.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_return_true.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_brace_test.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_test.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_create_one_liner.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_create_one_liner.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_ds_struct_enum-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_ds_struct_enum_cmt-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_endif.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_endif.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-3.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_semicolon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_semicolon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_whole_file_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_whole_file_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pascal_ptr.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-eol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_compare-eol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-sol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_compare-sol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-l.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_conditional-l.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_conditional-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-indent-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-indent-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-space.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-space.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-false.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-true.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_indent-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent_in_guard.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_ret.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_ret.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/preproc-cleanup.cfg37
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ptr-arith.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/rdan.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/rdan.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf537.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf537.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf538.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf538.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_pointer_star-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_sparen.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_sparen.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-i.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-r.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cmt_cpp_start-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cond_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cond_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-f.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-i.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-r.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_func_call_user_inside_fparen.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_user_inside_fparen.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-a.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-a.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-i.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/space_indent_columns-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_columns-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/type_wrap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/type_wrap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/xml-str.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/xml-str.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/UNI-18777.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18777.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_call_user.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-func_call_user.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_def.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-func_def.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-sp_after_oc_msg_receiver.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-sp_inside_braces_oc_dict.cfg)0
-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/align-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align_same_func_call_params-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_same_func_call_params-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/attribute_specifier_seqs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/attribute_specifier_seqs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben2.cfg45
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_011.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_011.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_042.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_042.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bool-pos-eol-force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol-force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/brace-allman.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-allman.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bug_671.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_671.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.cfg39
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clark.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/class-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_insert-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_insert-1.cfg)0
-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/del_semicolon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/del_semicolon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_footer.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file_footer.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_header.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file_header.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header2.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-header2.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/function_header.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/function_header.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_columns-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_continue-8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_continue-8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_inside_ternary_operator.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_inside_ternary_operator.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_var_def.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_var_def.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/issue_672.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_672.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst3.cfg71
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_case_brace_rm.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_case_brace_rm.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_if_chain_only-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_paren_on_return-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_paren_on_return-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/msg-header.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/msg-header.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_after.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_after.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_ignore_after_case.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sort_imports.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sort_imports.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_cast.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_arith-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_before_byref-r.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cparen_oparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cparen_oparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_inside_fparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/space_indent_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/star_pos-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.rerun.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-2.rerun.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2185.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/2185.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2203.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/2203.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/623_caret-spacing.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/623_caret-spacing.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/633_decl-in-func-typedef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/633_decl-in-func-typedef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I1112-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/I1112-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I2103.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/I2103.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1052.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1052.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1167.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1167.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1184.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1184.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1460.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1460.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1511.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1511.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1692.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1692.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1703.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1703.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1734.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1734.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1753.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1753.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1813.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1813.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1923.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1923.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1966.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1966.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2045.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2045.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2085.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2085.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2091.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2091.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2101.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2101.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2149.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2149.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2150.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2150.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2151.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2151.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2163.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2163.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2166.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2166.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2170.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2170.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2186.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2186.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2195.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2195.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2219.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2219.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2224.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2224.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2229.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2229.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2232.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2232.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2236.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2236.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2250.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2250.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2281.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2281.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2302.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1402.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2305.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2305.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2319.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2319.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2343.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2343.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2345.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2345.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2368.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2368.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2383.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2383.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2386.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2386.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2428.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2428.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2437.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2437.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2440.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440_nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2440_nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2478.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2478.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2561.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2561.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2570.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2570.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2574.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2574.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2582.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2582.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2591.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2591.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2594.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2594.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2596.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2596.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2604.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2604.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2668.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2668.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2688.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2688.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2689.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2689.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2692.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2692.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2703.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2703.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2734.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2734.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2735.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2735.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2742.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2742.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2752.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2752.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2757.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2757.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2758.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2758.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2759.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2759.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2771.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2771.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2794.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2794.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2795.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2795.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2823.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2823.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2831.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2831.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2836.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2836.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2873.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2873.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2879.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2879.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2886.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2886.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2890.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2890.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2902.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2902.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2907.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2907.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2914.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2914.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2921.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2921.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2930.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2930.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2942.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2942.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2949.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2949.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3010.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3010.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3025.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3025.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3034.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3034.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3040.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3040.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3044.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3044.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3048.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3048.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3052.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3052.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3054-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3054.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3055.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3055.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3058.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3058.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_0nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_0nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_1nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_1nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_2nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_2nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_3nl.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_3nl.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3080.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3080.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3097.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3097.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3164.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3197.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3198.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3203.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-f.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-i.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-ir.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-r.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3237.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3252.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-f.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-i.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-r.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_931.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_931.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_995-do.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_995-do.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/NewLine-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/NewLine-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/STUCK_macro-difficulties.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/STUCK_macro-difficulties.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U02-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U02-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U03-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U03-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U04-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U04-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U05-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U05-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U06-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U06-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U07-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U07-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U16-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U16-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U18-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U18-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U21-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U21-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U23-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U23-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U25-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U25-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U26-Cpp.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U27-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U27-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U28-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U28-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U29-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U29-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U30-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U30-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U31-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U31-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U33-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U33-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U36-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U36-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-10496.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-10496.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-12046.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-12046.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1340.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1340.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1344.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1344.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1346.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1346.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1347.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1347.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1350.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1350.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1356.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1356.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1358.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1358.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2049.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2049.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2650.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2650.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2680.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2680.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-29935.cfg148
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-30088.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-30088.cfg)0
-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/Uncrustify.Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Uncrustify.Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/al.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/al.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align-330.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-330.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_func_proto_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_func_proto_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_asterisk_after_type_cast.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_asterisk_after_type_cast.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_class-constr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_class-constr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_continuation_left_shift.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_continuation_left_shift.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_default_after_override.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_default_after_override.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_eigen_comma_init.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_eigen_comma_init.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_fcall-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_fcall.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_gap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_gap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_right_comment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_right_comment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_class_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_class_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/anonymous_enum.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/anonymous_enum.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/arith-vs-ptr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/arith-vs-ptr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon.cfg14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon4.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_001.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_001.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_003.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_003.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_004.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_004.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_005.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_005.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_006.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_006.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_008.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_008.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_009.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_009.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_010.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_010.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_012.cfg14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_013.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_013.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_014.cfg43
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_015.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_015.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_016.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_016.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_017.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_017.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_018.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_021.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_022.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_023.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_023.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_024.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_024.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_026.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_026.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_027.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_027.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_028.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_028.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_029.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_029.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_030.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_030.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_031.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_031.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1001.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1001.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1003.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1003.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1004.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1004.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1108.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1108.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1160.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1160.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1161.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1161.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1169.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1169.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1170.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1170.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1236.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1236.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1296.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1296.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1315.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1315.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1324.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1324.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1340.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1340.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1349.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1349.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1395.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1395.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1402.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2124-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1403.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1403.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1432.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1432.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1439.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1439.cfg)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1452.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1452.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1649.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1649.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1689.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1691.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1691.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1717.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1717.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1758-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1758-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1854.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1854.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1862.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1862.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2285.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2285.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2322.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2322.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2371.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2371.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2402.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2402.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2433_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2433_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_472.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_472.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_488.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_488.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_633.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_633.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_657.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_657.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_664.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_664.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_670.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_670.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_858-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_858-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_322.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_322.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_359.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_359.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_405.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_405.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-create.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_409-create.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-split.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_409-split.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_478.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_478.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_663.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_663.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_666.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_666.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_752.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-center.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-f.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-i.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-ir.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-left.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-r.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-right.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cast.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol-add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-eol-add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-eol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol-add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-sol-add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-sol.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-add2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-del.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-del.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-on-colon-indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-on-colon-indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_convert_tab_to_spaces-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_cpp_to_c-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_cpp_to_c-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_multi_first_len_minimum-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/code_width-70.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/code_width-70.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-f.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-i.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-r.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/const_throw.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/const_throw.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/constr_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/constr_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cpp17.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp17.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cu.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cu.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom-open.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom-open2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/disable_nl_cont.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/disable_nl_cont.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-detab-strings.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/dont-detab-strings.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-process-defines.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/dont-process-defines.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/eat_blanks_after_codewidth.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/eat_blanks_after_codewidth.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ellipsis-i.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-6.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-6.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comment_wrap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comment_wrap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/extern_func.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/extern_func.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/footer.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/footer.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_class.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_class.cfg)0
-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.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/functype_param-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/functype_param-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1516.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1516.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1536.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1536.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1768.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1768.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i683.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i683.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/if_chain_braces_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/if_chain_braces_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_braces_no.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_braces_no.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_class-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_class-t_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-11.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-11.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comma_brace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_comma_brace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comment_align_thresh_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_comment_align_thresh_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_init.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_following.cfg17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_leading.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_init_leading.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_members_twice.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_members_twice.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_else_if-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_else_if-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_first_for_expr-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_first_for_expr-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_namespace-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace_single_indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_namespace_single_indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_off_after_return.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_off_after_return.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_once.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_once.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_param.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_param.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_call-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_call-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_decl-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_def-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_def-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_semicolon_for_paren-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_shift.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_shift.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_var_def_cont-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_var_def_cont-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_with_tabs-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_with_tabs-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/initlist_leading_commas.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/initlist_leading_commas.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/interface-keyword-in-cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/interface-keyword-in-cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1778.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1778.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1782.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1782.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1804.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1804.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1887.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1887.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1916.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1916.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1985.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1985.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1997.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1997.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-1.cfg0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2124-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2209.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2209.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116-2.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116.cfg6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3378.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_564.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_564.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574-i-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-b.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574-i-b.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-i.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda1.cfg17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda_in_one_liner.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda_in_one_liner.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Mac.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Mac.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Unix.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Unix.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Win.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Win.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_br_cmt.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/long_br_cmt.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_namespace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/long_namespace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_add_long_namespace_closebrace_comment-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_full_brace_if_chain-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_if_chain-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_empty_return-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_remove_empty_return-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_remove_extra_semicolon-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_10.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_10.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_6.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_6.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_7.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_7.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_9.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_9.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nSolve.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nSolve.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/negative_indent.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/negative_indent.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_paren_open_close.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_paren_open_close.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl-brAfter-fcallParen.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl-brAfter-fcallParen.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_access_spec.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_access_spec.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_class_proto-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_class_proto-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_proto-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto_group-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_proto_group-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_assign_leave_one_liners.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign_leave_one_liners.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_1.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_2.cfg23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_3.cfg23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_if_closing_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_if_closing_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_struct.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_brace-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_brace-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_fparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_fparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_class-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_class-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-fr.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-rf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_for_leave_one_liners-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_for_leave_one_liners-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_paren_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_class_scope-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_class_scope-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_decl_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_decl_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_def_paren_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_paren_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_paren_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_scope_name-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_scope_name-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_class.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_class.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_mixed.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_mixed.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_var_def_blk-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_var_def_blk-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_inside_namespace_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_inside_namespace_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_max_blank_in_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_max_blank_in_func-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_namespace-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_namespace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_remove_extra_newlines-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-f.cfg17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-r.cfg21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_try-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_try-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_close-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_close-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_open-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_open-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/no_squeeze_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/no_squeeze_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-force.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-1.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-2.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op_sym_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op_sym_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-F.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/out-668-F.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-T.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/out-668-T.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_assign.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-lf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_comma-lf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-tb.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_comma-tb.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_enum_comma-tf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_enum_comma-tf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-join.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-join.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-lead.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-lead.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-trail.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-trail.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp-pragma.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-pragma.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_define_at_level-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_define_at_level-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_multi_comment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_multi_comment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-1.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-2.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-3.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/qt-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/qt-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-f.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-i.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-r.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.2886991-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.2886991-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.3315874.cfg15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf574.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf574.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sim.cfg12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_constr_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_constr_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_decltype-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_decltype-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ellipsis-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_ptr_star_qualifier-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type-i.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-i.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type_brace_init_lst_open-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type_brace_init_lst_open-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren_empty.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_paren_empty.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith_additive-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith_additive-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_assign_default.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_assign_default.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_balance_nested_parens.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_balance_nested_parens.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_byref_func.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_byref_func.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_case_colon.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_comma-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_comma-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_constr_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_constr_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-f.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-r.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ptr_star-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ptr_star-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_type_brace_init_lst_close-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_type_brace_init_lst_close-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_catch.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_catch.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_catch_brace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_catch_brace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_region-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_region-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-f.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-i.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-ir.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-r.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_constr_colon-i.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cparen_oparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cparen_oparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_fparen-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_fparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_dc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_dc.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_decltype_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_decltype_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_endif_cmt.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-f.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-i.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_colon-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_empty.cfg13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_class_empty.cfg14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_def_empty.cfg14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_proto_empty.cfg14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_empty-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_braces_empty-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparen-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparen-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparens-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparens-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_type_brace_init_lst-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-f.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-r.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-f.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-i.cfg8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-r.cfg5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_noexcept-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_noexcept-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_qualifier-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_qualifier-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-a.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-f.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-i.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-r.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_brace-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_skip_vbrace_tokens.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_throw_paren-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_throw_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_trailing_return-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_trailing_return-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_brace_init_lst-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_brace_init_lst-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-f.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-i.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-r.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-f.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-r.cfg3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_word_brace_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_word_brace_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/space_indent_class-t_columns-4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_class-t_columns-4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze_ifdef.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef_top.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze_ifdef_top.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/string_replace_tab_chars-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/string_replace_tab_chars-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/tab-0-11.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/tab-0-11.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-force.cfg20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-ignore.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-remove.cfg20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-i.cfg20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-r.cfg20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/var_def_gap.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/var_def_gap.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/wessex.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/wessex.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/615_nested_usings.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/615_nested_usings.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/620_getset-brace.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/620_getset-brace.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/625_where-constraints.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/625_where-constraints.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/Issue_2705.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2705.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U-J.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U-J.cfg)0
-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/U02-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U02-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U03-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U03-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U04-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U04-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U06-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U06-Cs.cfg)0
-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-Cpp.cfg2
-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/U09-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U09-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U09-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U10-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U10-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U11-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U11-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U12-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U12-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U13-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U13-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U14-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U14-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U15-Cpp.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cs.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U15-Cs.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U24-Cpp.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U24-Cpp.cfg)0
-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-11662.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11662.cfg)0
-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-1288.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1288.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1338.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1338.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1343.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1343.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-13955.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-13955.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-14131.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-14131.cfg)0
-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-18829.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18829.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1975.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1975.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1977.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1977.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1978.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1978.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-19895.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-19895.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2020.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2020.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2021.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2021.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-21730.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-21730.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2684.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2684.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2685.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2685.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-29933.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-29933.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-30498_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-30498_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-3083.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-3083.cfg)0
-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/UNI-9917.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-9917.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_032.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_032.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_033.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_033.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_034.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_034.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_036.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_036.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_037.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_037.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_038.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_038.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_043.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_043.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_044.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_044.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_045.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_045.cfg)0
-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/bug_620.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_620.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-f.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-i.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-r.cfg4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/cs_generics.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cs_generics.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/getset.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/getset.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent-multistring-coulmn1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-multistring-coulmn1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_cs_delegate_brace-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_cs_delegate_brace-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_using_block-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_using_block-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mda_space_a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_c.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mda_space_c.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/misc-failures.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/misc-failures.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_nl_block_rem_mlcond-0.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_nl_block_rem_mlcond-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_paren_if_bool.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_paren_if_bool.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_sort_using-t.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_using-t.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mono.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mono.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/new-constraint-paren-space.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new-constraint-paren-space.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sf607.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf607.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sort_using_categ.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sort_using_categ.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_after_comma-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_comma-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_assign-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_assign-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_between_new_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_between_new_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/squeeze-paren-close-Option.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze-paren-close-Option.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/tcf.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/tcf.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/verbatim_strings.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/verbatim_strings.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/1438.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1438.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d-tst2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d-tst2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-i.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-r.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2.cfg49
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d3a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d_sp_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d_sp_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/invariant.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/invariant.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/libd.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/libd.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/sp_after_type-a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/ecma/ben_098.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_098.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1122.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1122.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1124-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1124-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1845.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1845.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_670.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_670.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/annotation.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/annotation.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/ben_099.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_099.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/doxy-javadoc-alignment.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-javadoc-alignment.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_foreach.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_foreach.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_synchronized_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_synchronized_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/jdbi-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/jdbi-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/leading-tabs-for-java-lambda.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/leading-tabs-for-java-lambda.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_add_long_class_closebrace_comment-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_after_annotation-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_annotation-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_between_annotation-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_between_annotation-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/reflow_fold_regex.txt (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/reflow_fold_regex.txt)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_after_for_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_for_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_this_paren.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_this_paren.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/template_angles.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_angles.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/1927.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1927.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_2172.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2172.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_681.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_681.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align-objc-like-xcode.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-objc-like-xcode.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align_oc_msg_colon_span-1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_oc_msg_colon_span-1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/block_pointer.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/block_pointer.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/blocks.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/blocks.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_167.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_167.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_340.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_340.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_841.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_841.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_i_125-412.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_125-412.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/delete-space-oc.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/delete-space-oc.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double-indent-objc-dict.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double-indent-objc-dict.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh137.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh137.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.a.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh293.a.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.b.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh293.b.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent-objc-block.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-objc-block.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_boxed.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_boxed.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_oc_inside_msg_sel.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_oc_inside_msg_sel.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_single_newline.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_single_newline.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2643.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2643.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2656.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2656.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2675.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2675.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_3031.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_3031.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_grouping_enabled.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_ignore_extension.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_angle_over_quotes.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_extensionless.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_filename.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_after_func_body-3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body-3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_brace_square.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_square.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_args_multi_line_ignore_closures.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_oc_block_brace-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_oc_block_brace-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-available.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/obj-c-available.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-properties.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/obj-c-properties.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_bug_497.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/objc_bug_497.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_complex_method.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/objc_complex_method.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc1.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc1.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc10.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc10.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc11.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc11.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc12.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc12.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc13.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc13.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc14.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc14.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc16.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc16.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc17.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc17.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc18.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc18.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc19.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc19.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc6.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc6.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc7.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc7.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc8.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc8.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc9.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc9.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1674.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_bug_1674.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1683.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_bug_1683.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_cond_colon.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_cond_colon.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_block_caret_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_block_caret_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_send_oc_colon-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_send_oc_colon-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_throw_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_throw_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_block_caret_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_block_caret_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_add.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_add.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_force.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_force.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_remove.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument2.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument2.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument3.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument3.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument4.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument4.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument5.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument5.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_cond_ternary_short.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-i.cfg1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_boxed.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_boxed.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-i.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-r.cfg11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_catch.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_classname_paren-r.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_classname_paren-r.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_synchronized.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_synchronized.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/ternary_short.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ternary_short.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2586.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2586.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2665.cfg2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/amxmodx.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/amxmodx.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/mod_full_brace_function-f.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_function-f.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn-escape.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pawn-escape.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn.cfg16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-58354.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-58354.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-64325.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-64325.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2090.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2090.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2270.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2270.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_100.cfg9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_101.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_101.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_102.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_102.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_103.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_103.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_104.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_104.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_105.cfg13
-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/d.test66
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/difftest.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/difftest.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/ecma.test7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00000-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00000-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00001-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00001-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00002-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00002-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00003-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00003-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00004-switch.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00004-switch.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00005-cmt-align.c20
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00006-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00006-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00007-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00007-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00008-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00008-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00009-comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00009-comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00010-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00010-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00011-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00011-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00012-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00012-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00013-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00013-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00014-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00014-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00015-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00015-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00016-braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00016-braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00020-define-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00020-define-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00050-brace-remove.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00050-brace-remove.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00051-brace-remove.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00051-brace-remove.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00052-brace-remove2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00052-brace-remove2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00053-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00053-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00054-if_chain.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00054-if_chain.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00055-braces-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00055-braces-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00056-brace-remove3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00056-brace-remove3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00057-brace-remove3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00057-brace-remove3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00058-if_chain.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00058-if_chain.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00060-braces-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00060-braces-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00061-braces-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00061-braces-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00062-braces-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00062-braces-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00065-braces-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00065-braces-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00066-vb-while.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00066-vb-while.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00067-vb-do.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00067-vb-do.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00068-bsnl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00068-bsnl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00069-vb-pp.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00069-vb-pp.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00070-return-multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00070-return-multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00071-include_define.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00071-include_define.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00072-align-proto.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00072-align-proto.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00073-nl_proto_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00073-nl_proto_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00074-clang-has_include.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00074-clang-has_include.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00076-1225.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00076-1225.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00081-else-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00081-else-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00082-else-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00082-else-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00091-cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00091-cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00092-cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00092-cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00093-cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00093-cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00101-bugs-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00101-bugs-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00102-bugs-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00102-bugs-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00103-bugs-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00103-bugs-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00104-bugs-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00104-bugs-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00105-bugs-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00105-bugs-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00106-bugs-6.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00106-bugs-6.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00107-bugs-7.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00107-bugs-7.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00108-bugs-8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00108-bugs-8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00110-misc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00110-misc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00111-misc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00111-misc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00120-sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00120-sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00121-sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00121-sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00122-sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00122-sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00123-cmt_reflow.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00123-cmt_reflow.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00130-minus-minus.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00130-minus-minus.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00135-br_cmt.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00135-br_cmt.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00140-global-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00140-global-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00141-deref.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00141-deref.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00142-type-cast.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00142-type-cast.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00143-t3.in.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00143-t3.in.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00144-align-proto-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00144-align-proto-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00145-vardefcol.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00145-vardefcol.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00150-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00150-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00151-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00151-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00152-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00152-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00153-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00153-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00154-casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00154-casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00155-cast_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00155-cast_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00160-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00160-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00161-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00161-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00162-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00162-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00163-fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00163-fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00164-fcn_indent_func_def_col1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00164-fcn_indent_func_def_col1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00170-beautifier-off.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00170-beautifier-off.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00180-lvalue.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00180-lvalue.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00201-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00201-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00202-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00202-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00203-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00203-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00204-bug_1718.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00204-bug_1718.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00205-case-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00205-case-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00206-case-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00206-case-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00207-nl_before_ignore_after_case.c53
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00301-align-struct-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00301-align-struct-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00302-one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00302-one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00303-one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00303-one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00304-one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00304-one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00305-one-liner-define.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00305-one-liner-define.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00310-sp_embed_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00310-sp_embed_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00320-indent_first_bool_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00320-indent_first_bool_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00401-align-equ.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00401-align-equ.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00402-align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00402-align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00403-align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00403-align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00404-align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00404-align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00405-bits.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00405-bits.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00406-bug_i_771.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00406-bug_i_771.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00411-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00411-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00412-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00412-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00413-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00413-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00414-align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00414-align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00415-align_stack.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00415-align_stack.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00416-align_sf_call_thresh_416.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00416-align_sf_call_thresh_416.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00417-align_sf_call_thresh_417.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00417-align_sf_call_thresh_417.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00418-align_sf_call_span_418.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00418-align_sf_call_span_418.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00419-align_sf_call_span_419.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00419-align_sf_call_span_419.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00420-Issue-2278.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00420-Issue-2278.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00421-nl_ds_struct_enum.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00421-nl_ds_struct_enum.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00422-nl_ds_struct_enum.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00422-nl_ds_struct_enum.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00423-bug_1702.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00423-bug_1702.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00430-paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00430-paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00431-paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00431-paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00432-paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00432-paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00440-bug_489.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00440-bug_489.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00451-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00451-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00452-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00452-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00453-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.rerun.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00453-enum_gallery.rerun.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00454-enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00454-enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00461-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00462-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00463-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00464-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00465-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00466-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00467-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00468-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00469-align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00501-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00501-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00502-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00502-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00503-pos_compare.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00503-pos_compare.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00504-pos_compare.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00504-pos_compare.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00505-pos_conditional.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00505-pos_conditional.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00506-pos_conditional.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00506-pos_conditional.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00510-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00510-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00511-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00511-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00512-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00512-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00513-bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00513-bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00514-my_infile.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00514-my_infile.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00600-dos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00600-dos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00601-mac.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00601-mac.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00611-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00611-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00612-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00612-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00613-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00613-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00614-pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00614-pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00615-pp-nest.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00615-pp-nest.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00616-pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00616-pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00617-pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00617-pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00618-pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00618-pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00619-Issue_3169.c30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00620-indent-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00620-indent-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00621-nl_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00621-nl_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00622-indent-off-after-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00622-indent-off-after-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00631-nl_assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00631-nl_assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00632-nl_assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00632-nl_assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00633-bug_3156.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00633-bug_3156.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00701-function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00701-function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00702-function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00702-function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00703-function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00703-function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00710-add_long_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00710-add_long_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00721-nl-semicolon.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00721-nl-semicolon.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00801-fcn_type.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00801-fcn_type.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00802-funcfunc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00802-funcfunc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00803-fcn_type.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00803-fcn_type.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00901-code_width.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00901-code_width.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00902-code_width.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00902-code_width.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00903-code_width.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00903-code_width.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00910-pascal_ptr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00910-pascal_ptr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00911-pascal_ptr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00911-pascal_ptr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01000-mod-paren.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01000-mod-paren.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01001-nl-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01001-nl-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01002-mod-paren.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01002-mod-paren.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01005-mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01005-mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01006-mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01006-mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01007-mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01007-mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01008-Issue_3366.c14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01011-semicolons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01011-semicolons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01012-semicolons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01012-semicolons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01015-paren_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01015-paren_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01016-align_attr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01016-align_attr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01020-kw_subst.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01020-kw_subst.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01021-hello.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01021-hello.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01022-kw_subst.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01022-kw_subst.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01030-multi.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01030-multi.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01035-func_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01035-func_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01036-func_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01036-func_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01037-type_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01037-type_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01040-newline_after_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01040-newline_after_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01050-func_call_user.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01050-func_call_user.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01060-backslash-newline-lex.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01060-backslash-newline-lex.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01070-various_colons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01070-various_colons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01071-various_colons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01071-various_colons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01080-bug_1196.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01080-bug_1196.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02000-i2c-core.c1457
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02001-directfb.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02002-i2c-core.c1457
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02100-i2c-core.c1393
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02101-comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02101-comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02200-xml.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02200-xml.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02201-align-string.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02201-align-string.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02300-preproc-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02300-preproc-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02301-preproc-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02301-preproc-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02302-nl-cont.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02302-nl-cont.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02303-nl-cont2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02303-nl-cont2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02310-empty-for.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02310-empty-for.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02311-pragma.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02311-pragma.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02315-pp_ret.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02315-pp_ret.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02320-nl_create_one_liner.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02320-nl_create_one_liner.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02325-sort_include.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02325-sort_include.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02330-one_liners.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02330-one_liners.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02410-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02410-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02411-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02411-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02412-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02412-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02413-ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02413-ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02414-whole_file_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02414-whole_file_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02415-endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02415-endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02416-cmt_nl_end.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02416-cmt_nl_end.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02421-cmt_multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02421-cmt_multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02422-cmt_multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02422-cmt_multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02423-cmt_multi_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02423-cmt_multi_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02431-cmt_right_align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02431-cmt_right_align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02432-cmt_right_align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02432-cmt_right_align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02440-string_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02440-string_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02441-utf8-identifiers.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02441-utf8-identifiers.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02451-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02451-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02452-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02452-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02453-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02453-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02454-nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02454-nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02455-macro-returns.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02455-macro-returns.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02456-macro-returns.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02456-macro-returns.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02457-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02457-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02460-freebsd.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02460-freebsd.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02486-doxy-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02486-doxy-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02487-doxy-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02487-doxy-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02501-custom_types_ssl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02501-custom_types_ssl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02502-custom_types_ssl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02502-custom_types_ssl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02504-align_keep_extra.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02504-align_keep_extra.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02510-asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02510-asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/07630-indent-vbrace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/07630-indent-vbrace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/08399-gh399.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/08399-gh399.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09588-sf588.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09588-sf588.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09594-sf594.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09594-sf594.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09601-sp_after_sparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09601-sp_after_sparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09602-bug_671.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09602-bug_671.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09603-indent_ternary-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09603-indent_ternary-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09604-indent_ternary-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09604-indent_ternary-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09605-negative_value.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09605-negative_value.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09606-extern.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09606-extern.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09607-attribute.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09607-attribute.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09608-func_call_user2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09608-func_call_user2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09609-Issue_2279.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09609-Issue_2279.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09610-bug_i_876.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09610-bug_i_876.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09611-bug_i_222.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09611-bug_i_222.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09612-bug_1041.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09612-bug_1041.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09613-i1413.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09613-i1413.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09614-string_prefixes.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09614-string_prefixes.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09615-i1564.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09615-i1564.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09616-enum_comma_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09616-enum_comma_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09617-Issue_2360.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09617-Issue_2360.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09618-Issue_2360.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09618-Issue_2360.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09619-Issue_2411.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09619-Issue_2411.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09620-Issue_2640.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09620-Issue_2640.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09621-pp-before-func-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09621-pp-before-func-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09622-Issue_3356.c13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10004-pragma_asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10004-pragma_asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10005-i1270.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10005-i1270.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10006-bug_2331.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10006-bug_2331.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10007-indent-macro-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10007-indent-macro-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10008-indent-macro-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10008-indent-macro-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10009-return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10009-return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10010-return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10010-return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10011-return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10011-return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10012-sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10012-sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10013-sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10013-sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10014-sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10014-sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10015-Issue_2845.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10015-Issue_2845.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10016-Issue_3233.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10017-double-sparen.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10018-double-sparen.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10019-include-guard.h10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10020-single_line_comment_after.c11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10021-parenthesized_indirect_call.c17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10022-Issue_3269.c17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10023-Issue_3272.h11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10024-Issue_3274.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10025-forever.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10026-forever.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10027-Issue_3327.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10028-Issue_3339.c7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10029-Issue_3339.c7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10030-Issue_3339.c7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10031-Issue_3342.c6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10032-Issue_3345.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10033-Issue_3343.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10034-Issue_3343.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10035-comment-indent.c40
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10036-comment-indent.c40
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10037-Issue_3362.c15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10038-Issue_3362.c15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10039-Issue_3370.c17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10040-Issue_3377.c9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10041-Issue_3351.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10042-Issue_3376.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10043-Issue_3376.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10044-Issue_3376.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10045-Issue_3376.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02102-indent-c.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/02102-indent-c.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02103-output.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/02103-output.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10000-621_this-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10000-621_this-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10002-623_caret-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10002-623_caret-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10005-define-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10005-define-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10006-dont-detab-strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10006-dont-detab-strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10007-dont-process-defines.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10007-dont-process-defines.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10020-macro_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10020-macro_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10021-braces_align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10021-braces_align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10022-foreach.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10022-foreach.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10023-for_auto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10023-for_auto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10024-ifcomment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10024-ifcomment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10025-qtargs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10025-qtargs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10027-Issue_3058.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10027-Issue_3058.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10047-UNI-1334.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10047-UNI-1334.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10048-UNI-1335.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10048-UNI-1335.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10050-UNI-1337.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10050-UNI-1337.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10052-UNI-1339.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10052-UNI-1339.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10053-UNI-1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10053-UNI-1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10054-UNI-1344.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10054-UNI-1344.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10056-UNI-1346.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10056-UNI-1346.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10057-UNI-1347.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10057-UNI-1347.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10060-UNI-1350.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10060-UNI-1350.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10062-UNI-1356.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10062-UNI-1356.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10063-UNI-1358.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10063-UNI-1358.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10069-UNI-1980.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10069-UNI-1980.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10070-UNI-1981.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10070-UNI-1981.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10071-UNI-1983.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10071-UNI-1983.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10079-UNI-9650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10079-UNI-9650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10080-UNI-10496.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10080-UNI-10496.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10100-issue_564.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10100-issue_564.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10101-issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10101-issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10102-issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10102-issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10103-issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10103-issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10566-issue_1752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10566-issue_1752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/11000-UNI-12046.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/11000-UNI-12046.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20002-UNI-32657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/20002-UNI-32657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20011-UNI-38381.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/20011-UNI-38381.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30000-cout.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30000-cout.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30001-alt_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30001-alt_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30002-constructor.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30002-constructor.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30003-strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30003-strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30010-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30010-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30011-misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30011-misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30012-misc2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30012-misc2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30013-sim.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30013-sim.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30014-ctor-var.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30014-ctor-var.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30015-exception.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30015-exception.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30016-custom-open.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30016-custom-open.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30017-custom-open.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30017-custom-open.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30018-class-addr.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30018-class-addr.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30019-wacky-template.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30019-wacky-template.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30020-bool.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30020-bool.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30021-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30021-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30022-extern_c.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30022-extern_c.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30023-templates.cpp197
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30024-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30024-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30025-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30025-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30026-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30026-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30027-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30027-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30028-byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30028-byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30029-init_align.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30029-init_align.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30030-Timestamp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30030-Timestamp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30031-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30031-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30032-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30032-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30033-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30033-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30034-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30034-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30035-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30035-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30036-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30036-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30037-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30037-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30038-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30038-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30039-operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30039-operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30040-nl-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30040-nl-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30041-nl-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30041-nl-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30042-Issue_2020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30042-Issue_2020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30043-nl_func_call_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30043-nl_func_call_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30045-nl_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30045-nl_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30046-nl_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30046-nl_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30049-nl_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30049-nl_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30050-nl-namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30050-nl-namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30051-nl-namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30051-nl-namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30052-try-catch-nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30052-try-catch-nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30053-exception.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30053-exception.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30054-Issue_2091.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30054-Issue_2091.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30055-nl_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30055-nl_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30056-nl_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30056-nl_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30057-nl_inside_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30057-nl_inside_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30058-nl_inside_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30058-nl_inside_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30059-Issue_2186.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30059-Issue_2186.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30060-Issue_1734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30060-Issue_1734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30061-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30061-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30062-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30062-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30063-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30063-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30064-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30064-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30065-Example.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30065-Example.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30066-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30066-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30067-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30067-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30068-nl_func_scope_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30068-nl_func_scope_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30069-class-implementation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30069-class-implementation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30070-nl_func_scope_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30070-nl_func_scope_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30071-lineEndings-Mac.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30071-lineEndings-Mac.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30072-lineEndings-Win.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30072-lineEndings-Win.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30073-lineEndings-Unix.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30073-lineEndings-Unix.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30074-bom.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30074-bom.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30075-goto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30075-goto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30076-Issue_2594.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30076-Issue_2594.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30077-Issue_2596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30077-Issue_2596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30078-Issue_2672-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30078-Issue_2672-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30079-Issue_2672-b.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30079-Issue_2672-b.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30080-nl_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30080-nl_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30081-Issue_2383.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30081-Issue_2383.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30082-Issue_931.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30082-Issue_931.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30083-Issue_995-do.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30083-Issue_995-do.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30084-Issue_1184.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30084-Issue_1184.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30085-align_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30085-align_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30086-align_class-constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30086-align_class-constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30087-Issue_1511.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30087-Issue_1511.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30088-Issue_2561.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30088-Issue_2561.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30089-Issue_2281.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30089-Issue_2281.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30090-bug_488.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30090-bug_488.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30091-bug_472.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30091-bug_472.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30092-bug_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30092-bug_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30093-bug_484.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30093-bug_484.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30094-bug_495.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30094-bug_495.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30095-bug_485.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30095-bug_485.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30096-bug_1854.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30096-bug_1854.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30097-issue_1946.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30097-issue_1946.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30098-Issue_2692.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2692.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30099-bug_1127.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30099-bug_1127.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30100-templates.cpp200
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30101-templates.cpp182
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30102-templates.cpp188
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30103-templates.cpp188
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30104-templ_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30104-templ_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30105-av.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30105-av.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30106-templates2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30106-templates2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30107-templates2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30107-templates2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30108-templates3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30108-templates3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30109-templates4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30109-templates4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30110-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30110-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30111-bug_1346.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30111-bug_1346.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30112-bug_1432.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30112-bug_1432.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30113-bug_1452.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30113-bug_1452.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30114-bug_1462.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30114-bug_1462.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30115-Issue_1704.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30115-Issue_1704.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30116-Issue_1052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30116-Issue_1052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30117-Issue_2343.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30117-Issue_2343.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30118-Issue_2758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30118-Issue_2758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30119-Issue_2879.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30119-Issue_2879.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30120-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30120-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30121-sp_after_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30121-sp_after_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30122-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30123-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30124-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30125-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30126-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30127-Issue_2565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30127-Issue_2565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30128-Issue_2873.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30128-Issue_2873.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30129-Issue_2890.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30129-Issue_2890.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30130-if-constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30130-if-constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30131-Issue_3010.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30131-Issue_3010.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30132-sp_brace_catch.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30132-sp_brace_catch.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30133-Issue_3252.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30200-bug_1862.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30200-bug_1862.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30201-cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30201-cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30202-cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30202-cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30203-cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30203-cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30204-comment-align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30204-comment-align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30205-cmt_right.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30205-cmt_right.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30207-cmt_indent_pp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30207-cmt_indent_pp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30208-bug_1108.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30208-bug_1108.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30209-bug_1134.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30209-bug_1134.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30210-bug_1338.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30210-bug_1338.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp153
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp153
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30213-align_right_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30213-align_right_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30214-align_across_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30214-align_across_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30215-Issue_2099.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30215-Issue_2099.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30216-Issue_2302.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30216-Issue_2302.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30217-2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30217-2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30218-trailing_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30218-trailing_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30219-trailing_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30219-trailing_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30220-bug_1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30220-bug_1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30221-Issue_2914.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30221-Issue_2914.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30222-trailing_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30222-trailing_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30223-sp_enum_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30223-sp_enum_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30224-sp_enum_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30224-sp_enum_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30225-Issue_3176.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30226-sp_enum_colon.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30230-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30230-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30231-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30231-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30232-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30232-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30233-sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30233-sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30234-functype_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30234-functype_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30235-functype_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30235-functype_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30240-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30240-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30241-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30241-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30242-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30242-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30243-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30243-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30244-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30244-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30245-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30245-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30246-align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30246-align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30247-Issue_2332.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30247-Issue_2332.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30248-Issue_2831.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30248-Issue_2831.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30249-align-330.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30249-align-330.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30250-align_fcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30250-align_fcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30251-align_fcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30251-align_fcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30253-align_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30253-align_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30254-align_left_shift2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30254-align_left_shift2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30255-align_constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30255-align_constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30256-func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30256-func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30257-func_call_chain.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30257-func_call_chain.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30258-casts.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30258-casts.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30260-var_def_gap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30260-var_def_gap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30261-align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30261-align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30262-align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30262-align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30263-align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30263-align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30264-Issue_2668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30264-Issue_2668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30265-long_br_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30265-long_br_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30266-Issue_2921.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30266-Issue_2921.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30267-Issue_2930.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30267-Issue_2930.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30268-Issue_3018.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30268-Issue_3018.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30270-const_throw.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30270-const_throw.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30271-sp_throw_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30271-sp_throw_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30272-sp_throw_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30272-sp_throw_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30275-bug_1321.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30275-bug_1321.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30278-bug_1439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30278-bug_1439.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30280-sf557.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30280-sf557.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30281-Issue_2478.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30281-Issue_2478.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30282-Issue_2703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30282-Issue_2703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30283-Issue_3321.h8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30290-align_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30290-align_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30291-indent_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30291-indent_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30292-eigen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30292-eigen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30293-pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30293-pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30294-pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30294-pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30295-pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30295-pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30300-enum_shr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30300-enum_shr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30301-enum_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30301-enum_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30302-bug_1315.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30302-bug_1315.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30303-Issue_2902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30303-Issue_2902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30310-braced_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30310-braced_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30311-uniform_initialization.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30311-uniform_initialization.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30312-return_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30312-return_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30313-sp_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30313-sp_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30314-sp_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30314-sp_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30315-return_braced_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30315-return_braced_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30316-Issue_2428.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30316-Issue_2428.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30318-Issue_2949.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30318-Issue_2949.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30319-Issue_2886.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30319-Issue_2886.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30320-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30321-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30322-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30323-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30324-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30325-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30326-indent_off_after_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30326-indent_off_after_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30327-indent_off_after_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30327-indent_off_after_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30328-call_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30328-call_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30329-call_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30329-call_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30330-Issue_3080.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30330-Issue_3080.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30401-Issue_2570.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30401-Issue_2570.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30701-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30701-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30702-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30702-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30703-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30703-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30705-func_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30705-func_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30706-bug_1020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30706-bug_1020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30711-semicolons.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30711-semicolons.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30712-bug_1158.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30712-bug_1158.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30714-Issue_1733.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30714-Issue_1733.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30715-Issue_2942.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30715-Issue_2942.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30720-custom-open-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30720-custom-open-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30721-Issue_2386.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30721-Issue_2386.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30730-qt-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30730-qt-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30731-qt-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30731-qt-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30732-Issue_2734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30732-Issue_2734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30740-sef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30740-sef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30741-al.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30741-al.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30742-delete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30742-delete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30745-Issue_2170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30745-Issue_2170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30746-DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30746-DefaultAndDelete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30747-DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30747-DefaultAndDelete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30748-DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30748-DefaultAndDelete.cpp)0
-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.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30752-lambda.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30753-lambda2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30753-lambda2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30754-bug_i_682.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30754-bug_i_682.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30755-bug_i_938.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30755-bug_i_938.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30756-bug_1296.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30756-bug_1296.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30757-Issue_3054.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30757-Issue_3054.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30758-Issue_3054-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30758-Issue_3054-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30761-out-668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30761-out-668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30762-out-668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30762-out-668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30763-Issue_2166.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30763-Issue_2166.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30764-Issue_2591.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30764-Issue_2591.cpp)0
-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/30768-sp_cpp_lambda_fparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp)0
-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/30776-sp_cpp_lambda_fparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30781-lambda_brace_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30781-lambda_brace_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30790-Issue_2795.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30790-Issue_2795.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30791-Issue_3203.cpp14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30800-align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30800-align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30801-align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30801-align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30802-align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30802-align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30803-bug_1403.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30803-bug_1403.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30805-ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30805-ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30806-ptr-star.cpp70
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30807-ptr-star.cpp70
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30808-ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30808-ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30809-bug_1289.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30809-bug_1289.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30810-ptr-star.cpp76
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30811-misc3.cpp21
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30812-misc4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30812-misc4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30813-misc5.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30813-misc5.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30814-misc6.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30814-misc6.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30815-cmt-reflow.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30815-cmt-reflow.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30816-for_long.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30816-for_long.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30818-bug_1169.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30818-bug_1169.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30819-bug_1170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30819-bug_1170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30820-pp-define-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30820-pp-define-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30821-pp_indent_case.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30821-pp_indent_case.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30822-pp_indent_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30822-pp_indent_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30823-pp_indent_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30823-pp_indent_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30824-pp_indent_extern.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30824-pp_indent_extern.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30825-Issue_1966.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30825-Issue_1966.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30826-Issue_2319.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30826-Issue_2319.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30827-Issue_1167.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30827-Issue_1167.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30828-bug_1691.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30828-bug_1691.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30829-Issue_2726.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30829-Issue_2726.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30830-kw_subst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30830-kw_subst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30831-kw_subst2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30831-kw_subst2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30832-kw_subst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30832-kw_subst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30840-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30840-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30841-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30841-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30842-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30842-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30843-nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30843-nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30844-Issue_2771.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30844-Issue_2771.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30845-deref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30845-deref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30846-Issue_3197.h4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30852-Issue_2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30852-Issue_2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30853-noexcept.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30853-noexcept.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30854-Issue_1703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30854-Issue_1703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30855-cpp_move.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30855-cpp_move.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30860-sf574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30860-sf574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30870-cmt_insert.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30870-cmt_insert.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30871-cmt_insert.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30871-cmt_insert.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30872-Issue_2752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30872-Issue_2752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30880-bug_1758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30880-bug_1758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30881-bug_1758-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30881-bug_1758-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30900-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30900-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30901-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30901-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30902-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30902-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30903-region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30903-region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30907-Issue_1813.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30907-Issue_1813.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30908-Issue_1813-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30908-Issue_1813-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30909-Issue_1813-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30909-Issue_1813-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30910-indent_namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30910-indent_namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30911-indent_namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30911-indent_namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30912-long_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30912-long_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30913-indent_namespace2.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30913-indent_namespace2.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30914-indent_namespace_single_indent.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30914-indent_namespace_single_indent.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30915-bug_1235.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30915-bug_1235.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30916-Issue_1737.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30916-Issue_1737.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30917-Issue_2345-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30917-Issue_2345-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30918-Issue_2345-4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30918-Issue_2345-4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30919-Issue_2387.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30919-Issue_2387.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30920-indent-off.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30920-indent-off.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30921-variadic-template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30921-variadic-template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30922-variadic-template.h10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30923-sf.2886991.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30923-sf.2886991.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30924-sf.2886991.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30924-sf.2886991.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30925-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30925-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30926-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30926-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30927-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30927-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30928-function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30928-function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30929-bug_1324.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30929-bug_1324.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30930-indent_var_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30930-indent_var_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30931-indent_var_def_cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30931-indent_var_def_cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30932-indent_var_def_cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30932-indent_var_def_cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30935-indent-misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30935-indent-misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30936-indent_braces_no.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30936-indent_braces_no.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30937-indent_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30937-indent_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30938-indent_switch_pp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30938-indent_switch_pp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30940-case-brace-remove.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30940-case-brace-remove.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30941-Issue_2150.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30941-Issue_2150.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30942-Issue_1692.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30942-Issue_1692.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30943-Issue_2735.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30943-Issue_2735.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30945-sf.3266678.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30945-sf.3266678.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30946-sf.3315874.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30946-sf.3315874.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30947-bug_1689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30947-bug_1689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30948-sp_before_byref_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30948-sp_before_byref_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30949-Issue_2757.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30949-Issue_2757.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30953-constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30953-constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30954-Issue_2305.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30954-Issue_2305.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30955-indent_ctor_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30955-indent_ctor_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30956-indent_ctor_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30956-indent_ctor_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30957-class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30957-class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30960-Issue_2151.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30960-Issue_2151.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30961-Issue_2232.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30961-Issue_2232.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30963-Issue_2907.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30963-Issue_2907.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30964-Issue_2823.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30964-Issue_2823.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30970-Issue_2219.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30970-Issue_2219.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30971-Issue_2224.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30971-Issue_2224.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30972-Issue_2229.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30972-Issue_2229.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30973-Issue_2236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30973-Issue_2236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30974-using-alias-in-define.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30974-using-alias-in-define.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31000-digraph.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31000-digraph.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31001-digraph.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31001-digraph.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31050-pos_assign.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31051-pos_assign.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp50
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp32
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp33
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31562-sf562.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31562-sf562.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31567-sf567.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31567-sf567.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31568-Issue_2368.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31568-Issue_2368.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31583-sf583.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31583-sf583.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31593-sf593.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31593-sf593.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31594-issue_672.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31594-issue_672.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31595-issue_1778.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31595-issue_1778.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31596-issue_1782.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31596-issue_1782.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31597-issue_1804.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31597-issue_1804.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31598-Issue_1753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31598-Issue_1753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31599-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31600-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31601-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31602-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31603-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31604-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31605-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31606-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31607-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31608-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31609-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31610-Issue_2085.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31610-Issue_2085.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31611-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31612-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31613-parameter-packs.cpp77
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31614-Issue_3309.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31615-Issue_3309.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31616-Issue_3309.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31620-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31620-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31621-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31621-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31622-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31622-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31623-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31623-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31624-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31624-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31625-sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31625-sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31626-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31626-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31627-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31627-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31628-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31628-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31629-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31629-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31630-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31630-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31631-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31631-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31632-issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31632-issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31633-sp_after_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31633-sp_after_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31634-sp_after_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31634-sp_after_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31635-sp_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31635-sp_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31636-Issue_1923.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31636-Issue_1923.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31660-issue_1919.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31660-issue_1919.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31661-Issue_3097.cpp19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31720-bit-colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31720-bit-colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31721-Issue_2689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31721-Issue_2689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31730-ms-style-ref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31730-ms-style-ref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31740-I2102.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31740-I2102.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32001-issue_547_for_each.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32001-issue_547_for_each.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32002-proto-wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32002-proto-wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32003-issue_633_typename.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32003-issue_633_typename.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32004-issue_624_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32004-issue_624_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32005-issue_633_typename.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32005-issue_633_typename.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32006-bug_i_687.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32006-bug_i_687.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32007-Issue_3052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32007-Issue_3052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32008-Issue_3034.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32008-Issue_3034.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32100-cpp17.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32100-cpp17.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32105-I2103.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32105-I2103.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32115-2185.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32115-2185.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33000-tab-0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33000-tab-0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33001-tab-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33001-tab-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33004-DoxygenComments.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33004-DoxygenComments.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33005-DoxygenComments.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33005-DoxygenComments.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33007-NewLine.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33007-NewLine.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33008-NewLine.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33008-NewLine.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33009-NewLine0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33009-NewLine0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33010-Q_EMIT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33010-Q_EMIT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33011-static.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33011-static.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33013-Q_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33013-Q_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33014-DB.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33014-DB.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33015-Q_FOREACH.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33015-Q_FOREACH.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33016-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33016-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33017-bug_1160.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33017-bug_1160.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33019-bug_657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33019-bug_657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33020-bug_662.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33020-bug_662.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33021-bug_633.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33021-bug_633.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33022-bug_634.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33022-bug_634.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33023-bug_651.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33023-bug_651.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33024-bug_653.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33024-bug_653.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33025-bug_654.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33025-bug_654.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33026-bug_631.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33026-bug_631.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33027-bug_664.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33027-bug_664.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33028-braces_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33028-braces_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33029-cast.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33029-cast.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33030-Q_FOREVER.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33030-Q_FOREVER.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33031-bug_612.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33031-bug_612.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33032-bug_670.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33032-bug_670.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33033-bug_670.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33033-bug_670.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33034-bug_671.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33034-bug_671.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33035-patch_32.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33035-patch_32.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33036-bug_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33036-bug_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33037-func_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33037-func_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33038-func_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33038-func_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33040-bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33040-bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33041-bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33041-bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33042-bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33042-bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33043-bug_i_478.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33043-bug_i_478.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33044-bug_i_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33044-bug_i_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33045-bug_i_width.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33045-bug_i_width.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33046-bug_i_409.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33046-bug_i_409.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33047-bug_i_409.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33047-bug_i_409.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33048-bug_i_405.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33048-bug_i_405.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33049-pp-pragma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33049-pp-pragma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33050-issue_523.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33050-issue_523.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33051-bug_i_503.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33051-bug_i_503.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33052-bug_i_512.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33052-bug_i_512.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33053-for_auto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33053-for_auto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33054-bug_i_825.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33054-bug_i_825.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33056-bug_33056.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33056-bug_33056.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33057-bug_1349.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33057-bug_1349.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33058-Issue_3164.cpp3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33060-if_constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33060-if_constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33061-if_chain_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33061-if_chain_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33062-if_chain_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33062-if_chain_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33063-if_chain_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33063-if_chain_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33064-if_chain_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33064-if_chain_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33069-Issue_2195.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33069-Issue_2195.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33070-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33070-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33071-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33071-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33072-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33072-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33073-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33073-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33074-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33074-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33075-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33075-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33076-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33076-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33077-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33077-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33078-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33078-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33079-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33079-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33080-multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33080-multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33081-bug_i_552.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33081-bug_i_552.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33082-namespace_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33082-namespace_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33083-bug_i_359.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33083-bug_i_359.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33084-op_sym_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33084-op_sym_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33085-bug_i_323.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33085-bug_i_323.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33086-bug_i_568.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33086-bug_i_568.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33087-bug_i_596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33087-bug_i_596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33088-bug_i_197.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33088-bug_i_197.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33089-bug_643.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33089-bug_643.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33090-gh555.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33090-gh555.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33091-squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33091-squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33092-squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33092-squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33093-sp_angle_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33093-sp_angle_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33094-sp_angle_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33094-sp_angle_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33095-bug_i_322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33095-bug_i_322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33096-squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33096-squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33097-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33097-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33098-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33098-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33099-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33099-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33100-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33100-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33101-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33101-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33102-enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33102-enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33103-bug_858.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33103-bug_858.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33104-bug_858.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33104-bug_858.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33105-bug_1001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33105-bug_1001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33106-pos_bool_in_template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33106-pos_bool_in_template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33107-Issue_2688.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33107-Issue_2688.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33108-Issue_2045.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33108-Issue_2045.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33109-Issue_3205.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33110-enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33110-enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33120-Issue_2149.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33120-Issue_2149.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33150-bug_i_753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33150-bug_i_753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33151-bug_i_752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33151-bug_i_752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33152-bug_1004.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33152-bug_1004.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33160-bug_1112.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33160-bug_1112.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33161-byref-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33161-byref-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33180-pp_multi_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33180-pp_multi_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33181-Issue_2759.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33181-Issue_2759.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33182-Issue_2794.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33182-Issue_2794.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33200-first_len_minimum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33200-first_len_minimum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33202-initlist_leading_commas.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33202-initlist_leading_commas.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33203-Issue_2574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33203-Issue_2574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33204-Issue_2582.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33204-Issue_2582.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33205-Issue_3198.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33210-templates4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33210-templates4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33211-pp_multi_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33211-pp_multi_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33212-pp-define-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33212-pp-define-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33213-disable_macro.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33213-disable_macro.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33214-Issue_2742.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33214-Issue_2742.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33215-Issue_3055.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33215-Issue_3055.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33216-Issue_3055-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33216-Issue_3055-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33217-Issue_3113.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33217-Issue_3113.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34001-nl_before_after.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34001-nl_before_after.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34002-bug_i_793.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34002-bug_i_793.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34006-bug_i_575.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34006-bug_i_575.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34007-bug_i_928.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34007-bug_i_928.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34100-bug_i_525.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34100-bug_i_525.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34101-bug_i_646.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34101-bug_i_646.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34105-bug_i_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34105-bug_i_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34108-bug_i_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34108-bug_i_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34112-bug_i_889.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34112-bug_i_889.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34113-bug_902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34113-bug_902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34114-bug_902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34114-bug_902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34116-issue_2000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34116-issue_2000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34117-extern_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34117-extern_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34118-Issue_2163.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34118-Issue_2163.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34120-bug_i_999.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34120-bug_i_999.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34121-bug_1717.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34121-bug_1717.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34122-Issue_2440.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34122-Issue_2440.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34123-Issue_2440_nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34123-Issue_2440_nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34130-bug_i_1000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34130-bug_i_1000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34131-bug_i_1000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34131-bug_i_1000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34132-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34132-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34133-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34133-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34134-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34134-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34135-new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34135-new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34140-bug_1027.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34140-bug_1027.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34141-bug_1005.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34141-bug_1005.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34142-I1112-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34142-I1112-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34143-I1112-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34143-I1112-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34144-I1112-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34144-I1112-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34145-i683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34145-i683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34146-bug_1002.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34146-bug_1002.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34147-bug_1002.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34147-bug_1002.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34148-bug_1139.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34148-bug_1139.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34149-bug_1139.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34149-bug_1139.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34150-bug_1032.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34150-bug_1032.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34151-bug_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34151-bug_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34152-bug_1068.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34152-bug_1068.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34153-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34153-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34154-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34154-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34155-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34155-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34156-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34156-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34157-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34157-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34158-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34158-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34159-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34159-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34160-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34160-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34161-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34161-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34162-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34162-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34163-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34163-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34164-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34164-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34165-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34165-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34166-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34166-type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34168-Issue_2910.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34168-Issue_2910.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34169-init-list-call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34169-init-list-call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34170-i1082.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34170-i1082.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34171-i1181.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34171-i1181.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34172-i1165.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34172-i1165.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34173-i1464.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34173-i1464.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34174-i1466.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34174-i1466.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34175-i1509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34175-i1509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34177-sp_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34177-sp_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34178-Issue_3237.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34180-bug_1402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34180-bug_1402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34190-bug_1003.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34190-bug_1003.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34191-comment-align-multiline.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34191-comment-align-multiline.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34192-i1207.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34192-i1207.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34193-i1218.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34193-i1218.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34194-sp_arith_additive.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34194-sp_arith_additive.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34195-sp_arith_additive.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34195-sp_arith_additive.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34196-Issue_1460.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34196-Issue_1460.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34197-bug_1161.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34197-bug_1161.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34198-bug_1249.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34198-bug_1249.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34199-not_lambda.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34199-not_lambda.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34200-i1536.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34200-i1536.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34201-i1565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34201-i1565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34202-i1617.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34202-i1617.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34203-i1516.cpp23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34205-bug_1395.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34205-bug_1395.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34206-for_loop_head.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34206-for_loop_head.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34207-for_loop_head.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34207-for_loop_head.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34208-conversion_operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34208-conversion_operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34209-lambda_selfcalling.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34210-override_virtual.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34210-override_virtual.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34211-anonymous_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34211-anonymous_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34250-bug_1607.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34250-bug_1607.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34251-bug_1649.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34251-bug_1649.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34252-issue_2001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34252-issue_2001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34253-friends.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34253-friends.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34254-issue_1985.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34254-issue_1985.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34256-Issue_2836.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34256-Issue_2836.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34280-UNI-29935.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34296-i1768.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34296-i1768.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34297-align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34297-align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34298-align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34298-align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34299-align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34299-align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34300-bug_1236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34300-bug_1236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34305-issue_2124-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34305-issue_2124-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34306-issue_2124-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34306-issue_2124-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34307-2203.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34307-2203.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34308-enum_comment_wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34308-enum_comment_wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34309-issue_2209-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34309-issue_2209-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34310-issue_2209-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34310-issue_2209-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34311-Issue_2250.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34311-Issue_2250.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34312-Issue_2101.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34312-Issue_2101.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34313-Issue_2437.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34313-Issue_2437.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34314-Issue_2604.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34314-Issue_2604.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34318-align_assign_func_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34318-align_assign_func_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34321-bug_2285.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34321-bug_2285.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34322-issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34322-issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34323-issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34323-issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34324-issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34324-issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34325-Issue_3025.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34325-Issue_3025.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34326-Issue_3040.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34326-Issue_3040.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34327-Issue_3044.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34327-Issue_3044.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34328-Issue_3048.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34328-Issue_3048.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34500-sp_before_case_colon.cpp12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34501-sp_endif_cmt.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34502-sp_enum_assign.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34503-sp_enum_assign.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34504-issue_574-i.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34505-Issue_3220.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34506-Issue_3220.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34507-Issue_3220.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34508-Issue_3220.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34509-byref-2.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34510-byref-2.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34511-byref-2.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34512-byref-2.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34513-sp_cond_question.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34514-sp_cond_question.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34515-sp_cond_question.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34516-sp_cond_question.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34517-semi.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34518-semi.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34519-semi.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34520-comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_paren_comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34521-comma.cpp2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34522-comma.cpp2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34524-bug_1002.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1002.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34525-sp_paren_brace.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34526-sp_paren_brace.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34527-sp_paren_brace.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34529-type_brace_init_lst.cpp87
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34530-type_brace_init_lst.cpp87
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34531-type_brace_init_lst.cpp87
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34532-type_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/type_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34533-templates.cpp188
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34534-templates.cpp188
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34535-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34536-sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/39000-UNI-64325.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/39000-UNI-64325.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60001-UNI-2650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60001-UNI-2650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60002-UNI-16283.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60002-UNI-16283.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60003-UNI-1288.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60003-UNI-1288.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60006-UNI-2049.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60017-UNI-2683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60017-UNI-2683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60022-UNI-18439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60022-UNI-18439.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60025-UNI-19894.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60025-UNI-19894.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60027-UNI-21506.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60027-UNI-21506.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60028-UNI-21509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60028-UNI-21509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60029-UNI-21510.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60029-UNI-21510.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60030-UNI-21727.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60030-UNI-21727.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60031-UNI-21728.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60031-UNI-21728.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60032-UNI-21729.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60032-UNI-21729.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60036-UNI-2680.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60036-UNI-2680.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60038-UNI-30088.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60038-UNI-30088.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60039-UNI-30628.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60039-UNI-30628.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60042-UNI-18777.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60042-UNI-18777.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60043-i2033.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60043-i2033.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60044-i2116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60044-i2116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60047-align_default_after_override.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60047-align_default_after_override.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60048-bug_2322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60048-bug_2322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60049-bug_2402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60049-bug_2402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60050-semicolon-removal-after-ternary-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60050-semicolon-removal-after-ternary-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60051-bug_2371.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60051-bug_2371.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60052-bug_2433_1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60052-bug_2433_1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60053-bug_2433_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60053-bug_2433_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60055-issue_3116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60055-issue_3116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60056-issue_3116-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60056-issue_3116-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60057-issue_3116.cpp233
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60058-issue_3330.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60059-indent_ctor_init.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60060-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60061-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60062-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60063-returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60064-issue_3368.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60065-issue_3378.cpp28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10000-simple.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10000-simple.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10001-getset.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10001-getset.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10002-simple.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10002-simple.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10003-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10003-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10010-var-member.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10010-var-member.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10011-strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10011-strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10012-621_this-spacing.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10012-621_this-spacing.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10013-625_where-constraints.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10013-625_where-constraints.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10015-misc-failures.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10015-misc-failures.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10016-new-constraint-paren-space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10016-new-constraint-paren-space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10018-delete-space-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10018-delete-space-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10019-func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10019-func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10020-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10020-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10021-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10021-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10022-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10022-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10023-region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10023-region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10027-oneline_property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10027-oneline_property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10028-ifcolalign.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10028-ifcolalign.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10029-when.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10029-when.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10030-sort_using.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10030-sort_using.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10031-bug_i_935.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10031-bug_i_935.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10032-sort_using_categ.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10032-sort_using_categ.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10033-objc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10033-objc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10034-asm.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10034-asm.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10035-definesalign.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10035-definesalign.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10036-inttypes.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10036-inttypes.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10039-615_nested-usings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10039-615_nested-usings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10040-tcf.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10040-tcf.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10041-gs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10041-gs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10042-exception-filters.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10042-exception-filters.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10044-ifcomment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10044-ifcomment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10045-UNI-1288.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10045-UNI-1288.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10046-UNI-1333.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10046-UNI-1333.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10050-generics.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10050-generics.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10051-UNI-1338.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10051-UNI-1338.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10055-UNI-1345.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10055-UNI-1345.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10060-unsafe.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10060-unsafe.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10065-UNI-1975.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10065-UNI-1975.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10066-UNI-1977.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10066-UNI-1977.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10067-UNI-1978.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10067-UNI-1978.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10070-utf16le.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10070-utf16le.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10071-utf16be.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10071-utf16be.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10072-utf16le_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10072-utf16le_no_bom.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10073-utf16be_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10073-utf16be_no_bom.cs)bin240 -> 240 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10074-UNI-2020.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10074-UNI-2020.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10075-UNI-2021.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10075-UNI-2021.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10076-UNI-1343.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10076-UNI-1343.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10077-UNI-1919.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10077-UNI-1919.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10078-UNI-3484.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10078-UNI-3484.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10080-property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10080-property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10090-string_multi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10090-string_multi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10100-bug_600.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10100-bug_600.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10101-sf607.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10101-sf607.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10102-pp-ignore.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10102-pp-ignore.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10103-UNI-2506.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10103-UNI-2506.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10104-UNI-2505.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10104-UNI-2505.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10110-mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10110-mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10111-mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10111-mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10112-mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10112-mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10119-preserveTabs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10119-preserveTabs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10120-cmt_backslash_eol.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10120-cmt_backslash_eol.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10130-sp_between_new_paren.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10130-sp_between_new_paren.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10140-remove_semi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10140-remove_semi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10150-operator-null-conditional.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10150-operator-null-conditional.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10160-delegate.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10160-delegate.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10161-delegate.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10161-delegate.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10200-logger.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10200-logger.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10300-1822.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10300-1822.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10628-sf628.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10628-sf628.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11011-620_getset-brace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11011-620_getset-brace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11030-argtypes.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11030-argtypes.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11031-casting.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11031-casting.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11032-newlines.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11032-newlines.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11072-UNI-2007.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11072-UNI-2007.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11073-UNI-2008.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11073-UNI-2008.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12001-bug_620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12001-bug_620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12002-nullable_prop.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12002-nullable_prop.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12004-verbatim_strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12004-verbatim_strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12005-bug_1591.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12005-bug_1591.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12101-bug_i_679.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12101-bug_i_679.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12104-bug_1637.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12104-bug_1637.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12105-bug_1650.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12105-bug_1650.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12106-UNI-40685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12106-UNI-40685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12108-Issue_2705.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12108-Issue_2705.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12200-comma.cs1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12201-comma.cs1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12202-comma.cs1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/19000-UNI-58354.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/19000-UNI-58354.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20010-UNI-32658.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/20010-UNI-32658.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20011-bug_1620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/20011-bug_1620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60004-UNI-2684.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60004-UNI-2684.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60005-UNI-2685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60005-UNI-2685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60007-UNI-3083.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60007-UNI-3083.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60008-UNI-17253.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60008-UNI-17253.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60009-UNI-9917.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60009-UNI-9917.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60011-UNI-11095.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60011-UNI-11095.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60012-UNI-12303.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60012-UNI-12303.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60013-UNI-13955.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60013-UNI-13955.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60015-UNI-14131.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60015-UNI-14131.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60016-UNI-11662.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60016-UNI-11662.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60018-UNI-18777.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60018-UNI-18777.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60019-UNI-18780.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60019-UNI-18780.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60020-UNI-18829.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60020-UNI-18829.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60023-UNI-18437.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60023-UNI-18437.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60024-UNI-19644.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60024-UNI-19644.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60026-UNI-19895.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60026-UNI-19895.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60033-UNI-21730.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60033-UNI-21730.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60036-UNI-11993.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60036-UNI-11993.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60037-UNI-29933.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60037-UNI-29933.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60040-UNI-30498_2.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60040-UNI-30498_2.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60044-UNI-37241.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60044-UNI-37241.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60045-add-nl-before-namespace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60045-add-nl-before-namespace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40000-HashMap.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40000-HashMap.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40001-imports.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40001-imports.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40002-volatile.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40002-volatile.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40003-volatile-1.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40003-volatile-1.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40004-volatile-2.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40004-volatile-2.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40005-volatile-3.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40005-volatile-3.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40006-Lexer.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40006-Lexer.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40007-Lexer.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40007-Lexer.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40010-template.d29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40011-template.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40011-template.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40012-template.d28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40013-template.d28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40020-funcfunc.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40020-funcfunc.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40021-tst01.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40021-tst01.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40022-tst02.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40022-tst02.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40023-bug-indent.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40023-bug-indent.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40024-tst03.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40024-tst03.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40025-tst03.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40025-tst03.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40026-wysiwyg_strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40026-wysiwyg_strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40027-static_if_in_struct.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40027-static_if_in_struct.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40030-delegate.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40030-delegate.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40035-enum.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40035-enum.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40040-sort_import.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40040-sort_import.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40050-strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40050-strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40051-numbers.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40051-numbers.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40052-numbers.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40052-numbers.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40060-casts.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40060-casts.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40061-const.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40061-const.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40070-d_sp_paren.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40070-d_sp_paren.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40080-static_if.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40080-static_if.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40090-square_indent_tab.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40090-square_indent_tab.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40100-1438.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40100-1438.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40201-invariant.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40201-invariant.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40300-extern_.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40300-extern_.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40400-vbraces000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40400-vbraces000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40401-vbraces001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40401-vbraces001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40402-vbraces002.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40402-vbraces002.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40403-template_use.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40403-template_use.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40500-template_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40500-template_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40501-template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40501-template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40502-template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40502-template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40503-template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40503-template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40504-type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40504-type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40505-type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40505-type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40506-type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40506-type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/ecma/90000-example-1.es (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/ecma/90000-example-1.es)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80000-assert.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80000-assert.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80010-annotation1.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80010-annotation1.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80011-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80011-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80012-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80012-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80013-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80013-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80014-annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80014-annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80020-foreach.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80020-foreach.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80030-variable_aligns.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80030-variable_aligns.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80040-try.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80040-try.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80050-double_brace.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80050-double_brace.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80051-double_brace.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80051-double_brace.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80060-synchronized.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80060-synchronized.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80061-synchronized.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80061-synchronized.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80062-sp_this_paren.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80062-sp_this_paren.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80063-i1121.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80063-i1121.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80064-long_cl_cmt.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80064-long_cl_cmt.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80065-Java8DoubleColon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80065-Java8DoubleColon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80066-sp_after_for_colon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80066-sp_after_for_colon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80067-doxy-javadoc-alignment.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80067-doxy-javadoc-alignment.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80068-nl_before_ignore_after_case.java19
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80100-sf567.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80100-sf567.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80200-sp_before_byref.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80200-sp_before_byref.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80201-generics.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80201-generics.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80202-generics_wildcard.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80202-generics_wildcard.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80203-generics_return_type.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80203-generics_return_type.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80204-cast.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80204-cast.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80205-sp_after_angle.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80205-sp_after_angle.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80206-annotation3.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80206-annotation3.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80300-Issue_670.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80300-Issue_670.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80301-issue_672.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80301-issue_672.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80302-Issue_1845.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80302-Issue_1845.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80303-Issue_1122.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80303-Issue_1122.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80304-Issue_1124.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80304-Issue_1124.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80305-Issue_1124.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80305-Issue_1124.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10018-delete-space-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10018-delete-space-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10019-func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10019-func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10020-align-objc-like-xcode.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10020-align-objc-like-xcode.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10021-double-indent-objc-dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10021-double-indent-objc-dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10022-indent-objc-block.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10022-indent-objc-block.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50001-Fraction.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50001-Fraction.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50002-Fraction.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50002-Fraction.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50003-main.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50003-main.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50004-string.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50004-string.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50005-Declarations.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50005-Declarations.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50006-exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50006-exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50007-misc.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50007-misc.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50008-protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50008-protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50009-literals.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50009-literals.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50010-return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50010-return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50011-return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50011-return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50012-return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50012-return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50015-receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50015-receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50016-ternary.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50016-ternary.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50017-ternary.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50017-ternary.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50018-indent-inside-ternary-operator.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50018-indent-inside-ternary-operator.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50020-selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50020-selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50021-selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50021-selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50022-selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50022-selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50025-exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50025-exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50026-exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50026-exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50030-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50030-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50031-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50031-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50032-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50032-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50033-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50033-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50034-sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50034-sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50035-sort_import_group.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50035-sort_import_group.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50040-complex_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50040-complex_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50050-real_world_file.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50050-real_world_file.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50060-oc-split.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50060-oc-split.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50061-bug_167.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50061-bug_167.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50062-issue_2631.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50062-issue_2631.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50070-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50071-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50072-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50073-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50074-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50075-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50076-blocks.m15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50077-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50077-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50078-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50078-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50079-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50079-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50080-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50080-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50081-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50081-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50082-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50082-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50083-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50083-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50084-more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50084-more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50085-block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50085-block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50086-block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50086-block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50090-kw.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50090-kw.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50091-block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50091-block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50095-box.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50095-box.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50100-bug_340.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50100-bug_340.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50110-msg_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50110-msg_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50111-ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50111-ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50112-ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50112-ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50113-ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50113-ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50120-gh137.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50120-gh137.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50200-more_blocks_2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50200-more_blocks_2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50201-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50201-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50202-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50202-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50203-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50203-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50204-blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50204-blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50205-msg_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50205-msg_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50206-issue_2727.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50206-issue_2727.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50207-issue_3031.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50207-issue_3031.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50300-msg.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50300-msg.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50400-for.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50400-for.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50410-oc_cond_colon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50410-oc_cond_colon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50411-attribute_specifier_seqs.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50411-attribute_specifier_seqs.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50500-code_placeholder.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50500-code_placeholder.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50510-gh293.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50510-gh293.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50511-gh293.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50511-gh293.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50512-sp_oc_catch.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50512-sp_oc_catch.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50513-sp_oc_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50513-sp_oc_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50514-indent_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50514-indent_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50515-sp_oc_synchronized.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50515-sp_oc_synchronized.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50600-bug_i_477.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50600-bug_i_477.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50601-bug_i_408.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50601-bug_i_408.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50602-bug_i_125-412.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50602-bug_i_125-412.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50603-gh511.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50603-gh511.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50604-bug_497.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50604-bug_497.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50605-bug_404.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50605-bug_404.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50606-bug_1366.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50606-bug_1366.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50608-blocks_align2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50608-blocks_align2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50609-negative_value.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50609-negative_value.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50610-nelem.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50610-nelem.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50611-for2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50611-for2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50612-chunk_ends_type1.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50612-chunk_ends_type1.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50613-chunk_ends_type2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50613-chunk_ends_type2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50614-chunk_ends_type3.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50614-chunk_ends_type3.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50615-block_literal_protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50615-block_literal_protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50616-oc_msg_in_pp.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50616-oc_msg_in_pp.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50617-boxed_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50617-boxed_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50618-func_def.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50618-func_def.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50619-cast.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50619-cast.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50620-sp_after_angle.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50620-sp_after_angle.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50621-Fraction.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50621-Fraction.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50623-extern-c-attribute.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50623-extern-c-attribute.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50624-typeof.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50624-typeof.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50626-chunk_ends_type4.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50626-chunk_ends_type4.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50627-method_ends_semicolon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50627-method_ends_semicolon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50628-macro-close-brace.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50628-macro-close-brace.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50629-pp_bool.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50629-pp_bool.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m103
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50700-cmt_insert.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50700-cmt_insert.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50701-cmt_insert2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50701-cmt_insert2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50800-properties.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50800-properties.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50801-i1213.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50801-i1213.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50802-available.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50802-available.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50803-indent_single_newline.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50803-indent_single_newline.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50804-issue_2629.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50804-issue_2629.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50805-issue_2724.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50805-issue_2724.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50810-bug_841.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50810-bug_841.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50811-bug_1674.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50811-bug_1674.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50812-bug_1683.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50812-bug_1683.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50813-sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50813-sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50814-sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50814-sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50815-sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50815-sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50816-issue_2675.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50816-issue_2675.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50817-issue_2722.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50817-issue_2722.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50900-1927.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50900-1927.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50901-Issue_2172.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50901-Issue_2172.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50902-Issue_2289.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50902-Issue_2289.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50903-Issue_681.oc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50903-Issue_681.oc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50904-double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50904-double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50905-double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50905-double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50906-double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50906-double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51000-sp_cond_ternary_short.m1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51001-ns_enum-i.m2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51002-sp_oc_catch.m18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51003-sp_oc_catch.m18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51004-block_pointer.m16
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60000-functions.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60000-functions.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60001-comment.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60001-comment.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60002-traffic.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60002-traffic.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60003-tags.pawn69
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60004-enum.pawn91
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60005-unbraced.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60005-unbraced.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60010-str-escape.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60010-str-escape.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60020-switch-vsemi.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60020-switch-vsemi.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60030-crusty_ex-1.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60030-crusty_ex-1.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60040-preproc.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60040-preproc.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60050-gh419.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60050-gh419.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60100-Issue_2586.pawn5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60101-Issue_2665.pawn3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02400-mysql.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02400-mysql.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02401-sta-select.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02401-sta-select.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02402-issue_527.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02402-issue_527.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70000-list.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70000-list.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70001-advanced.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70001-advanced.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70010-verbatim_str.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70010-verbatim_str.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70011-verbatim_str2.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70011-verbatim_str2.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70012-verbatim_str2.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70012-verbatim_str2.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70020-preproc.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70020-preproc.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70287-gh287.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70287-gh287.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70300-Issue_2090.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70300-Issue_2090.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70301-Issue_2270.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70301-Issue_2270.vala)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/fixtest.sh (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/fixtest.sh)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/imported.test (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/imported.test)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/1225.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/1225.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue-2278.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue-2278.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2279.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2279.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2360.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2360.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2411.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2411.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2640.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2640.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2845.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2845.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3169.c30
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3233.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3269.c17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3272.h11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3274.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3327.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3339.c7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3342.c6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3343.c10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3345.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3351.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3356.c13
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3362.c15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3366.c12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3370.c17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3376.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3377.c9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/add_long_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/add_long_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-equ.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-equ.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-proto-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-proto.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-string.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-string.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-struct-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-struct-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-typedef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-typedef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-var.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-var.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_attr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_attr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_func_proto_star_amp.h29
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_keep_extra.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_keep_extra.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_418.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_span_418.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_419.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_span_419.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_416.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_thresh_416.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_417.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_thresh_417.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_stack.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_stack.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/attribute.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/attribute.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/backslash-newline-lex.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/backslash-newline-lex.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/beautifier-off.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/beautifier-off.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bits.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bits.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bool-pos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bool-pos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/br_cmt.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/br_cmt.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bsnl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bsnl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1041.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1041.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1196.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1196.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1702.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1702.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1718.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1718.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_2331.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_2331.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_3156.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_3156.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_489.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_489.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_671.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_671.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_222.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_222.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_771.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_771.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_876.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_876.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-3.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-3.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-4.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-4.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-5.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-5.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-6.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-6.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-7.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-7.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case-nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/case-nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cast_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cast_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/casts.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/casts.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/clang-has_include.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/clang-has_include.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt-align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt-align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_multi_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_nl_end.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_nl_end.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_reflow.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_reflow.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_right_align.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_right_align.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/code_width.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/code_width.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/colon-asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/colon-asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-convert.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/comment-convert.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/comment-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cond.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cond.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/custom_types_ssl.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/custom_types_ssl.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/define-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/define-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/deref.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/deref.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/directfb.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/directfb.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/dos.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/dos.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/double-sparen.c8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/doxy-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/doxy-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/else-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/else-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/empty-for.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/empty-for.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum-struct-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum-struct-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_comma_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum_comma_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_gallery.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum_gallery.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/extern.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/extern.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent_func_def_col1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_indent_func_def_col1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_type.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_type.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/for-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/for-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/forever.c5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/freebsd.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/freebsd.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_call_user.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_call_user2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/funcfunc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/funcfunc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/function-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/function-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/gh399.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/gh399.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/global-vars.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/global-vars.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/hello.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/hello.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1270.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1270.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1413.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1413.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1564.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1564.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i2c-core.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i2c-core.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/if_chain.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/if_chain.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/ifdef-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-nest.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/ifdef-nest.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include-guard.h10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include_define.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/include_define.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-macro-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-macro-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-off-after-assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-off-after-assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-vbrace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-vbrace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_first_bool_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_first_bool_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-1.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_ternary-1.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_ternary-2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/kw_subst.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/kw_subst.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/lvalue.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/lvalue.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mac.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mac.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/macro-returns.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/macro-returns.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/minus-minus.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/minus-minus.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/misc.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/misc.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod-paren.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mod-paren.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod_case_brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mod_case_brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/multi.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/multi.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/my_infile.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/my_infile.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/negative_value.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/negative_value.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/newline_after_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/newline_after_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-cont.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont2.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-cont2.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-semicolon.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-semicolon.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-ver-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-ver-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_assign.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_assign.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_ignore_after_case.c48
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_return.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_before_return.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_create_one_liner.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_create_one_liner.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_ds_struct_enum.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_ds_struct_enum.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_proto_endif.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_proto_endif.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_return_expr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_return_expr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-define.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one-liner-define.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-init.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one-liner-init.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one_liners.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one_liners.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/paren-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren_indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/paren_indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/parenthesized_indirect_call.c17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pascal_ptr.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pascal_ptr.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_compare.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pos_compare.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_conditional.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pos_conditional.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-before-func-def.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-before-func-def.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-if-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-if-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-nest.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-nest.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-space.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-space.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_concat_asn1.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp_concat_asn1.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_ret.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp_ret.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pragma.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma_asm.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pragma_asm.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/preproc-if.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/preproc-if.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-compound-literal.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/return-compound-literal.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-multi.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/return-multi.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/semicolons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/semicolons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf588.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sf588.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf594.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sf594.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/single_line_comment_after.c11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sort_include.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sort_include.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_after_sparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_after_sparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_cmt_cpp_start.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_cmt_cpp_start.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_embed_comment.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_embed_comment.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_func_call_user_inside_fparen.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_func_call_user_inside_fparen.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sparen-indent.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sparen-indent.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_prefixes.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/string_prefixes.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_utf8.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/string_utf8.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/struct-brace.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/struct-brace.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch-case.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/switch-case.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/switch.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/t3.in.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/t3.in.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type-cast.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/type-cast.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type_wrap.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/type_wrap.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/utf8-identifiers.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/utf8-identifiers.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vardefcol.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vardefcol.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/various_colons.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/various_colons.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-do.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-do.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-pp.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-pp.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-while.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-while.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/whole_file_ifdef.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/whole_file_ifdef.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/xml.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/xml.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2185.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2185.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2203.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2203.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/621_this-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/621_this-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/622_ifdef-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/622_ifdef-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/623_caret-spacing.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/623_caret-spacing.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/633_decl-in-func-typedef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/633_decl-in-func-typedef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/634_extern-c-no-block.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/634_extern-c-no-block.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DB.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DB.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DefaultAndDelete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DefaultAndDelete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DoxygenComments.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DoxygenComments.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Example.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Example.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2102.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I2102.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2103.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I2103.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1167.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1167.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1184.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1184.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1460.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1460.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1511.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1511.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1692.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1692.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1704.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1704.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1733.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1733.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1737.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1737.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1923.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1923.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1966.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1966.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2045.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2045.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2085.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2085.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2091.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2091.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2099.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2099.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2101.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2101.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2138.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2138.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2149.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2149.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2150.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2150.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2151.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2151.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2163.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2163.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2166.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2166.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2186.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2186.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2195.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2195.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2219.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2219.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2224.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2224.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2229.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2229.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2232.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2232.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2250.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2250.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2281.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2281.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2302.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2302.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2305.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2305.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2319.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2319.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2332.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2332.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cfg (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2343.cfg)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2343.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2345-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2345-4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2368.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2368.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2383.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2383.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2386.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2386.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2387.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2387.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2428.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2428.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2437.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2437.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2440.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440_nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2440_nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2478.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2478.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2561.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2561.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2570.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2570.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2582.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2582.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2591.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2591.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2594.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2594.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2604.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2604.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2672-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-b.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2672-b.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2688.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2688.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2692.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2703.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2703.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2726.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2726.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2734.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2734.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2735.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2735.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2742.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2742.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2757.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2757.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2759.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2759.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2771.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2771.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2794.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2794.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2795.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2795.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2823.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2823.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2831.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2831.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2836.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2836.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2873.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2873.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2879.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2879.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2886.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2886.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2890.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2890.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2907.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2907.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2910.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2910.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2914.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2914.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2921.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2921.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2930.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2930.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2942.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2942.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2949.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2949.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3010.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3010.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3018.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3018.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3025.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3025.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3034.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3034.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3040.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3040.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3044.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3044.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3048.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3048.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3052.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3052.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3054-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3054.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055-a.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3055-a.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3055.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3058.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3058.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_0nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_0nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_1nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_1nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_2nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_2nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3080.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3080.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3097.cpp17
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3113.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3113.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3164.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3176.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3197.h4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3198.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3203.cpp14
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3205.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3220.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3237.cpp4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3252.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3309.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3321.h4
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_931.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_931.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_995-do.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_995-do.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/NewLine.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/NewLine0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_EMIT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_EMIT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREACH.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_FOREACH.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREVER.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_FOREVER.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/STUCK_macro-difficulties.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/STUCK_macro-difficulties.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Timestamp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Timestamp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-10496.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-10496.cpp)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-12046.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-12046.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1288.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1288.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1334.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1334.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1335.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1335.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1337.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1337.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1339.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1339.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1344.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1344.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1346.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1346.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1347.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1347.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1350.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1350.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1356.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1356.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1358.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1358.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-16283.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-16283.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-18439.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18777.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-18777.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1980.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1980.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1981.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1981.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1983.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1983.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-19894.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-19894.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2049.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2049.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21506.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21506.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21510.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21510.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21727.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21727.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21728.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21728.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21729.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21729.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2680.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2680.cpp)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-29935.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-29935.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30088.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-30088.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30628.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-30628.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-32657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-32657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-38381.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-38381.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-64325.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-64325.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-9650.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-9650.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/al.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/al.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-330.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/align-330.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-assign-mixed.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-assign-mixed.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-star-amp-pos.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-star-amp-pos.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_across_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_across_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_assign_func_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_assign_func_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_asterisk_after_type_cast.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_asterisk_after_type_cast.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class-constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_class-constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_constr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_constr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_continuation_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_continuation_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_default_after_override.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_default_after_override.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_fcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_fcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_params.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_params.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_proto_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_proto_thresh2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_left_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_left_shift2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_right_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_right_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_var_def_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_var_def_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/alt_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/alt_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/anonymous_enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/anonymous_enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/attribute_specifier_seqs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/attribute_specifier_seqs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/av.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/av.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bit-colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bit-colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bom.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bom.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bool.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bool.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/brace_brace_init_lst.cpp22
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braced_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_template_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braced_init_template_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braces_align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braces_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1002.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1003.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1003.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1004.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1004.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1005.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1005.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1020.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1020.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1027.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1027.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1032.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1032.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1068.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1068.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1108.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1108.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1112.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1112.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1127.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1127.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1134.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1134.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1139.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1139.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1158.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1158.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1160.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1160.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1161.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1161.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1169.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1169.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1170.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1170.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1235.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1235.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1236.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1236.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1249.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1249.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1288.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1288.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1289.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1289.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1296.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1296.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1315.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1315.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1321.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1321.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1324.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1324.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1338.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1338.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1340.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1340.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1346.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1346.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1349.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1349.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1395.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1395.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1403.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1403.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1432.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1432.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1439.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1439.cpp)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1452.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1452.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1462.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1462.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1607.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1607.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1649.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1649.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1689.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1689.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1691.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1691.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1717.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1717.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1758-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1758.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1854.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1854.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1862.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1862.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2285.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2285.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2371.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2371.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2402.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2402.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2433_1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2433_2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_33056.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_33056.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_472.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_472.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_484.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_484.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_485.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_485.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_488.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_488.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_495.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_495.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_612.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_612.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_631.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_631.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_633.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_633.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_634.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_634.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_643.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_643.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_651.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_651.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_653.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_653.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_654.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_654.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_657.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_657.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_662.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_662.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_664.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_664.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_670.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_670.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_671.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_671.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_858.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_858.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_902.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_902.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_1000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_1000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_197.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_197.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_322.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_322.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_323.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_323.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_359.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_359.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_405.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_405.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_409.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_409.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_411.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_411.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_478.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_478.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_481.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_481.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_503.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_503.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_512.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_512.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_525.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_525.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_552.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_552.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_568.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_568.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_575.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_575.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_596.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_596.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_646.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_646.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_663.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_663.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_666.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_666.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_682.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_682.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_687.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_687.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_753.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_753.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_793.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_793.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_825.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_825.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_889.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_889.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_928.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_928.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_938.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_938.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_999.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_999.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_width.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_width.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-2.cpp8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref-3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/call_brace_init_lst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/call_brace_init_lst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/case-brace-remove.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/case-brace-remove.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cast.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cast.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/casts.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/casts.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-addr.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-addr.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-implementation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-implementation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-cpp-cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt-cpp-cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-reflow.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt-reflow.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_backslash_eol.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_backslash_eol.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent_pp.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_indent_pp.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_insert.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_insert.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_right.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_right.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comma.cpp2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align-multiline.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/comment-align-multiline.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/comment-align.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/const_throw.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/const_throw.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constructor.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/constructor.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/conversion_operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/conversion_operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cout.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cout.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp17.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cpp17.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp_move.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cpp_move.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ctor-var.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ctor-var.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/custom-open-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/custom-open.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/define-indentation.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/define-indentation.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/delete.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/delete.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/deref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/deref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/digraph.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/digraph.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/disable_macro.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/disable_macro.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-detab-strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/dont-detab-strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-process-defines.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/dont-process-defines.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eat_blanks_after_codewidth.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/eat_blanks_after_codewidth.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eigen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/eigen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comma.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_comma.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comment_wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_comment_wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_shr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_shr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/exception.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/exception.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_c.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/extern_c.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/extern_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/first_len_minimum.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/first_len_minimum.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/fix_for_relational_operators.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/fix_for_relational_operators.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_auto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_auto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_long.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_long.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_loop_head.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_loop_head.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/foreach.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/foreach.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/friends.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/friends.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call_chain.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_call_chain.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_class.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param_indent_leading_comma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_param_indent_leading_comma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/function-def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/function-def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/functype_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/functype_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gcc_case_ellipsis.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gh555.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/gh555.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/goto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/goto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1082.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1082.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1165.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1165.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1181.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1181.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1207.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1207.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1218.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1218.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1464.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1464.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1466.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1466.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1509.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509_bug_1112_correction.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1509_bug_1112_correction.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1516.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1536.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1536.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1565.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1565.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1617.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1617.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1768.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1768.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2033.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i2033.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2116.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i2116.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i683.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i683.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if-constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if-constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_chain_braces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if_chain_braces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_constexpr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if_constexpr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ifcomment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ifcomment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-c.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-c.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-inside-ternary-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-inside-ternary-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-off.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-off.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_braces_no.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_braces_no.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comma_brace_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_glob.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comma_brace_glob.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comment_align_thresh.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comment_align_thresh.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_ctor_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_members_twice.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_ctor_members_twice.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace2.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace2.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace_single_indent.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace_single_indent.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_off_after_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_off_after_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_param.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_param.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_switch_pp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_switch_pp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_var_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def_cont.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_var_def_cont.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init-list-call.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/init-list-call.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init_align.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/init_align.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/initlist_leading_commas.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/initlist_leading_commas.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/interface-keyword-in-cpp.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/interface-keyword-in-cpp.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1752.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1752.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1778.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1778.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1782.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1782.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1804.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1804.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1916.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1916.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1919.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1919.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1946.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1946.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1985.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1985.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2000.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2000.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2001.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2001.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2124-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2124-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2209-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2209-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2623.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2623.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_3116-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116.cpp213
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3330.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3368.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3378.cpp28
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_523.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_523.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_547_for_each.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_547_for_each.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_564.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_564.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574-i.cpp5
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_624_angle.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_624_angle.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_633_typename.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_633_typename.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_672.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_672.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/kw_subst.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/kw_subst2.cpp)0
-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.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_brace_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_brace_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_in_one_liner.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_in_one_liner.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_selfcalling.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_selfcalling.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Mac.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Mac.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Unix.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Unix.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Win.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Win.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_br_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/long_br_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/long_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/macro_spaces.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/macro_spaces.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc5.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc5.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc6.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc6.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return-2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/mod_remove_empty_return-2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/mod_remove_empty_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ms-style-ref.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ms-style-ref.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/multi_line.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/multi_line.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/namespace_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/namespace_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/new_op.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/new_op.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl-class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-namespace.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl-namespace.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_assign_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_assign_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_after.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_before_after.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_brace_open_test.cpp23
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_func_body_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_before_func_body_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp9
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_struct.cpp15
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_for_leave_one_liners.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_for_leave_one_liners.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_decl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_decl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_def_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_def_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_paren_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_paren_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_scope_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_scope_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_type_name.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_type_name.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_inside_namespace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_inside_namespace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_max_blank_in_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_max_blank_in_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/noexcept.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/noexcept.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/not_lambda.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/not_lambda.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/op_sym_empty.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/op_sym_empty.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator_proto.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/operator_proto.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/out-668.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/out-668.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/output.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/output.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/override_virtual.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/override_virtual.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/parameter-packs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/parameter-packs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/patch_32.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/patch_32.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_assign.cpp7
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_bool_in_template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pos_bool_in_template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_shift.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pos_shift.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-define-indent.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp-define-indent.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-pragma.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp-pragma.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_case.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_case.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_extern.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_extern.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_func_def.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_func_def.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_multi_comment.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_multi_comment.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/proto-wrap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/proto-wrap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ptr-star.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ptr-star.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qt-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/qt-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qtargs.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/qtargs.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_braced_init.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/return_braced_init.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_init_list.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/return_init_list.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/returns.cpp34
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semi.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolon-removal-after-ternary-operator.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/semicolon-removal-after-ternary-operator.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolons.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/semicolons.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.2886991.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.2886991.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3266678.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.3266678.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3315874.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.3315874.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf557.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf557.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf562.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf562.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf567.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf567.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf574.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf574.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf583.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf583.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf593.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf593.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sim.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sim.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_angle.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_type.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_type.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_angle_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_angle_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_arith_additive.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_arith_additive.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_balance_nested_parens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_balance_nested_parens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_byref_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_byref_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_case_colon.cpp12
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_constr_colon.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_constr_colon.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_brace.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_brace_brace.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_catch.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_brace_catch.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_region.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cmt_cpp_region.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_start.cc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cmt_cpp_start.cc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cond_question.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cparen_oparen.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cparen_oparen.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp24
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_decltype.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_decltype.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_endif_cmt.cpp11
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_assign.cpp6
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_colon.cpp10
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_func_call_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_func_call_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_inside_braces_enum.cpp1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_paren_brace.cpp18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_throw_paren.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_throw_paren.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_type_func.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_type_func.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/squeeze_ifdef.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/squeeze_ifdef.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/static.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/static.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/stdcall.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/stdcall.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/string_replace_tab_chars.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/string_replace_tab_chars.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/strings.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/strings.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-0.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/tab-0.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-1.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/tab-1.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templ_class.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templ_class.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates.cpp186
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates3.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates3.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates4.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates4.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/toggle_processing_cmt.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt2.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/toggle_processing_cmt2.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/trailing_return.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/trailing_return.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/try-catch-nl.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/try-catch-nl.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/type_brace_init_lst.cpp87
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/uniform_initialization.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/uniform_initialization.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/using-alias-in-define.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/using-alias-in-define.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/var_def_gap.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/var_def_gap.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/variadic-template.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/variadic-template.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/wacky-template.cpp (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/wacky-template.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/1822.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/1822.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/615_nested-usings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/615_nested-usings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/620_getset-brace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/620_getset-brace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/621_this-spacing.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/621_this-spacing.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/625_where-constraints.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/625_where-constraints.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/Issue_2705.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/Issue_2705.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11095.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11095.mm)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11662.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11662.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11993.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11993.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-12303.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-12303.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1288.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1288.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1333.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1333.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1338.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1338.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1343.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1343.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1345.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1345.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-13955.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-13955.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-14131.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-14131.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-17253.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-17253.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18437.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18437.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18777.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18777.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18780.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18780.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18829.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18829.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1919.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1919.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19644.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-19644.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1975.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1975.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1977.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1977.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1978.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1978.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19895.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-19895.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2007.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2007.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2008.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2008.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2020.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2020.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2021.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2021.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-21730.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-21730.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2505.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2505.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2506.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2506.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2684.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2684.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-29933.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-29933.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-30498_2.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-30498_2.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3083.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-3083.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-32658.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-32658.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3484.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-3484.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-36862.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-36862.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-37241.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-37241.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-40685.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-40685.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-58354.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-58354.cs)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-9917.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-9917.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/add-nl-before-namespace.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/add-nl-before-namespace.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/argtypes.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/argtypes.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/asm.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/asm.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1591.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1591.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1637.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1637.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1650.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1650.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_600.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_600.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_620.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_620.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_679.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_i_679.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_935.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_i_935.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/casting.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/casting.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/cmt_backslash_eol.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/cmt_backslash_eol.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/comma.cs1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/definesalign.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/definesalign.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delegate.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/delegate.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delete-space-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/delete-space-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/exception-filters.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/exception-filters.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/fncall_as_ctor_in_attr.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/fncall_as_ctor_in_attr.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/generics.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/generics.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/getset.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/getset.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/gs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/gs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcolalign.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/ifcolalign.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcomment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/ifcomment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/indent-multistring-coulmn1.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/indent-multistring-coulmn1.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/inttypes.h.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/inttypes.h.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/logger.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/logger.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mdarray_space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mdarray_space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/misc-failures.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/misc-failures.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_paren_if_bool.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mod_full_paren_if_bool.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/new-constraint-paren-space.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/new-constraint-paren-space.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/newlines.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/newlines.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/nullable_prop.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/nullable_prop.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/objc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/objc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/oneline_property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/oneline_property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator-null-conditional.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/operator-null-conditional.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator_null-coalescing-assignment.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/operator_null-coalescing-assignment.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/pp-ignore.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/pp-ignore.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/preserveTabs.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/preserveTabs.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/property.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/property.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/region.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/region.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/remove_semi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/remove_semi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf607.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sf607.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf628.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sf628.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/simple.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/simple.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sort_using.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using_categ.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sort_using_categ.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sp_between_new_paren.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sp_between_new_paren.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/squeeze-paren-close-Option.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/squeeze-paren-close-Option.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/string_multi.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/string_multi.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/tcf.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/tcf.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/unsafe.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/unsafe.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16be.cs)bin200 -> 200 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16be_no_bom.cs)bin198 -> 198 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16le.cs)bin200 -> 200 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le_no_bom.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16le_no_bom.cs)bin198 -> 198 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/var-member.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/var-member.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/verbatim_strings.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/verbatim_strings.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/when.cs (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/when.cs)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/1438.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/1438.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/HashMap.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/HashMap.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/Lexer.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/Lexer.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/bug-indent.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/bug-indent.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/casts.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/casts.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/const.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/const.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/d_sp_paren.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/d_sp_paren.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/delegate.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/delegate.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/enum.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/enum.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/extern_.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/extern_.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/funcfunc.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/funcfunc.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/imports.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/imports.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/invariant.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/invariant.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/numbers.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/numbers.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/sort_import.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/sort_import.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/square_indent_tab.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/square_indent_tab.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/static_if.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if_in_struct.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/static_if_in_struct.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template.d27
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_spacing001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_use.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_use.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst01.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst01.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst02.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst02.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst03.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst03.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/type_spacing000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/type_spacing000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces000.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces000.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces001.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces001.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces002.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces002.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-1.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-1.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-2.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-2.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-3.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-3.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/wysiwyg_strings.d (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/wysiwyg_strings.d)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/ecma/example-1.es (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/ecma/example-1.es)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1122.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1122.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1124.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1124.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1845.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1845.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_670.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_670.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Java8DoubleColon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Java8DoubleColon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation1.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation1.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation2.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation2.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation3.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation3.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/assert.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/assert.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/cast.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/cast.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/double_brace.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/double_brace.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/doxy-javadoc-alignment.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/doxy-javadoc-alignment.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/foreach.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/foreach.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_return_type.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics_return_type.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_wildcard.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics_wildcard.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/i1121.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/i1121.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/issue_672.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/issue_672.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/leading-tabs-for-java-lambda.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/leading-tabs-for-java-lambda.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/long_cl_cmt.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/long_cl_cmt.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/nl_before_ignore_after_case.java18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sf567.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sf567.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_angle.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_after_angle.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_for_colon.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_after_for_colon.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_before_byref.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_before_byref.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_this_paren.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_this_paren.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/synchronized.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/synchronized.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/try.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/try.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/variable_aligns.java (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/variable_aligns.java)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/1927.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/1927.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Declarations.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Declarations.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.h (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Fraction.h)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Fraction.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2172.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_2172.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2289.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_2289.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_681.oc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_681.oc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/align-objc-like-xcode.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/align-objc-like-xcode.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/attribute_specifier_seqs.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/attribute_specifier_seqs.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/available.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/available.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_in_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/block_in_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_literal_protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/block_literal_protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_pointer.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/block_pointer.cpp)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks_align2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/box.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/box.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/boxed_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/boxed_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1366.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1366.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_167.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_167.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1674.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1674.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1683.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1683.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_340.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_340.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_404.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_404.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_497.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_497.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_841.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_841.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_125-412.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_125-412.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_408.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_408.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_477.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_477.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/c-cpp-oc-wrapper.c (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/c-cpp-oc-wrapper.c)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cast.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cast.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type1.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type1.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type3.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type3.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type4.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type4.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cmt_insert.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cmt_insert2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/code_placeholder.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/code_placeholder.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/complex_method.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/complex_method.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/delete-space-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/delete-space-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double-indent-objc-dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/double-indent-objc-dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double_angle_space.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/double_angle_space.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/exceptions.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/exceptions.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/extern-c-attribute.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/extern-c-attribute.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/for.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/for2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func-param-wrap-oc.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/func-param-wrap-oc.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func_def.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/func_def.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh137.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh137.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh293.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh293.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh511.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh511.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/i1213.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/i1213.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-inside-ternary-operator.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent-inside-ternary-operator.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-objc-block.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent-objc-block.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_oc_inside_msg_sel.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_oc_inside_msg_sel.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_single_newline.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_single_newline.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2629.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2629.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2631.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2631.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2675.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2675.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2722.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2722.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2724.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2724.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2727.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2727.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_3031.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_3031.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/kw.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/kw.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/literals.mm (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/literals.mm)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/macro-close-brace.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/macro-close-brace.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/main.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/main.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/method_ends_semicolon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/method_ends_semicolon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/misc.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/misc.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/more_blocks.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks_2.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/more_blocks_2.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/msg.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg_align.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/msg_align.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/negative_value.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/negative_value.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nelem.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/nelem.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum-i.m2
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/ns_enum.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc-split.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc-split.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_cond_colon.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc_cond_colon.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_msg_in_pp.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc_msg_in_pp.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/pp_bool.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/pp_bool.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/properties.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/properties.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/protocol.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/protocol.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/react_native.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/react_native.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/real_world_file.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/real_world_file.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/return_type.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/return_type.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/selector.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/selector.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sort_import.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import_group.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sort_import_group.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_angle.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_after_angle.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_oc_msg_receiver.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_after_oc_msg_receiver.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_before_oc_proto_list.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_before_oc_proto_list.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_cond_ternary_short.m1
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_inside_braces_oc_dict.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_inside_braces_oc_dict.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_boxed.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_boxed.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_catch.m18
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_classname_paren-r.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_classname_paren-r.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_synchronized.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_synchronized.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/string.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/string.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ternary.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/ternary.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/typeof.m (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/typeof.m)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2586.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/Issue_2586.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2665.pawn3
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/comment.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/comment.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/crusty_ex-1.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/crusty_ex-1.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/enum.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/enum.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/functions.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/functions.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/gh419.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/gh419.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/preproc.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/preproc.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/rpn_calc.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/rpn_calc.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/str-escape.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/str-escape.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/switch-vsemi.sma (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/switch-vsemi.sma)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/tags.pawn63
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/test1.pawn (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/test1.pawn)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/traffic.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/traffic.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/unbraced.p (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/unbraced.p)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/issue_527.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/issue_527.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/mysql.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/mysql.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/sta-select.sqc (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/sta-select.sqc)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2090.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/Issue_2090.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2270.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/Issue_2270.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/advanced.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/advanced.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/gh287.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/gh287.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/list.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/list.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/preproc.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/preproc.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/verbatim_str.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str2.vala (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/verbatim_str2.vala)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/java.test44
-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/pawn.test25
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_format_tests.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_format_tests.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_sources_tests.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_sources_tests.py)0
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_test.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_test.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/staging.test8
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/__init__.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/__init__.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/ansicolor.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/ansicolor.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/config.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/config.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/failure.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/failure.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/selector.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/selector.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/test.py296
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/utilities.py (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/utilities.py)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/tests.vpj (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/tests.vpj)0
-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.vpj (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/uncrustify.vpj)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpw (renamed from debian/uncrustify-trinity/uncrustify-trinity-0.73.0/uncrustify.vpw)0
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity_0.73.0.orig.tar.gzbin1616213 -> 0 bytes
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity_0.74.0.orig.tar.gzbin0 -> 1565507 bytes
4602 files changed, 108363 insertions, 113172 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/AUTHORS b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/AUTHORS
deleted file mode 100644
index 4a565037..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/AUTHORS
+++ /dev/null
@@ -1,158 +0,0 @@
-Author:
-2005 - 2016 : Ben Gardner
-
-Maintenance:
-Guy Maurel
-Matthew Woehlke
-
-until 2020-11-05:
-Other collaborators:
-Alan Fineberg
-Alexander GQ Gerasiov
-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
-Biswa96
-Biswapriyo Nath
-B. Kevin Hardman
-Bogdan Popescu
-Brandon Slack
-Brendan Long
-CharlieYJH
-Chris Lalancette
-Clemens Rabe
-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
-Dženan Zukić
-Eism
-Emerson Knapp
-Emmanuel Christophe
-Ethan Gao
-Florin Pop
-Gary Ash
-Ger Hobbelt
-Hackerpilot
-Hannes Schmidt
-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
-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
-MrTheMake
-Nate
-neok-m4700
-Nico Decker
-Oleg Liatte
-Oleg Smolsky
-Owen Rudge
-Pat Notz
-Patrick Rohr
-Paul Cercueil
-Paul Smith
-Pavel Geiger
-Pawel Benetkiewicz
-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
-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 RouilleÌ
-Vyacheslav Shegai
-Waldir Pimenta
-Yannick Bühler
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CMakeLists.txt
deleted file mode 100644
index c66fb661..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CMakeLists.txt
+++ /dev/null
@@ -1,538 +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)
-
-find_package(Python3 REQUIRED)
-set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
-
-#
-# 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.73.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/parens.cpp
- src/parent_for_pp.cpp
- src/ParseFrame.cpp
- src/pcf_flags.cpp
- src/punctuators.cpp
- src/quick_align_again.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/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_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()
-
-#
-# 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.73.0/CONTRIBUTING.md b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CONTRIBUTING.md
deleted file mode 100644
index 10f62999..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CONTRIBUTING.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# Contributing to Uncrustify
-
-## How to contribute
-
-There are lots of ways to contribute to Uncrustify:
-
-- Report Issues
-
-- Propose Features or Improvements
-
-- Submit Pull Requests
-
-## Making changes
-
-* Pull latest [master][master] and create a new branch:
- - Branch name _should_ use lowercase, using `-` to separate words
- and not `_`. Other special characters _should_ be avoided.
- (However, feel free to use option names verbatim in branch names;
- `_` _should_ be used when part of an option name.)
- - A hierarchical structure _may_ be designated using `/`
- (e.g. `area/topic`), although this is uncommon.
- The last part of the name can be keywords like `bugfix`, `feature`,
- `optim`, `docs`, `refactor`, `test`, etc.
- - Branches _should_ be named after _what_ the change is about.
- - Branches _should not_ be named after the issue number,
- developer name, etc.
-
-* Organize your work:
- - Specialize your branch to target only one thing.
- Split your work in multiple branches if necessary.
- - Make commits of logical units.
- - Avoid "fix-up" commits.
- Instead, rewrite your history so that the original commit is "clean".
- - Try to write a [quality commit message][commits]:
- + Separate subject line from body with a blank line.
- + Limit subject line to 50 characters.
- + Capitalize the subject line.
- + Do not end the subject line with a period.
- + Use imperative present tense in the subject line.
- A proper subject can complete the sentence
- "If applied, this commit will, [subject]".
- + Wrap the body at 72 characters.
- + Include motivation for the change
- and contrast its implementation with previous behavior.
- Explain the _what_ and _why_ instead of _how_.
- - If the git diff command, or the diff part of the git gui,
- don't produce accurate output, it might be necessary to add
- some lines to the ~/.gitconfig file:
- [diff]
- algorithm = patience
- [gui]
- diffopts = --patience
-
-
-* Add or update unit tests:
- - All behavioral changes should come with a unit test that verifies
- that the new feature or fixed issue works as expected.
- - Consider improving existing tests if it makes sense to do so.
- - Any unused test number may be used,
- however it is preferred to keep related tests together, if possible.
- - Read [Writing Tests][tests] for more details.
-
-* Polish your work:
- - The code should be clean, with documentation where needed.
- - The change must be complete (no upcoming fix-up commits).
- - Functional changes should always be accompanied by tests (see above).
- Changes without tests should explain why tests are not present.
- (Changes that are non-functional, such as documentation changes,
- can usually omit tests without justification.)
-
-* Prepare a Pull Request (PR):
- - To reduce the likelihood of conflicts and test failures,
- consider rebasing your work on top of latest master before creating a PR.
- - Verify that your code is working properly
- by running `ctest` in your build directory.
- (Changes that fail CI will _not_ be merged.
- Running the tests locally will help to avoid this.)
- You can change the level of logging by changing the line 104 and 109
- of the file tests/test_uncrustify/test.py to another value.
- - The PR title should represent _what_ is being changed
- (a rephrasing of the branch name if set correctly).
- - The PR description should document the _why_ the change needed to be done
- and not _how_, which should be obvious by doing the code review.
- - After commiting a new PR, one may have a look to the results, running under other OS:
- https://travis-ci.com/
- Sign in
- SIGN IN WITH GITHUB
- you get a view of <your github account> / uncrustify
-
- https://coveralls.io/github/uncrustify/uncrustify
-
-
-[master]: https://github.com/uncrustify/uncrustify/tree/master
-[commits]: https://chris.beams.io/posts/git-commit/
-[tests]: https://github.com/uncrustify/uncrustify/wiki/Writing-Tests
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/ChangeLog b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/ChangeLog
deleted file mode 100644
index 1aedad53..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/ChangeLog
+++ /dev/null
@@ -1,1476 +0,0 @@
-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.73.0/README.md b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/README.md
deleted file mode 100644
index 6a3df72f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/README.md
+++ /dev/null
@@ -1,377 +0,0 @@
-[![Travis CI](http://badges.herokuapp.com/travis/uncrustify/uncrustify?style=flat-square&env=BADGE=linux&label=Linux&branch=master)](https://travis-ci.org/uncrustify/uncrustify)
-[![Travis CI](http://badges.herokuapp.com/travis/uncrustify/uncrustify?style=flat-square&env=BADGE=osx&label=OSX&branch=master)](https://travis-ci.org/uncrustify/uncrustify)
-[![AppVeyor](https://img.shields.io/appveyor/ci/uncrustify/uncrustify/master.svg?style=flat-square&label=Windows)](https://ci.appveyor.com/project/uncrustify/uncrustify)
-[![Coverity](https://scan.coverity.com/projects/8264/badge.svg)](https://scan.coverity.com/projects/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 - 753 configurable options as of version 0.73.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/uncrustify/).
-
-## 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
-```
-
-It might be usefull 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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/changelog b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/changelog
deleted file mode 100644
index 44baffc7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/changelog
+++ /dev/null
@@ -1,328 +0,0 @@
-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.73.0/debian/docs b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/docs
deleted file mode 100644
index d217a928..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/docs
+++ /dev/null
@@ -1,2 +0,0 @@
-README.md
-documentation/*
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/002_trinity_customization.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/002_trinity_customization.diff
deleted file mode 100644
index f9de3615..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/002_trinity_customization.diff
+++ /dev/null
@@ -1,230 +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 "
-@@ -232,7 +232,7 @@
- #
- # Uncrustify
- #
--set(uncrustify_sources
-+set(uncrustify-trinity_sources
- src/align_add.cpp
- src/align_asm_colon.cpp
- src/align_assign.cpp
-@@ -315,7 +315,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
-@@ -408,7 +408,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"
-@@ -417,31 +417,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)
-@@ -463,7 +463,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)
-
-@@ -471,10 +471,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}"
-@@ -486,7 +486,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")
-@@ -504,8 +504,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"
-@@ -517,17 +517,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
- ${_configs}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cli
-@@ -82,10 +82,10 @@
- COMMAND ${PYTHON_EXECUTABLE}
- test_cli_options.py
- --config $<CONFIG>
-- --build ${uncrustify_BINARY_DIR}
-+ --build ${uncrustify-trinity_BINARY_DIR}
- --apply
-- 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
-@@ -486,16 +486,16 @@
- bin_found = False
- uncr_bin = ''
- bd_dir = parsed_args.build
-- 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.73.0/debian/patches/003_allow_older_distributions.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/003_allow_older_distributions.diff
deleted file mode 100644
index 0dc9c476..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/003_allow_older_distributions.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-Index: b/CMakeLists.txt
-===================================================================
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,4 +1,4 @@
--cmake_minimum_required(VERSION 3.2)
-+cmake_minimum_required(VERSION 3.0)
-
- project(uncrustify-trinity)
-
-@@ -52,8 +52,12 @@
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
- endif()
-
--set(CMAKE_CXX_STANDARD 11)
--set(CMAKE_CXX_STANDARD_REQUIRED YES)
-+if( ${CMAKE_VERSION} VERSION_LESS "3.1" )
-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
-+else()
-+ set(CMAKE_CXX_STANDARD 11)
-+ set(CMAKE_CXX_STANDARD_REQUIRED YES)
-+endif()
-
- if(ENABLE_SANITIZER)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -fno-omit-frame-pointer -fsanitize=${ENABLE_SANITIZER}")
-@@ -140,8 +144,13 @@
- else()
- # Add target to generate version header;
- # do this every build to ensure git SHA is up to date
-+ if( ${CMAKE_VERSION} VERSION_LESS "3.2" )
-+ set( VERSION_HEADER_BYPRODUCTS "" )
-+ else()
-+ set( VERSION_HEADER_BYPRODUCTS "BYPRODUCTS" "${PROJECT_BINARY_DIR}/uncrustify_version.h" )
-+ endif()
- add_custom_target(generate_version_header
-- BYPRODUCTS "${PROJECT_BINARY_DIR}/uncrustify_version.h"
-+ ${VERSION_HEADER_BYPRODUCTS}
- COMMAND
- ${CMAKE_COMMAND}
- -D PYTHON_EXECUTABLE:STRING=${PYTHON_EXECUTABLE}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/004_fixed_usage.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/004_fixed_usage.diff
deleted file mode 100644
index d9f7cd5b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/004_fixed_usage.diff
+++ /dev/null
@@ -1,51 +0,0 @@
-Fixed usage message to match uncrustify-trinity.
---- a/src/uncrustify.cpp
-+++ b/src/uncrustify.cpp
-@@ -295,14 +295,14 @@
- " 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 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"
-+ "cat foo.d | uncrustify-trinity -q -c my.cfg -l d\n"
-+ "uncrustify-trinity -c my.cfg -f foo.d\n"
-+ "uncrustify-trinity -c my.cfg -f foo.d -L0-2,20-23,51\n"
-+ "uncrustify-trinity -c my.cfg -f foo.d -o foo.d\n"
-+ "uncrustify-trinity -c my.cfg foo.d\n"
-+ "uncrustify-trinity -c my.cfg --replace foo.d\n"
-+ "uncrustify-trinity -c my.cfg --no-backup foo.d\n"
-+ "uncrustify-trinity -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"
---- a/tests/cli/output/help.txt
-+++ b/tests/cli/output/help.txt
-@@ -60,14 +60,14 @@
- Cannot be used with the -o option'
-
- Usage Examples
--cat foo.d | uncrustify -q -c my.cfg -l d
--uncrustify -c my.cfg -f foo.d
--uncrustify -c my.cfg -f foo.d -L0-2,20-23,51
--uncrustify -c my.cfg -f foo.d -o foo.d
--uncrustify -c my.cfg foo.d
--uncrustify -c my.cfg --replace foo.d
--uncrustify -c my.cfg --no-backup foo.d
--uncrustify -c my.cfg --prefix=out -F files.txt
-+cat foo.d | uncrustify-trinity -q -c my.cfg -l d
-+uncrustify-trinity -c my.cfg -f foo.d
-+uncrustify-trinity -c my.cfg -f foo.d -L0-2,20-23,51
-+uncrustify-trinity -c my.cfg -f foo.d -o foo.d
-+uncrustify-trinity -c my.cfg foo.d
-+uncrustify-trinity -c my.cfg --replace foo.d
-+uncrustify-trinity -c my.cfg --no-backup foo.d
-+uncrustify-trinity -c my.cfg --prefix=out -F files.txt
-
- Note: Use comments containing ' *INDENT-OFF*' and ' *INDENT-ON*' to disable
- processing of parts of the source file (these can be overridden with
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/005_upstream_cb1a42dd.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/005_upstream_cb1a42dd.diff
deleted file mode 100644
index 860d75be..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/005_upstream_cb1a42dd.diff
+++ /dev/null
@@ -1,14 +0,0 @@
-Backported commit cb1a42dd from upstream git repository. This fixes FTBFS when building with RelWithDebInfo.
---- a/tests/cli/test_cli_options.py
-+++ b/tests/cli/test_cli_options.py
-@@ -705,8 +705,8 @@
- #
- # Test --tracking_space FILE
- #
-- if parsed_args.config == 'Release':
-- eprint("Release")
-+ if parsed_args.config == 'Release' or parsed_args.config == 'RelWithDebInfo':
-+ eprint(parsed_args.config)
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/006_fix_python_detection_on_older_cmake.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/006_fix_python_detection_on_older_cmake.diff
deleted file mode 100644
index 3b11610d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/006_fix_python_detection_on_older_cmake.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-Fix Python detection on CMake < 3.12.
-===================================================================
---- uncrustify-trinity-0.73.0.orig/CMakeLists.txt
-+++ uncrustify-trinity-0.73.0/CMakeLists.txt
-@@ -17,8 +17,15 @@ include(CheckCXXSymbolExists)
- include(CheckTypeSize)
- include(CTest)
-
--find_package(Python3 REQUIRED)
--set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
-+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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/series b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/series
deleted file mode 100644
index cd199706..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/series
+++ /dev/null
@@ -1,6 +0,0 @@
-001_docs-remove-remote-images.patch
-002_trinity_customization.diff
-003_allow_older_distributions.diff
-004_fixed_usage.diff
-005_upstream_cb1a42dd.diff
-006_fix_python_detection_on_older_cmake.diff
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/rules b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/rules
deleted file mode 100755
index 96f84e87..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/rules
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/make -f
-
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/class/cmake.mk
-include debian/cdbs/debian-tde.mk
-
-DEB_CMAKE_EXTRA_FLAGS := \
- -DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DCMAKE_VERBOSE_MAKEFILE="ON" \
- -DCMAKE_SKIP_RPATH="OFF" \
- -DBUILD_TESTING="ON" \
- -DUNCRUSTIFY_SEPARATE_TESTS="ON"
-
-DEB_MAKE_CHECK_TARGET = test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/ben.cfg.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/ben.cfg.txt
deleted file mode 100644
index 97229cb0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/ben.cfg.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-#
-# My favorite format
-#
-
-newlines = LF # AUTO (default), CRLF, CR, or LF
-
-indent_with_tabs = 0 # 1=indent to level only, 2=indent with tabs
-input_tab_size = 8 # original tab size
-output_tab_size = 3 # new tab size
-indent_columns = output_tab_size
-# indent_label = 0 # pos: absolute col, neg: relative column
-indent_align_string = False # align broken strings
-indent_brace = 0
-indent_class = true
-
-nl_start_of_file = remove
-# nl_start_of_file_min = 0
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_max = 4
-nl_before_block_comment = 2
-nl_after_func_body = 2
-nl_after_func_proto_group = 2
-
-nl_assign_brace = add # "= {" vs "= \n {"
-nl_enum_brace = add # "enum {" vs "enum \n {"
-nl_union_brace = add # "union {" vs "union \n {"
-nl_struct_brace = add # "struct {" vs "struct \n {"
-nl_do_brace = add # "do {" vs "do \n {"
-nl_if_brace = add # "if () {" vs "if () \n {"
-nl_for_brace = add # "for () {" vs "for () \n {"
-nl_else_brace = add # "else {" vs "else \n {"
-nl_while_brace = add # "while () {" vs "while () \n {"
-nl_switch_brace = add # "switch () {" vs "switch () \n {"
-nl_func_var_def_blk = 1
-nl_before_case = 1
-nl_fcall_brace = add # "foo() {" vs "foo()\n{"
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-nl_after_return = TRUE
-nl_brace_while = remove
-nl_brace_else = add
-nl_squeeze_ifdef = TRUE
-
-pos_bool = trail # BOOL ops on trailing end
-
-eat_blanks_before_close_brace = TRUE
-eat_blanks_after_open_brace = TRUE
-
-
-mod_paren_on_return = add # "return 1;" vs "return (1);"
-mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
-mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
-mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
-mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
-
-sp_before_byref = remove
-sp_before_semi = remove
-sp_paren_paren = remove # space between (( and ))
-sp_return_paren = remove # "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_inside_paren = remove
-sp_inside_fparen = remove
-sp_inside_sparen = remove
-sp_inside_square = remove
-#sp_type_func = ignore
-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();"
-sp_func_class_paren = remove
-sp_before_angle = force
-sp_after_angle = force
-sp_inside_angle = remove
-sp_sparen_brace = add
-sp_fparen_brace = add
-sp_after_ptr_star = remove
-sp_before_ptr_star = force
-sp_between_ptr_star = remove
-
-align_with_tabs = FALSE # use tabs to align
-align_on_tabstop = FALSE # align on tabstops
-align_enum_equ_span = 4
-align_nl_cont = TRUE
-align_var_def_span = 1
-align_var_def_thresh = 12
-align_var_def_inline = TRUE
-align_var_def_star = TRUE
-align_var_def_colon = TRUE
-align_assign_span = 1
-align_assign_thresh = 12
-align_struct_init_span = 3
-align_var_struct_span = 99
-align_right_cmt_span = 3
-align_pp_define_span = 3
-align_pp_define_gap = 4
-align_number_right = TRUE
-align_typedef_span = 5
-align_typedef_gap = 3
-
-cmt_star_cont = TRUE
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/config.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/config.txt
deleted file mode 100644
index e87d42ad..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/config.txt
+++ /dev/null
@@ -1,3214 +0,0 @@
-# Uncrustify-0.73.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 '*'.
-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 '*', 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 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.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = 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 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 part of a for statement.
-sp_before_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 ','.
-#
-# 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 before the variadic '...' when preceded by a
-# non-punctuator.
-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
-
-# (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 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 ':'.
-sp_after_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-sp_before_constr_colon = ignore # 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 '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.
-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.
-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.
-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 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 or embedded comment.
-sp_before_tr_emb_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing or embedded comment.
-sp_num_before_tr_emb_cmt = 0 # 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 member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 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_sing_line_comments = 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 wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 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 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 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
-
-# How to indent goto labels.
-#
-# >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 after '{'. This also adds a newline before the
-# matching '}'.
-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
-
-# 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.
-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 unbraced if statements 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 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
-
-# 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 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
-
-# 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 '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_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.73.0/documentation/htdocs/default.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/default.cfg
deleted file mode 100644
index e87d42ad..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/default.cfg
+++ /dev/null
@@ -1,3214 +0,0 @@
-# Uncrustify-0.73.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 '*'.
-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 '*', 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 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.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = 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 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 part of a for statement.
-sp_before_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 ','.
-#
-# 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 before the variadic '...' when preceded by a
-# non-punctuator.
-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
-
-# (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 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 ':'.
-sp_after_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-sp_before_constr_colon = ignore # 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 '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.
-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.
-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.
-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 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 or embedded comment.
-sp_before_tr_emb_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing or embedded comment.
-sp_num_before_tr_emb_cmt = 0 # 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 member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 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_sing_line_comments = 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 wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 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 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 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
-
-# How to indent goto labels.
-#
-# >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 after '{'. This also adds a newline before the
-# matching '}'.
-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
-
-# 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.
-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 unbraced if statements 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 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
-
-# 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 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
-
-# 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 '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_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.73.0/documentation/htdocs/index.html b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/index.html
deleted file mode 100644
index f1e82751..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/index.html
+++ /dev/null
@@ -1,186 +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 - 753 configurable options as of version 0.73.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>
-
-SPARC/Solaris 2.5-10 and x86/Solaris 8-10 :
-<a href="http://sunfreeware.com/">sunfreeware.com</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.73.0/documentation/htdocs/options_Indenting.html b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Indenting.html
deleted file mode 100644
index 132628da..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Indenting.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
- <title>Uncrustify: where do the Indenting 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>Indenting</h2>
-<p>
-</p>
-<table border="1">
-<tr>
-<td>
-<pre><a name="indent_with_tabs"></a><a name="indent_cmt_with_tabs"></a>
-// indent_with_tabs = 0 spaces only
-// indent_cmt_with_tabs = false
-int foo::bar()
-{<a name="indent_columns"></a>
- int a;
-<a title="indent_columns"><strong><font color="red">████</font></strong></a><a name="indent_continue"></a><a name="use_indent_continue_only_once"></a>
- double a_very_long_variable = test (foobar1,
- foobar5);
- <a title="indent_continue, use_indent_continue_only_once"><strong><font color="red">████</font></strong></a>
-}
-</pre>
-</td>
-</tr>
-<tr>
-<td>
-<pre>
-class Test
-{<a name="indent_access_spec"></a>
- private:
-<a title="indent_access_spec"><strong><font color="red">â–ˆ</font></strong></a>
- int a;
-}
-</pre>
-</td>
-</tr>
-</table>
-<p></p>
-<h1>Register</h1>
-<table>
- <tr>
- <td><a href="#indent_columns">indent_columns</a></td>
- <td><a href="#indent_continue">indent_continue</a></td>
- <td><a href="#indent_with_tabs">indent_with_tabs</a></td>
- <td><a href="#indent_cmt_with_tabs">indent_cmt_with_tabs</a></td>
- <td><a href="#indent_align_string">indent_align_string</a></td>
- <td><a href="#indent_xml_string">indent_xml_string</a></td>
- <td><a href="#indent_brace">indent_brace</a></td>
- <td><a href="#indent_braces">indent_braces</a></td>
- <td><a href="#indent_braces_no_func">indent_braces_no_func</a></td>
- <td><a href="#indent_braces_no_class">indent_braces_no_class</a></td>
- <td><a href="#indent_braces_no_struct">indent_braces_no_struct</a></td>
- <td><a href="#indent_brace_parent">indent_brace_parent</a></td>
- <td><a href="#indent_paren_open_brace">indent_paren_open_brace</a></td>
- <td><a href="#indent_namespace">indent_namespace</a></td>
- <td><a href="#indent_namespace_single_indent">indent_namespace_single_indent</a></td>
- <td><a href="#indent_namespace_level">indent_namespace_level</a></td>
- <td><a href="#indent_namespace_limit">indent_namespace_limit</a></td>
- <td><a href="#indent_extern">indent_extern</a></td>
- <td><a href="#indent_class">indent_class</a></td>
- <td><a href="#indent_class_colon">indent_class_colon</a></td>
- <td><a href="#indent_class_on_colon">indent_class_on_colon</a></td>
- <td><a href="#indent_constr_colon">indent_constr_colon</a></td>
- <td><a href="#indent_ctor_init_leading">indent_ctor_init_leading</a></td>
- <td><a href="#indent_ctor_init">indent_ctor_init</a></td>
- <td><a href="#indent_else_if">indent_else_if</a></td>
- <td><a href="#indent_var_def_blk">indent_var_def_blk</a></td>
- <td><a href="#indent_var_def_cont">indent_var_def_cont</a></td>
- <td><a href="#indent_shift">indent_shift</a></td>
- <td><a href="#indent_func_def_force_col1">indent_func_def_force_col1</a></td>
- <td><a href="#indent_func_call_param">indent_func_call_param</a></td>
- <td><a href="#indent_func_def_param">indent_func_def_param</a></td>
- <td><a href="#indent_func_proto_param">indent_func_proto_param</a></td>
- <td><a href="#indent_func_class_param">indent_func_class_param</a></td>
- <td><a href="#indent_func_ctor_var_param">indent_func_ctor_var_param</a></td>
- <td><a href="#indent_template_param">indent_template_param</a></td>
- <td><a href="#indent_func_param_double">indent_func_param_double</a></td>
- <td><a href="#indent_func_const">indent_func_const</a></td>
- <td><a href="#indent_func_throw">indent_func_throw</a></td>
- <td><a href="#indent_member">indent_member</a></td>
- <td><a href="#indent_sing_line_comments">indent_sing_line_comments</a></td>
- <td><a href="#indent_relative_single_line_comments">indent_relative_single_line_comments</a></td>
- <td><a href="#indent_switch_case">indent_switch_case</a></td>
- <td><a href="#indent_case_shift">indent_case_shift</a></td>
- <td><a href="#indent_case_brace">indent_case_brace</a></td>
- <td><a href="#indent_col1_comment">indent_col1_comment</a></td>
- <td><a href="#indent_label">indent_label</a></td>
- <td><a href="#indent_access_spec">indent_access_spec</a></td>
- <td><a href="#indent_access_spec_body">indent_access_spec_body</a></td>
- <td><a href="#indent_paren_nl">indent_paren_nl</a></td>
- <td><a href="#indent_paren_close">indent_paren_close</a></td>
- <td><a href="#indent_comma_paren">indent_comma_paren</a></td>
- <td><a href="#indent_bool_paren">indent_bool_paren</a></td>
- <td><a href="#indent_first_bool_expr">indent_first_bool_expr</a></td>
- <td><a href="#indent_square_nl">indent_square_nl</a></td>
- <td><a href="#indent_preserve_sql">indent_preserve_sql</a></td>
- <td><a href="#indent_align_assign">indent_align_assign</a></td>
- <td><a href="#indent_off_after_assign">indent_off_after_assign</a></td>
-
- <td><a href="#indent_min_vbrace_open">indent_min_vbrace_open</a></td>
- <td><a href="#indent_vbrace_open_on_tabstop">indent_vbrace_open_on_tabstop</a></td>
- <td><a href="#use_indent_continue_only_once">use_indent_continue_only_once</a></td>
- </tr>
- <tr>
- </tr>
-</table>
-
-<h2>not yet shown</h2>
-
-<h2>only for Pawn</h2>
-
-<h2>only for Java</h2>
-
-<h2>only for objective C</h2>
-indent_oc_msg_colon<br>
-indent_oc_msg_prioritize_first_colon<br>
-indent_oc_block_msg_xcode_style<br>
-indent_oc_block_msg_from_keyword<br>
-indent_oc_block_msg_from_colon<br>
-indent_oc_block_msg_from_caret<br>
-indent_oc_block_msg_from_brace<br>
-indent_oc_inside_msg_sel<br>
-
-</body>
-</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_For.html b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_For.html
deleted file mode 100644
index 3aa455f9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_For.html
+++ /dev/null
@@ -1,33 +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>
-<h2>Spaces for for loop</h2>
-<p>
-</p>
-<table border="1", width="100%">
-<tr>
-<td>
-<pre>
-{
- for (i = 0<a title="sp_before_semi_for"><font color="red">â–ˆ</font></a>;<a title="sp_after_semi_for"><font color="red">â–ˆ</font></a>i < 10<a title="sp_before_semi_for"><font color="red">â–ˆ</font></a>;<a title="sp_after_semi_for"><font color="red">â–ˆ</font></a>i++<a title="sp_after_semi"><font color="red">â–ˆ</font></a>)
- {
- b = i + 1;
- }
-
- for (<a title="sp_before_semi_for_empty"><font color="red">â–ˆ</font></a>;<a title="sp_before_semi_for_empty"><font color="red">â–ˆ</font></a>;<a title="sp_after_semi_for_empty"><font color="red">â–ˆ</font></a>)
- {
- b = b + 1;
- }
- for(auto x<a title="sp_before_for_colon"><font color="red">â–ˆ</font></a>:<a title="sp_after_for_colon"><font color="red">â–ˆ</font></a>std::as_const(str)) {}
-}
-</pre>
-</td>
-</tr>
-</table>
-</body>
-</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Spaces.html b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Spaces.html
deleted file mode 100644
index a142b00f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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_tr_emb_cmt"><strong><font color="red"> â–ˆ</a><a title="sp_num_before_tr_emb_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.73.0/etc/amxmodx.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/amxmodx.cfg
deleted file mode 100644
index 7e435971..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/amxmodx.cfg
+++ /dev/null
@@ -1,207 +0,0 @@
-#
-# AMX Mod X style for Pawn (or as close as possible)
-#
-
-#######################
-# Basic Indenting Stuff
-
-# (a/i/r) comment notation for add/ignore/remove which is the actual setting
-input_tab_size = 1 # tab size on input file: usually 8
-output_tab_size = 8 # tab size for output: usually 8
-indent_columns = 8 # ie 3 or 8
-indent_with_tabs = 2 # 1=only to the 'level' indent, 2=use tab indenting
-#indent_paren_nl = 1 # indent-align under paren for open followed by nl
-
-pp_indent = remove # indent preproc 1 space per level (a/i/r)
-pp_space = remove # spaces between # and word (add/ignore/remove)
-
-#indent_switch_case = 1 # spaces to indent case from switch
-#indent_case_brace = 0 # spaces to indent '{' from case
- # (usually 0 or indent_columns)
-
-#indent_brace = 0 # spaces to indent '{' from level (usually 0)
-indent_braces = 0 # whether to indent the braces or not
-#indent_label = 0 # 0=left >0=col from left (absolute column),
- # <0=sub from brace indent (relative column)
-
-indent_align_string = false # True/False - indent align broken strings
-indent_col1_comment = false # indent comments in column 1
-indent_func_call_param = false # indent continued function calls to indent_columns otherwise index_columns + spaces to align with open paren.
-
-indent_namespace = true # indent stuff inside namespace braces
-indent_class = true # indent stuff inside class braces
-
-
-############################
-# Misc Inter-element Spacing
-# Force,Ignore,Add,Remove
-
-# ignored by nl_*_brace = true
-sp_paren_brace = force # space between ')' and '{'
-sp_fparen_brace = force # space between ')' and '{' of function
-sp_sparen_brace = force # space between ')' and '{' of if, while, etc
-
-sp_after_cast = force # space after cast - "(int) a" vs "(int)a"
-
-sp_before_byref = force # space before '&' of 'fcn(int& idx)'
-
-sp_inside_fparen = force # space inside 'foo( xxx )' vs 'foo(xxx)'
-sp_inside_fparens = remove # space inside 'foo( )' vs 'foo()'
-sp_inside_paren = remove # space inside '+ ( xxx )' vs '+ (xxx)'
-sp_inside_square = remove # space inside 'byte[ 5 ]' vs 'byte[5]'
-sp_inside_sparen = force # space inside 'if( xxx )' vs 'if(xxx)'
-sp_inside_angle = ignore # space inside '<>', as in '<class T>'
-
-sp_before_sparen = force # space before '(' of 'if/for/while/switch'
-sp_after_sparen = force # space after ')' of 'if/for/while/switch'
- # the do-while does not get set here
-
-sp_before_angle = ignore # space before '<>', as in '<class T>'
-sp_after_angle = ignore # space after '<>', as in '<class T>'
-
-sp_before_square = ignore # space before single '['
-sp_before_squares = remove # space before '[]', as in 'byte []'
-
-sp_paren_paren = force # space between nested parens - '( (' vs '(('
-
-sp_return_paren = remove # space between 'return' and '('
-sp_sizeof_paren = remove # space between 'sizeof' and '('
-
-sp_after_comma = force # space after ','
-
-sp_arith = force # space around + - / * etc
-sp_bool = force # space around || &&
-sp_compare = force # space around < > ==, etc
-sp_assign = force # space around =, +=, etc
-
-sp_func_def_paren = remove # space between 'func' and '(' - "foo (" vs "foo("
-sp_func_call_paren = remove # space between 'func' and '(' - "foo (" vs "foo("
-sp_func_proto_paren = remove # space between 'func' and '(' - "foo (" vs "foo("
-sp_func_class_paren = remove # space between ctor/dtor and '('
-
-#sp_type_func = 1 # space between return type and 'func'
- # a minimum of 1 is forced except for '*'
-
-
-sp_special_semi = remove # space empty stmt ';' on while, if, for
- # example "while (*p++ = ' ') ;"
-sp_before_semi = remove # space before all ';'
-sp_inside_braces = force # space inside '{' and '}' - "{ 1, 2, 3 }"
-sp_inside_braces_enum = force # space inside enum '{' and '}' - "{ a, b, c }"
-sp_inside_braces_struct = force # space inside struct/union '{' and '}'
-
-sp_macro = force # space between macro and value, ie '#define a 6'
-sp_macro_func = force # space between macro and value, ie '#define a 6'
-
-sp_square_fparen = remove # weird pawn stuff: native yark[rect](a[rect])
-sp_after_tag = remove # pawn: space after a tag colon
-
-
-################################
-# Code Alignment
-# (not left column spaces/tabs)
-
-align_with_tabs = true # use tabs for aligning (0/1)
-align_keep_tabs = false # keep non-indenting tabs
-align_on_tabstop = true # always align on tabstops
-align_nl_cont = false # align the back-slash \n combo (macros)
-align_enum_equ_span = 1 # align the '=' in enums
-align_assign_span = 1 # align on '='. 0=don't align
-align_assign_thresh = 0 # threshold for aligning on '='. 0=no limit
-align_right_cmt_span = 8 # align comment that end lines. 0=don't align
-align_var_def_span = 1 # align variable defs on variable (span for regular stuff)
-align_var_def_thresh = 0 # align variable defs threshold
-align_var_def_inline = true # also align inline struct/enum/union var defs
-align_var_def_star_style = 1 # the star is part of the variable name
-align_var_def_colon = false # align the colon in struct bit fields
-align_var_struct_span = 1 # span for struct/union (0=don't align)
-align_pp_define_span = 1 # align bodies in #define statements
-align_pp_define_gap = 1 # min space between define label and value "#define a <---> 16"
-
-align_struct_init_span = 1 # align structure initializer values
-align_func_proto_span = 1 # align function prototypes
-align_number_right = false # right-align numbers (not fully supported, yet)
-align_typedef_span = 1 # align single-line typedefs
-align_typedef_gap = 1 # minimum spacing
-align_typedef_star_style = 1 # Start aligning style
- # 0: '*' not part of type
- # 1: '*' part of the type - no space
- # 2: '*' part of type, dangling
-
-
-#####################################
-# Newline Adding and Removing Options
-# Add/Remove/Ignore
-
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-nl_func_decl_start = ignore # newline after the '(' in a function decl
-nl_func_decl_args = ignore # newline after each ',' in a function decl
-nl_func_decl_end = ignore # newline before the ')' in a function decl
-nl_func_type_name = ignore # newline between return type and func name in def
-nl_func_var_def_blk = 0 # newline after a block of variable defs
-nl_before_case = false # newline before 'case' statement
-nl_after_return = false # newline after return statement
-nl_after_case = false # disallow nested "case 1: a=3;"
-nl_fcall_brace = add # newline between function call and open brace
-nl_squeeze_ifdef = false # no blanks after #ifxx, #elxx, or before #endif TRUE/F
-nl_enum_brace = ignore # nl between enum and brace
-nl_struct_brace = ignore # nl between struct and brace
-nl_union_brace = ignore # nl between union and brace
-nl_assign_brace = ignore # nl between '=' and brace
-nl_class_brace = ignore # nl between class name and brace
-nl_namespace_brace = ignore # nl between namespace name and brace
-
-nl_do_brace = add # nl between do and {
-nl_if_brace = add # nl between if and {
-nl_for_brace = add # nl between for and {
-nl_else_brace = remove # nl between else and {
-nl_while_brace = add # nl between while and {
-nl_switch_brace = add # nl between switch and {
-nl_brace_else = remove # nl between } and else
-nl_brace_while = add # nl between } and while of do stmt
-
-nl_elseif_brace = add # nl between close paren and open brace in 'else if () {'
-
-nl_define_macro = 0 # alter newlines in #define macros
-nl_start_of_file = ignore # alter newlines at the start of file
-nl_start_of_file_min = 0 # min number of newlines at the start of the file
-nl_end_of_file = ignore # alter newlines at the end of file
-nl_end_of_file_min = 0 # min number of newlines at the end of the file
-
-pos_bool = start # end=move &&/|| to EOL ignore=gnore, start=move to SOL
-
-#####################
-# Blank Line Options
-
-nl_before_block_comment = 3 # before a block comment (stand-alone
- # comment-multi), except after brace open
-nl_after_func_body = 3 # after the closing brace of a function body
-nl_after_func_proto = 3 # after each prototype
-nl_after_func_proto_group = 3 # after a block of prototypes
-nl_max = 3 # maximum consecutive newlines (3=2 lines)
-
-eat_blanks_after_open_brace = true # remove blank lines after {
-eat_blanks_before_close_brace = true # remove blank lines before }
-
-########################
-# Code Modifying Options
-# (non-whitespace)
-
-mod_paren_on_return = force # add or remove paren on return
-mod_full_brace_nl = 1 # max number of newlines to span w/o braces
-mod_full_brace_if = ignore # add or remove braces on if
-mod_full_brace_for = ignore # add or remove braces on for
-mod_full_brace_do = ignore # add or remove braces on do
-mod_full_brace_while = ignore # add or remove braces on while
-mod_pawn_semicolon = True # add optional semicolons
-mod_full_brace_function = add # add optional braces on Pawn functions
-
-
-#######################
-# Comment Modifications
-
-cmt_star_cont = true # put a star on subsequent comment lines
-cmt_cpp_to_c = true # convert CPP comments to C comments
-cmt_cpp_group = true # if UO_cmt_cpp_to_c, try to group in one big C comment
-cmt_cpp_nl_start = true # put a blank /* at the start of a converted group
-cmt_cpp_nl_end = true # put a nl before the */ in a converted group
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/ben.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/ben.cfg
deleted file mode 100644
index aeb4ba0b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/ben.cfg
+++ /dev/null
@@ -1,1200 +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_sing_line_comments = 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 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 part of a for statement.
-sp_before_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 or embedded comment
-sp_num_before_tr_emb_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.
-# This also adds a newline before the matching brace close.
-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.73.0/etc/ben2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/ben2.cfg
deleted file mode 100644
index 36831d5c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/ben2.cfg
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# My favorite format
-#
-
-indent_with_tabs = 0 # 1=indent with tabs, 2=indent to level only
-input_tab_size = 8 # original tab size
-output_tab_size = 3 # new tab size
-indent_columns = output_tab_size
-indent_label = 2 # pos: absolute col, neg: relative column
-indent_align_string = False # align broken strings
-indent_brace = 0
-
-nl_enum_brace = add # "enum {" vs "enum \n {"
-nl_union_brace = add # "union {" vs "union \n {"
-nl_struct_brace = add # "struct {" vs "struct \n {"
-nl_do_brace = add # "do {" vs "do \n {"
-nl_if_brace = add # "if () {" vs "if () \n {"
-nl_for_brace = add # "for () {" vs "for () \n {"
-nl_else_brace = add # "else {" vs "else \n {"
-nl_while_brace = add # "while () {" vs "while () \n {"
-nl_switch_brace = add # "switch () {" vs "switch () \n {"
-nl_func_var_def_blk = 1
-nl_before_case = 1
-nl_fcall_brace = add # "foo() {" vs "foo()\n{"
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-nl_after_return = TRUE
-nl_brace_while = remove
-nl_brace_else = add
-nl_squeeze_ifdef = TRUE
-
-# mod_paren_on_return = add # "return 1;" vs "return (1);"
-# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
-# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
-# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
-# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
-
-sp_before_semi = remove
-sp_paren_paren = remove # space between (( and ))
-sp_return_paren = remove # "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_inside_paren = remove
-sp_inside_fparen = remove
-sp_inside_sparen = remove
-#sp_type_func = ignore
-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();"
-
-align_with_tabs = FALSE # use tabs to align
-align_on_tabstop = FALSE # align on tabstops
-align_enum_equ_span = 4
-align_nl_cont = TRUE
-align_var_def_span = 2
-align_var_def_inline = TRUE
-align_var_def_star_style = 1
-align_var_def_colon = TRUE
-align_assign_span = 1
-align_struct_init_span = 3
-align_var_struct_span = 3
-align_right_cmt_span = 3
-align_pp_define_span = 3
-align_pp_define_gap = 4
-align_number_right = TRUE
-align_typedef_span = 5
-align_typedef_gap = 3
-
-cmt_star_cont = TRUE
-
-eat_blanks_before_close_brace = TRUE
-eat_blanks_after_open_brace = TRUE
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/d.cfg
deleted file mode 100644
index 22690c47..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/d.cfg
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# My favorite format
-#
-
-indent_with_tabs = 0 # 1=indent to level only, 2=indent with tabs
-input_tab_size = 8 # original tab size
-output_tab_size = 4 # new tab size
-indent_columns = output_tab_size
-indent_label = 2 # pos: absolute col, neg: relative column
-indent_align_string = False # align broken strings
-indent_brace = 0
-
-nl_enum_brace = add # "enum {" vs "enum \n {"
-nl_union_brace = add # "union {" vs "union \n {"
-nl_struct_brace = add # "struct {" vs "struct \n {"
-nl_do_brace = add # "do {" vs "do \n {"
-nl_if_brace = add # "if () {" vs "if () \n {"
-nl_for_brace = add # "for () {" vs "for () \n {"
-nl_else_brace = add # "else {" vs "else \n {"
-nl_while_brace = add # "while () {" vs "while () \n {"
-nl_switch_brace = add # "switch () {" vs "switch () \n {"
-# nl_func_var_def_blk = 1
-# nl_before_case = 1
-nl_fcall_brace = add # "foo() {" vs "foo()\n{"
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-# nl_after_return = TRUE
-nl_brace_while = remove
-nl_brace_else = add
-nl_squeeze_ifdef = TRUE
-
-# mod_paren_on_return = add # "return 1;" vs "return (1);"
-# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
-# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
-# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
-# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
-
-sp_before_semi = remove
-sp_paren_paren = remove # space between (( and ))
-sp_return_paren = remove # "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 = add # "(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_inside_paren = remove
-sp_inside_fparen = remove
-sp_inside_sparen = remove
-#sp_type_func = ignore
-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();"
-
-align_with_tabs = FALSE # use tabs to align
-align_on_tabstop = FALSE # align on tabstops
-align_enum_equ_span = 4
-align_nl_cont = TRUE
-align_var_def_span = 2
-align_var_def_inline = TRUE
-align_var_def_star_style = 1
-align_var_def_colon = TRUE
-align_assign_span = 1
-align_struct_init_span = 3
-align_var_struct_span = 3
-align_right_cmt_span = 3
-align_pp_define_span = 3
-align_pp_define_gap = 4
-align_number_right = TRUE
-align_typedef_span = 5
-align_typedef_gap = 3
-
-# cmt_star_cont = TRUE
-
-eat_blanks_before_close_brace = TRUE
-eat_blanks_after_open_brace = TRUE
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/defaults.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/defaults.cfg
deleted file mode 100644
index e87d42ad..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/defaults.cfg
+++ /dev/null
@@ -1,3214 +0,0 @@
-# Uncrustify-0.73.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 '*'.
-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 '*', 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 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.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = 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 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 part of a for statement.
-sp_before_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 ','.
-#
-# 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 before the variadic '...' when preceded by a
-# non-punctuator.
-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
-
-# (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 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 ':'.
-sp_after_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-sp_before_constr_colon = ignore # 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 '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.
-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.
-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.
-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 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 or embedded comment.
-sp_before_tr_emb_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing or embedded comment.
-sp_num_before_tr_emb_cmt = 0 # 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 member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 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_sing_line_comments = 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 wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 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 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 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
-
-# How to indent goto labels.
-#
-# >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 after '{'. This also adds a newline before the
-# matching '}'.
-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
-
-# 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.
-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 unbraced if statements 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 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
-
-# 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 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
-
-# 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 '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_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.73.0/etc/freebsd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/freebsd.cfg
deleted file mode 100644
index ec5e2c96..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/freebsd.cfg
+++ /dev/null
@@ -1,382 +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_sing_line_comments = 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_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_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.73.0/etc/gnu-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/gnu-indent.cfg
deleted file mode 100644
index d4e8efea..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/gnu-indent.cfg
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-# GNU format (sorta)
-#
-
-indent_with_tabs = 0 # 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 = 2
-# indent_label = 2 # pos: absolute col, neg: relative column
-indent_align_string = False # align broken strings
-indent_brace = 2
-
-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 = add # "do {" vs "do \n {"
-nl_if_brace = add # "if () {" vs "if () \n {"
-nl_for_brace = add # "for () {" vs "for () \n {"
-nl_else_brace = add # "else {" vs "else \n {"
-nl_while_brace = add # "while () {" vs "while () \n {"
-nl_switch_brace = add # "switch () {" vs "switch () \n {"
-nl_func_var_def_blk = 1
-nl_before_case = 1
-nl_fcall_brace = add # "foo() {" vs "foo()\n{"
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-# nl_after_return = TRUE
-nl_brace_while = remove
-nl_brace_else = add
-nl_squeeze_ifdef = TRUE
-
-# mod_paren_on_return = ignore # "return 1;" vs "return (1);"
-# mod_full_brace_if = ignore # "if (a) a--;" vs "if (a) { a--; }"
-# mod_full_brace_for = ignore # "for () a--;" vs "for () { a--; }"
-# mod_full_brace_do = ignore # "do a--; while ();" vs "do { a--; } while ();"
-# mod_full_brace_while = ignore # "while (a) a--;" vs "while (a) { a--; }"
-
-sp_before_semi = remove
-sp_paren_paren = remove # space between (( and ))
-sp_return_paren = remove # "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_inside_paren = remove
-sp_inside_fparen = remove
-sp_inside_sparen = remove
-#sp_type_func = ignore
-sp_assign = force
-sp_arith = force
-sp_bool = force
-sp_compare = 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();"
-
-# align_with_tabs = FALSE # use tabs to align
-# align_on_tabstop = FALSE # align on tabstops
-# align_enum_equ_span = 4
-# align_nl_cont = TRUE
-# align_var_def_span = 2
-# align_var_def_inline = TRUE
-# align_var_def_star = TRUE
-# align_var_def_colon = TRUE
-# align_assign_span = 1
-# align_struct_init_span = 3
-# align_var_struct_span = 3
-# align_right_cmt_span = 3
-# align_pp_define_span = 3
-# align_pp_define_gap = 4
-# align_number_right = TRUE
-# align_typedef_span = 5
-# align_typedef_gap = 3
-
-# cmt_star_cont = TRUE
-
-eat_blanks_before_close_brace = TRUE
-eat_blanks_after_open_brace = TRUE
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/klaus.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/klaus.cfg
deleted file mode 100644
index 97857198..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/klaus.cfg
+++ /dev/null
@@ -1,501 +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 (\). (Pawn)
-string_escape_char = 92 # number
-
-#
-# Indenting
-#
-
-# The number of columns to indent per level (usually 2, 3, 4, or 8)
-indent_columns = 3 # number
-
-# How to use tabs when indenting code
-# 0=spaces only
-# 1=indent with tabs, align with spaces
-# 2=indent and align with tabs
-indent_with_tabs = 0 # number
-
-# Whether to indent strings broken by '\' so that they line up
-indent_align_string = false # false/true
-
-# Spaces to indent '{' from level
-indent_brace = 0 # number
-
-# Whether braces are indented to the body level
-indent_braces = false # false/true
-
-# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = true # false/true
-
-# Whether the 'namespace' body is indented
-indent_namespace = false # false/true
-
-# Whether the 'class' body is indented
-indent_class = true # false/true
-
-# Whether to indent the stuff after a leading class colon
-indent_class_colon = false # false/true
-
-# Whether to indent continued function call parameters one indent level (true) or aligns instead of indent (false)
-indent_func_call_param = false # false/true
-
-# The number of spaces to indent a continued '->' or '.'
-# Usually set to indent_columns.
-indent_member = 3 # number
-
-# Spaces to indent 'case' from 'switch'
-indent_switch_case = 0 # number
-
-# Spaces to indent '{' from 'case'
-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 = 1 # number
-
-# 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
-
-# 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
-
-#
-# Spacing options
-#
-
-# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
-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 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
-sp_paren_paren = remove # ignore/add/remove/force
-
-# Add or remove space between ')' and '{'
-sp_paren_brace = ignore # ignore/add/remove/force
-
-# 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 '*'
-sp_after_ptr_star = remove # ignore/add/remove/force
-
-# Add or remove space before reference sign '&'
-sp_before_byref = remove # ignore/add/remove/force
-
-# Add or remove space after reference sign '&'
-sp_after_byref = ignore # ignore/add/remove/force
-
-# Add or remove space before '<>'
-sp_before_angle = force # ignore/add/remove/force
-
-# Add or remove space after '<>'
-sp_after_angle = force # ignore/add/remove/force
-
-# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
-sp_before_sparen = remove # ignore/add/remove/force
-
-# Add or remove space inside if-condition '(' and ')'
-sp_inside_sparen = remove # ignore/add/remove/force
-
-# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
-sp_after_sparen = remove # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
-sp_sparen_brace = remove # ignore/add/remove/force
-
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
-sp_special_semi = ignore # ignore/add/remove/force
-
-# Add or remove space before ';'
-sp_before_semi = remove # ignore/add/remove/force
-
-# Add or remove space before '[' (except '[]')
-sp_before_square = ignore # ignore/add/remove/force
-
-# Add or remove space before '[]'
-sp_before_squares = ignore # ignore/add/remove/force
-
-# Add or remove space inside '[' 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 between 'operator' and operator sign
-sp_after_operator = ignore # ignore/add/remove/force
-
-# Add or remove space after cast
-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 after the tag keyword (Pawn)
-sp_after_tag = ignore # 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 '<' and '>'
-sp_inside_angle = 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 = ignore # 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 = ignore # 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 '(' when part of a function call.
-sp_square_fparen = ignore # 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 macro and value
-sp_macro = ignore # ignore/add/remove/force
-
-# Add or remove space between macro function ')' and value
-sp_macro_func = ignore # ignore/add/remove/force
-
-# Add or remove space between 'else' and '{' if on the same line
-sp_else_brace = remove # ignore/add/remove/force
-
-# Add or remove space between '}' and 'else' if on the same line
-sp_brace_else = 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 alinging
-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
-
-# The span for aligning variable definitions (0=don't align)
-align_var_def_span = 1 # number
-
-# Whether the pointer star is part of the variable name or not
-align_var_def_star_style = 1
-
-# The threshold for aligning variable definitions (0=no limit)
-align_var_def_thresh = 12 # number
-
-# Whether to align the colon in struct bit fields
-align_var_def_colon = true # 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 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
-
-# Controls the positioning of the '*' in typedefs. Just try it.
-# 0: Align on typdef type, ignore '*'
-# 1: The '*' is part of type name: typedef int *pint;
-# 2: The '*' is part of the type: typedef int * pint;
-align_typedef_star_style = 0 # number
-
-# The span for aligning comments that end lines (0=don't align)
-align_right_cmt_span = 3 # number
-
-# The span for aligning function prototypes (0=don't align)
-align_func_proto_span = 0 # number
-
-# Whether to align macros wrapped with a backslash and a newline
-align_nl_cont = true # 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)
-align_pp_define_span = 3 # number
-
-#
-# Newline adding and removing options
-#
-
-# Try to limit code width to N number of columns
-code_width = 0 # number
-
-# Whether to collapse empty blocks between '{' and '}'
-nl_collapse_empty_body = 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 newlines after a block of variable definitions
-nl_func_var_def_blk = 1 # number
-
-# Add or remove newline between function call and '('
-nl_fcall_brace = add # ignore/add/remove/force
-
-# Add or remove newline between 'enum' and '{'
-nl_enum_brace = add # ignore/add/remove/force
-
-# Add or remove newline between 'struct and '{'
-nl_struct_brace = add # ignore/add/remove/force
-
-# Add or remove newline between 'union' and '{'
-nl_union_brace = add # 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 = force # 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 = ignore # ignore/add/remove/force
-
-# Add or remove newline between 'else' and '{'
-nl_else_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 'while' and '{'
-nl_while_brace = remove # 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
-
-# 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
-
-# Newline between namespace and {
-nl_namespace_brace = ignore # ignore/add/remove/force
-
-# Add or remove newline between 'template<>' and 'class'
-nl_template_class = ignore # ignore/add/remove/force
-
-# Add or remove newline between 'class' and '{'
-nl_class_brace = ignore # ignore/add/remove/force
-
-# Add or remove newline after each ',' in the constructor member initialization
-nl_class_init_args = ignore # ignore/add/remove/force
-
-# Add or remove newline between return type and function name in definition
-nl_func_type_name = ignore # ignore/add/remove/force
-
-# Add or remove newline after '(' in a function declaration
-nl_func_decl_start = ignore # ignore/add/remove/force
-
-# Add or remove newline after each ',' in a function declaration
-nl_func_decl_args = ignore # ignore/add/remove/force
-
-# Add or remove newline before the ')' in a function declaration
-nl_func_decl_end = ignore # ignore/add/remove/force
-
-# Add or remove newline between function signature and '{'
-nl_fdef_brace = add # ignore/add/remove/force
-
-# Whether to put a newline after 'return' statement
-nl_after_return = true # false/true
-
-# 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
-
-# Whether to alter newlines in '#define' macros
-nl_define_macro = false # false/true
-
-# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
-nl_squeeze_ifdef = true # false/true
-
-#
-# Positioning options
-#
-
-# The position of boolean operators in wrapped expressions
-pos_bool = trail # ignore/lead/trail
-
-# The position of colons between constructor and member initialization
-pos_class_colon = ignore # ignore/lead/trail
-
-#
-# 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 the function body
-nl_after_func_body = 2 # number
-
-# The minimum number of newlines before a multi-line comment (doesn't apply if after a brace open)
-nl_before_block_comment = 2 # 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
-
-#
-# 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 function defintions. (Pawn)
-mod_full_brace_function = ignore # ignore/add/remove/force
-
-# Add or remove braces on single-line 'if' statement
-mod_full_brace_if = add # ignore/add/remove/force
-
-# 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
-
-# Add or remove unnecessary paren on 'return' statement
-mod_paren_on_return = add # ignore/add/remove/force
-
-# Whether to change optional semicolons to real semicolons
-mod_pawn_semicolon = false # false/true
-
-#
-# Comment modifications
-#
-
-# 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
-
-#
-# Preprocessor options
-#
-
-# Add or remove indent of preprocessor directives
-pp_indent = ignore # ignore/add/remove/force
-
-# Add or remove space between # and, say, define
-pp_space = ignore # ignore/add/remove/force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/kr-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/kr-indent.cfg
deleted file mode 100644
index 5eea56c3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/kr-indent.cfg
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-# K&R (sort-of)
-#
-
-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 = 2 # pos: absolute col, neg: relative column
-# indent_align_string = False # align broken strings
-# indent_brace = 0
-
-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_func_var_def_blk = 1
-# nl_before_case = 1
-nl_fcall_brace = add # "foo() {" vs "foo()\n{"
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-# nl_after_return = TRUE
-nl_brace_while = remove
-nl_brace_else = remove
-nl_squeeze_ifdef = TRUE
-
-# mod_paren_on_return = add # "return 1;" vs "return (1);"
-# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
-# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
-# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
-# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
-
-sp_before_semi = remove
-sp_paren_paren = remove # space between (( and ))
-sp_return_paren = remove # "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_inside_paren = remove # "( 1 )" vs "(1)"
-sp_inside_fparen = remove # "( 1 )" vs "(1)" - functions
-sp_inside_sparen = remove # "( 1 )" vs "(1)" - if/for/etc
-# sp_type_func = ignore
-sp_assign = force
-sp_arith = force
-sp_bool = force
-sp_compare = 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();"
-
-# align_with_tabs = FALSE # use tabs to align
-# align_on_tabstop = FALSE # align on tabstops
-# align_enum_equ_span = 4
-# align_nl_cont = TRUE
-# align_var_def_span = 2
-# align_var_def_inline = TRUE
-# align_var_def_star = TRUE
-# align_var_def_colon = TRUE
-# align_assign_span = 1
-# align_struct_init_span = 3
-# align_var_struct_span = 3
-# align_right_cmt_span = 3
-# align_pp_define_span = 3
-# align_pp_define_gap = 4
-# align_number_right = TRUE
-# align_typedef_span = 5
-# align_typedef_gap = 3
-
-# cmt_star_cont = TRUE
-
-eat_blanks_before_close_brace = TRUE
-eat_blanks_after_open_brace = TRUE
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/linux.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/linux.cfg
deleted file mode 100644
index c3fb724b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/linux.cfg
+++ /dev/null
@@ -1,121 +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_paren_paren = remove
-sp_before_ptr_star = force
-sp_after_ptr_star = 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.73.0/etc/mono.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/mono.cfg
deleted file mode 100644
index 9987e9d6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/mono.cfg
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Mono library format
-#
-
-indent_with_tabs = 0 # 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 = 2 # pos: absolute col, neg: relative column
-# indent_align_string = False # align broken strings
-# indent_brace = 0
-indent_func_call_param = true # use indent tabstop
-
-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_func_var_def_blk = 1
-nl_before_case = 1
-nl_fcall_brace = remove # "foo() {" vs "foo()\n{"
-nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
-# nl_after_return = TRUE
-nl_brace_while = remove
-nl_brace_else = add
-nl_squeeze_ifdef = TRUE
-
-# mod_paren_on_return = add # "return 1;" vs "return (1);"
-# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
-# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
-# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
-# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
-
-sp_before_semi = remove
-sp_paren_paren = remove # space between (( and ))
-sp_return_paren = remove # "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_inside_paren = remove
-sp_inside_fparen = remove
-sp_inside_sparen = remove
-sp_inside_square = remove
-sp_before_square = add
-#sp_type_func = ignore
-sp_assign = force
-sp_arith = force
-sp_bool = force
-sp_compare = force
-sp_assign = force
-sp_after_comma = force
-sp_func_def_paren = force # "int foo (){" vs "int foo(){"
-sp_func_call_paren = force # "foo (" vs "foo("
-sp_func_proto_paren = force # "int foo ();" vs "int foo();"
-
-# align_with_tabs = FALSE # use tabs to align
-# align_on_tabstop = FALSE # align on tabstops
-# align_enum_equ_span = 4
-# align_nl_cont = TRUE
-# align_var_def_span = 2
-# align_var_def_inline = TRUE
-# align_var_def_star = TRUE
-# align_var_def_colon = TRUE
-# align_assign_span = 1
-# align_struct_init_span = 3
-# align_var_struct_span = 3
-# align_right_cmt_span = 3
-# align_pp_define_span = 3
-# align_pp_define_gap = 4
-# align_number_right = TRUE
-# align_typedef_span = 5
-# align_typedef_gap = 3
-
-cmt_star_cont = TRUE
-
-eat_blanks_before_close_brace = TRUE
-eat_blanks_after_open_brace = TRUE
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/sun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/sun.cfg
deleted file mode 100644
index 42b780cf..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/sun.cfg
+++ /dev/null
@@ -1,1781 +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_sing_line_comments = 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 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 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 part of a for statement.
-sp_before_semi_for_empty = remove # ignore/add/remove/force
-
-# 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_emb_cmt = force # ignore/add/remove/force
-
-# Number of spaces before a trailing or embedded comment
-sp_num_before_tr_emb_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.
-# This also adds a newline before the matching brace close.
-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.73.0/etc/uigui_uncrustify.ini b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uigui_uncrustify.ini
deleted file mode 100644
index d52c0288..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uigui_uncrustify.ini
+++ /dev/null
@@ -1,6712 +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.73.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 '*'.</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 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 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.</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.<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.<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 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 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 part of a for statement.</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 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 ','.<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 Before Ellipsis]
-Category=1
-Description="<html>Add or remove space before the variadic '...' when preceded by a<br/>non-punctuator.</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 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 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 ':'.</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=ignore
-
-[Sp Before Constr Colon]
-Category=1
-Description="<html>Add or remove space before class constructor ':'.</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=ignore
-
-[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 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.</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.</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.</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 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 Emb Cmt]
-Category=1
-Description="<html>Add or remove space before a trailing or embedded comment.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_tr_emb_cmt=ignore|sp_before_tr_emb_cmt=add|sp_before_tr_emb_cmt=remove|sp_before_tr_emb_cmt=force|sp_before_tr_emb_cmt=not_defined
-ChoicesReadable="Ignore Sp Before Tr Emb Cmt|Add Sp Before Tr Emb Cmt|Remove Sp Before Tr Emb Cmt|Force Sp Before Tr Emb Cmt"
-ValueDefault=ignore
-
-[Sp Num Before Tr Emb Cmt]
-Category=1
-Description="<html>Number of spaces before a trailing or embedded comment.</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_before_tr_emb_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[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 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]
-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 Sing Line Comments]
-Category=2
-Description="<html>Spaces to indent single line ('//') comments on lines before code.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_sing_line_comments="
-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 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 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 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 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 Label]
-Category=2
-Description="<html>How to indent goto labels.<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 After Brace Open]
-Category=3
-Description="<html>Whether to add a newline after '{'. This also adds a newline before the<br/>matching '}'.</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 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.</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 unbraced if statements 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 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 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 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 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 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 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.73.0/forUncrustifySources.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/forUncrustifySources.cfg
deleted file mode 100644
index 9389f055..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/forUncrustifySources.cfg
+++ /dev/null
@@ -1,467 +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_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_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_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_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_emb_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.73.0/man/uncrustify.1.in b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/man/uncrustify.1.in
deleted file mode 100644
index eea3ca37..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/man/uncrustify.1.in
+++ /dev/null
@@ -1,170 +0,0 @@
-.TH UNCRUSTIFY "1" "Oct 2014" "uncrustify @PACKAGE_VERSION@" "User Commands"
-.SH NAME
-uncrustify \- C, C++, C#, D, Java and Pawn source code beautifier
-
-.SH SYNOPSIS
-.B uncrustify \fR[\fIOPTIONS\fR] [\fIFILES\fR]
-
-.SH DESCRIPTION
-
-If no input files are specified, the input is read from stdin.
-.br
-If reading from stdin, you should specify the language using \-l.
-
-If \-F is used or files are specified on the command line, the output filename is
-\fIPFX\fR + "/" + filename + \fISFX\fR.
-.br
-Unless, of course, the options \fB\-\-replace\fR or \fB\-\-no\-backup\fR are used.
-
-When reading from stdin or doing a single file via the '\-f' option,
-the output is dumped to stdout, unless redirected with \-o FILE.
-
-Errors are always dumped to stderr
-
-.SH OPTIONS
-.SS "Basic Options:"
-.TP
-\fB\-c\fI CFG\fR
-Use the config file \fICFG\fR, or defaults if \fICFG\fR is set to '-'.
-.br
-If not specified, uncrustify will use \fB$UNCRUSTIFY_CONFIG\fR or \fB$HOME/.uncrustify.cfg\fR.
-.TP
-\fB\-f\fI FILE\fR
-Process the single file \fIFILE\fR, sending output to stdout or the file specified with \fB\-o\fR.
-.TP
-\fB\-o\fI FILE\fR
-Redirect output to \fIFILE\fR.
-.br
-Use with \fB\-f\fR, \fB\-\-update\-config\fR, \fB\-\-update\-config\-with\-doc\fR,
-\fB\-\-universalindent\fR.
-.TP
-\fB\-\-check\fR
-Do not output the new text, instead verify that nothing changes when
-the file(s) are processed. The status of every file is printed to
-stderr. The exit code is EXIT_SUCCESS if there were no changes, EXIT_FAILURE otherwise.
-.TP
-\fB\-F\fI FILE\fR
-Read files to process from \fIFILE\fR, one filename per line. If \fIFILE\fR
-is \'\-\' then read filenames from standard input instead of a file.
-.br
-You can create this file using something like \'\fBfind . \-name "*.c" > list.txt\fR\'.
-.br
-This cannot be combined with \fB\-f\fR.
-.TP
-\fB\-\-prefix\fI PFX\fR
-Prepend \fIPFX\fR to the output filename path.
-.br
-This cannot be combined with \fB\-f\fR, \fB\-\-replace\fR, or \fB\-\-no\-backup\fR.
-.TP
-\fB\-\-suffix\fI SFX\fR
-Append \fISFX\fR to the output filename.
-.br
-The default is '.uncrustify' if neither \fISFX\fR or \fIPFX\fR are specified.
-.br
-This cannot be combined with \fB\-f\fR, \fB\-\-replace\fR, or \fB\-\-no\-backup\fR.
-.TP
-\fB\-\-frag\fR
-Assume the input is a code fragment and the first line is properly indented.
-.TP
-\fB\-\-replace\fR
-Replace source files (creates a backup).
-.br
-This cannot be combined with \fB\-f\fR, \fB\-\-prefix\fR, or \fB\-\-suffix\fR.
-.TP
-\fB\-\-no\-backup\fR
-Replace files, no backup. Useful if files are under source control
-.br
-This cannot be combined with \fB\-f\fR, \fB\-\-prefix\fR, or \fB\-\-suffix\fR.
-.TP
-\fB\-\-mtime\fR
-Preserve mtime on replaced files.
-.TP
-\fB\-l\fR
-Language override: C, CPP, D, CS, JAVA, PAWN, VALA, OC, OC+
-.TP
-\fB\-t\fR
-Load a file with types (usually not needed)
-.TP
-\fB\-q\fR
-Quiet mode \- no output on stderr (\fB\-L\fR will override)
-.SS "Config/Help Options:"
-.TP
-\fB\-h\fR \-? \fB\-\-help\fR \fB\-\-usage\fR
-Print this message and exit
-.TP
-\fB\-\-version\fR
-Print the version and exit
-.TP
-\fB\-\-count\-options\fR
-Print the number of available options and exit
-.TP
-\fB\-\-show\-config\fR
-Print out option documentation and exit
-.TP
-\fB\-\-update\-config\fR
-Output a new config file.
-.TP
-\fB\-\-update\-config\-with\-doc\fR
-Output a new config file with embedded usage comments.
-.TP
-\fB\-\-universalindent\fR
-Output a config file for Universal Indent GUI.
-.TP
-\fB\-\-detect\fR
-Detects the config from a source file. Use with '\-f \fIFILE\fR'.
-Detection is currently fairly limited.
-
-.SS "Debug Options:"
-.TP
-\fB\-p \fIFILE\fR
-Dump debug info into \fIFILE\fR, or to stdout if \fIFILE\fR is set to '-'."
-.br
-Must be used in combination with '-f \fIFILE\fR'."
-.TP
-\fB\-L\fI SEV\fR
-Set the log severity (see log_levels.h)
-.TP
-\fB\-s\fR
-Show the log severity in the logs
-.TP
-\fB\-\-decode\fI FLAG\fR
-Print \fIFLAG\fR as text and exit
-
-.SH EXAMPLES
-.TP
-Read a D file from stdin, output to stdout.
-cat foo.d | uncrustify \-q \-c my.cfg \-l d
-.TP
-Process a file, output to stdout.
-uncrustify \-c my.cfg \-d foo.d
-.TP
-Process a source tree, output to a different tree.
-find src \-name "*.[ch]" > files.txt
-.br
-uncrustify \-c my.cfg \-F files.txt \-\-prefix out
-.TP
-Process a source tree in\(hyplace.
-uncrustify \-c my.cfg \-\-no\-backup $(find src \-name "*.[ch]")
-
-.SH NOTES
-Use comments containing ' *INDENT\-OFF*' and ' *INDENT\-ON*' to disable
-processing of parts of the source file.
-
-.SH AUTHOR
-Written by Ben Gardner
-
-.SH REPORTING BUGS
-Use the issue tracker at <http://sourceforge.net/projects/uncrustify>
-
-.SH COPYRIGHT
-Copyright (C) 2006\(hy2014 Ben Gardner
-.br
-Copyright (C) 2015, 2016 Guy Maurel
-
-.SH LICENSE
-GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
-
-This is free software; see the source for copying conditions.
-There is NO warranty; not even for MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE.
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/package.json b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/package.json
deleted file mode 100644
index 39d108a4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "uncrustify",
- "version": "0.73.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.73.0/release-process.rst b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/release-process.rst
deleted file mode 100644
index 4fa9e043..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/release-process.rst
+++ /dev/null
@@ -1,324 +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:
-
-- GitPython_
-- mingw32-gcc-c++
-- mingw64-gcc-c++
-- tar
-- 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.73.0/src/EnumStructUnionParser.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/EnumStructUnionParser.cpp
deleted file mode 100644
index 48e1911d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/EnumStructUnionParser.cpp
+++ /dev/null
@@ -1,2858 +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 = chunk_get_next_ncnnl(prev, scope_e::PREPROC);
-
- /**
- * 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
- */
- 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.73.0/src/ParseFrame.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ParseFrame.cpp
deleted file mode 100644
index 7ac3f66d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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);
-
-// un comment 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.73.0/src/add_space_table.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/add_space_table.h
deleted file mode 100644
index 759507b9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/add_space_table.h
+++ /dev/null
@@ -1,302 +0,0 @@
-// *INDENT-OFF*
- { CT_ACCESS, CT_TYPE },
- { CT_ACCESS, CT_WORD },
- { CT_ALIGN, CT_PAREN_OPEN },
- { CT_AMP, CT_WORD },
- { CT_ANGLE_CLOSE, CT_BRACE_OPEN },
- { CT_ANNOTATION, CT_ANNOTATION },
- { CT_ANNOTATION, CT_TYPE },
- { CT_ASM_COLON, CT_ASM_COLON },
- { CT_ASM_COLON, CT_STRING },
- { CT_ASM, CT_FUNC_CALL },
- { CT_ASM, CT_PAREN_OPEN },
- { CT_ASM, CT_QUALIFIER },
- { CT_ASSERT, CT_PAREN_OPEN },
- { CT_ASSIGN_FUNC_PROTO, CT_DEFAULT },
- { CT_ASSIGN_FUNC_PROTO, CT_DELETE },
- { CT_ASSIGN_FUNC_PROTO, CT_NUMBER },
- { CT_ATTRIBUTE, CT_ATTRIBUTE },
- { CT_ATTRIBUTE, CT_BRACE_OPEN },
- { CT_ATTRIBUTE, CT_CASE },
- { CT_ATTRIBUTE, CT_QUALIFIER },
- { CT_ATTRIBUTE, CT_TYPE },
- { CT_ATTRIBUTE, CT_WORD },
- { CT_AUTORELEASEPOOL, CT_BRACE_OPEN },
- { CT_BIT_COLON, CT_NUMBER },
- { CT_BIT_COLON, CT_SIZEOF },
- { CT_BIT_COLON, CT_TYPE },
- { CT_BIT_COLON, CT_WORD },
- { CT_BODY, CT_BRACE_OPEN },
- { CT_BRACE_CLOSE, CT_BRACE_OPEN },
- { CT_BRACE_CLOSE, CT_CLASS },
- { CT_BRACE_CLOSE, CT_FUNC_CALL },
- { CT_BRACE_CLOSE, CT_GETSET },
- { CT_BRACE_CLOSE, CT_IF },
- { CT_BRACE_CLOSE, CT_OC_MSG_NAME },
- { CT_BRACE_CLOSE, CT_PAREN_OPEN },
- { CT_BRACE_CLOSE, CT_QUALIFIER },
- { CT_BRACE_CLOSE, CT_RETURN },
- { CT_BRACE_CLOSE, CT_TYPE },
- { CT_BRACE_CLOSE, CT_WORD },
- { CT_BREAK, CT_WORD },
- { CT_BYREF, CT_INV },
- { CT_CASE_COLON, CT_ATTRIBUTE },
- { CT_CASE_COLON, CT_BRACE_OPEN },
- { CT_CASE_COLON, CT_BREAK },
- { CT_CASE_COLON, CT_RETURN },
- { CT_CASE_COLON, CT_WORD },
- { CT_CASE, CT_NEG },
- { CT_CASE, CT_PAREN_OPEN },
- { CT_CASE, CT_STRING },
- { CT_CASE_ELLIPSIS, CT_NUMBER },
- { CT_CATCH, CT_FUNC_CALL },
- { CT_CLASS_COLON, CT_FUNC_CALL },
- { CT_CLASS_COLON, CT_QUALIFIER },
- { CT_CLASS_COLON, CT_TYPE },
- { CT_CLASS_COLON, CT_WORD },
- { CT_COLON, CT_COLON },
- { CT_COLON, CT_NUMBER },
- { CT_COLON, CT_QUALIFIER },
- { CT_COLON, CT_STRING },
- { CT_COLON, CT_TYPE },
- { CT_COLON, CT_WORD },
- { CT_COMMENT_EMBED, CT_FUNC_CLASS_PROTO },
- { CT_COMMENT_MULTI, CT_ELSE },
- { CT_CONCAT, CT_STRING },
- { CT_CONCAT, CT_WORD },
- { CT_COND_COLON, CT_FUNC_CALL },
- { CT_COND_COLON, CT_STRING },
- { CT_COND_COLON, CT_WORD },
- { CT_CONSTR_COLON, CT_FUNC_CALL },
- { CT_CONSTR_COLON, CT_FUNC_CLASS_DEF },
- { CT_CONSTR_COLON, CT_FUNC_CTOR_VAR },
- { CT_CONSTRUCT, CT_TYPE },
- { CT_CONTINUE, CT_WORD },
- { CT_CS_PROPERTY, CT_BRACE_OPEN },
- { CT_DEFAULT, CT_STRING },
- { CT_DEFAULT, CT_WORD },
- { CT_DELEGATE, CT_BRACE_OPEN },
- { CT_D_MODULE, CT_WORD },
- { CT_ELLIPSIS, CT_NUMBER },
- { CT_ELSE, CT_FOR },
- { CT_ELSE, CT_IF },
- { CT_ELSE, CT_PAREN_OPEN },
- { CT_ELSE, CT_WORD },
- { CT_ELSEIF, CT_CONSTEXPR },
- { CT_ENUM_CLASS, CT_ATTRIBUTE },
- { CT_ENUM_CLASS, CT_TYPE },
- { CT_ENUM, CT_ATTRIBUTE },
- { CT_ENUM, CT_BIT_COLON },
- { CT_ENUM, CT_BRACE_OPEN },
- { CT_ENUM, CT_ENUM_CLASS },
- { CT_ENUM, CT_FPAREN_OPEN },
- { CT_ENUM, CT_FUNCTION },
- { CT_ENUM, CT_TYPE },
- { CT_ENUM, CT_WORD },
- { CT_EXECUTION_CONTEXT, CT_EXECUTION_CONTEXT },
- { CT_EXECUTION_CONTEXT, CT_FPAREN_OPEN },
- { CT_EXTERN, CT_STRING },
- { CT_FPAREN_CLOSE, CT_ASSIGN_FUNC_PROTO },
- { CT_FPAREN_CLOSE, CT_ATTRIBUTE },
- { CT_FPAREN_CLOSE, CT_CLASS_COLON },
- { CT_FPAREN_CLOSE, CT_COND_COLON },
- { CT_FPAREN_CLOSE, CT_CONSTR_COLON },
- { CT_FPAREN_CLOSE, CT_DEFAULT },
- { CT_FPAREN_CLOSE, CT_FUNC_CALL },
- { CT_FPAREN_CLOSE, CT_NEG },
- { CT_FPAREN_CLOSE, CT_NOT },
- { CT_FPAREN_CLOSE, CT_OC_MSG_NAME },
- { CT_FPAREN_CLOSE, CT_QUESTION },
- { CT_FPAREN_CLOSE, CT_STRING },
- { CT_FPAREN_CLOSE, CT_THROW },
- { CT_FPAREN_CLOSE, CT_TYPE },
- { CT_FPAREN_CLOSE, CT_WHERE_SPEC },
- { CT_FPAREN_CLOSE, CT_WORD },
- { CT_FRIEND, CT_CLASS },
- { CT_FRIEND, CT_STRUCT },
- { CT_FRIEND, CT_TYPE },
- { CT_FUNCTION, CT_PAREN_OPEN },
- { CT_FUNC_VAR, CT_PPAREN_CLOSE },
- { CT_GOTO, CT_WORD },
- { CT_IF, CT_CONSTEXPR },
- { CT_IMPORT, CT_WORD },
- { CT_INCDEC_AFTER, CT_DEREF },
- { CT_IN, CT_TYPE },
- { CT_IN, CT_WORD },
- { CT_LABEL_COLON, CT_CS_PROPERTY },
- { CT_LABEL_COLON, CT_FUNC_CALL },
- { CT_LABEL_COLON, CT_NEW },
- { CT_LABEL_COLON, CT_PAREN_OPEN },
- { CT_LABEL_COLON, CT_RETURN },
- { CT_LABEL_COLON, CT_STRING },
- { CT_LABEL_COLON, CT_TYPE },
- { CT_LABEL_COLON, CT_WORD },
- { CT_LOCK, CT_PAREN_OPEN },
- { CT_NAMESPACE, CT_BRACE_OPEN },
- { CT_NAMESPACE, CT_TYPE },
- { CT_NAMESPACE, CT_WORD },
- { CT_NATIVE, CT_TAG },
- { CT_NUMBER, CT_CASE_ELLIPSIS },
- { CT_NUMBER, CT_CHAR },
- { CT_NUMBER, CT_COLON },
- { CT_NUMBER, CT_ELLIPSIS },
- { CT_NUMBER, CT_OC_MSG_NAME },
- { CT_NUMBER, CT_PAREN_OPEN },
- { CT_NUMBER, CT_WORD },
- { CT_NUMBER_FP, CT_NUMBER },
- { CT_NUMBER_FP, CT_OC_MSG_NAME },
- { CT_NUMBER_FP, CT_WORD },
- { CT_OC_CLASS, CT_CLASS_COLON },
- { CT_OC_CLASS, CT_PAREN_OPEN },
- { CT_OC_DYNAMIC, CT_WORD },
- { CT_OC_IMPL, CT_OC_CLASS },
- { CT_OC_INTF, CT_OC_CLASS },
- { CT_OC_MSG_DECL, CT_BRACE_OPEN },
- { CT_OC_PROTOCOL, CT_OC_CLASS },
- { CT_PACKAGE, CT_WORD },
- { CT_PAREN_CLOSE, CT_ASM_COLON },
- { CT_PAREN_CLOSE, CT_COLON },
- { CT_PAREN_CLOSE, CT_COND_COLON },
- { CT_PAREN_CLOSE, CT_CS_PROPERTY },
- { CT_PAREN_CLOSE, CT_DEREF },
- { CT_PAREN_CLOSE, CT_NOT },
- { CT_PAREN_CLOSE, CT_NUMBER },
- { CT_PAREN_CLOSE, CT_OC_MSG_NAME },
- { CT_PAREN_CLOSE, CT_POS },
- { CT_PAREN_CLOSE, CT_QUALIFIER },
- { CT_PAREN_CLOSE, CT_TYPE },
- { CT_PP_DEFINE, CT_MACRO },
- { CT_PP_DEFINE, CT_MACRO_FUNC },
- { CT_PP_DEFINE, CT_NUMBER },
- { CT_PP_DEFINE, CT_PP_IGNORE },
- { CT_PP_DEFINED, CT_TYPE },
- { CT_PP_DEFINED, CT_WORD },
- { CT_PP_ELSE, CT_FUNC_CALL },
- { CT_PP_ELSE, CT_NOT },
- { CT_PP_ELSE, CT_NUMBER },
- { CT_PP_ELSE, CT_PAREN_OPEN },
- { CT_PP_ELSE, CT_PP_DEFINED },
- { CT_PP_ELSE, CT_WORD },
- { CT_PP_EMIT, CT_MACRO },
- { CT_PP_ENDIF, CT_WORD },
- { CT_PP_ENDREGION, CT_PREPROC_BODY },
- { CT_PP_IF, CT_CNG_HASINC },
- { CT_PP_IF, CT_FUNC_CALL },
- { CT_PP_IF, CT_NOT },
- { CT_PP_IF, CT_NUMBER },
- { CT_PP_IF, CT_PAREN_OPEN },
- { CT_PP_IF, CT_PP_ASM },
- { CT_PP_IF, CT_PP_DEFINE },
- { CT_PP_IF, CT_PP_DEFINED },
- { CT_PP_IF, CT_TYPE },
- { CT_PP_IF, CT_WORD },
- { CT_PP_INCLUDE, CT_STRING },
- { CT_PP_INCLUDE, CT_WORD },
- { CT_PP_OTHER, CT_PREPROC_BODY },
- { CT_PP_PROPERTY, CT_WORD },
- { CT_PP_REGION, CT_PREPROC_BODY },
- { CT_PP_UNDEF, CT_TYPE },
- { CT_PP_UNDEF, CT_WORD },
- { CT_Q_EMIT, CT_FUNC_CALL },
- { CT_Q_FOREVER, CT_BRACE_OPEN },
- { CT_QUESTION, CT_FUNC_CALL },
- { CT_QUESTION, CT_PAREN_OPEN },
- { CT_QUESTION, CT_STRING },
- { CT_QUESTION, CT_WORD },
- { CT_SBOOL, CT_TYPE },
- { CT_SCOMPARE, CT_WORD },
- { CT_SPAREN_CLOSE, CT_ATTRIBUTE },
- { CT_SPAREN_CLOSE, CT_AUTORELEASEPOOL },
- { CT_SPAREN_CLOSE, CT_BRACE_OPEN },
- { CT_SPAREN_CLOSE, CT_FUNC_CALL },
- { CT_SPAREN_CLOSE, CT_WORD },
- { CT_SQL_ASSIGN, CT_FUNC_CALL },
- { CT_SQL_ASSIGN, CT_WORD },
- { CT_SQL_BEGIN, CT_SQL_WORD },
- { CT_SQL_END, CT_SQL_WORD },
- { CT_SQL_EXEC, CT_SQL_WORD },
- { CT_SQL_WORD, CT_COLON },
- { CT_SQL_WORD, CT_PAREN_OPEN },
- { CT_SQL_WORD, CT_SQL_WORD },
- { CT_SQUARE_CLOSE, CT_ATTRIBUTE },
- { CT_SQUARE_CLOSE, CT_BRACE_OPEN },
- { CT_SQUARE_CLOSE, CT_COLON },
- { CT_SQUARE_CLOSE, CT_EXECUTION_CONTEXT },
- { CT_SQUARE_CLOSE, CT_OC_MSG_NAME },
- { CT_SQUARE_CLOSE, CT_STRING },
- { CT_SQUARE_CLOSE, CT_WORD },
- { CT_STATE, CT_TYPE },
- { CT_STOCK, CT_QUALIFIER },
- { CT_STOCK, CT_TAG },
- { CT_STRING, CT_ATTRIBUTE },
- { CT_STRING, CT_BRACE_OPEN },
- { CT_STRING, CT_COLON },
- { CT_STRING, CT_CONCAT },
- { CT_STRING, CT_OC_MSG_NAME },
- { CT_STRING, CT_PAREN_OPEN },
- { CT_STRING, CT_STRING },
- { CT_STRING, CT_STRUCT },
- { CT_STRING, CT_TYPE },
- { CT_STRING, CT_WORD },
- { CT_STRUCT, CT_BRACE_OPEN },
- { CT_STRUCT, CT_CLASS_COLON },
- { CT_STRUCT, CT_MACRO_FUNC_CALL },
- { CT_STRUCT, CT_TYPE },
- { CT_STRUCT, CT_WORD },
- { CT_TEMPLATE, CT_CLASS },
- { CT_TEMPLATE, CT_TYPE },
- { CT_THIS, CT_OC_MSG_NAME },
- { CT_THIS, CT_TYPE },
- { CT_TSQUARE, CT_BRACE_OPEN },
- { CT_TSQUARE, CT_PAREN_OPEN },
- { CT_TSQUARE, CT_WORD },
- { CT_TYPEDEF, CT_ENUM },
- { CT_TYPEDEF, CT_FUNC_TYPE },
- { CT_TYPEDEF, CT_PAREN_OPEN },
- { CT_TYPEDEF, CT_QUALIFIER },
- { CT_TYPEDEF, CT_STRUCT },
- { CT_TYPEDEF, CT_TYPE },
- { CT_TYPEDEF, CT_TYPENAME },
- { CT_TYPEDEF, CT_UNION },
- { CT_TYPENAME, CT_ELLIPSIS },
- { CT_TYPENAME, CT_WORD },
- { CT_UNION, CT_BRACE_OPEN },
- { CT_UNION, CT_TYPE },
- { CT_UNION, CT_WORD },
- { CT_USING, CT_NAMESPACE },
- { CT_USING, CT_TYPE },
- { CT_USING, CT_WORD },
- { CT_USING_STMT, CT_PAREN_OPEN },
- { CT_VOLATILE, CT_BRACE_OPEN },
- { CT_WHERE_COLON, CT_CS_PROPERTY },
- { CT_WHERE_COLON, CT_NEW },
- { CT_WHERE_COLON, CT_TYPE },
- { CT_WHERE_COLON, CT_WORD },
- { CT_WHERE_SPEC, CT_WORD },
- { CT_WORD, CT_ATTRIBUTE },
- { CT_WORD, CT_BIT_COLON },
- { CT_WORD, CT_BRACE_OPEN },
- { CT_WORD, CT_CLASS_COLON },
- { CT_WORD, CT_COLON },
- { CT_WORD, CT_COMMENT_CPP },
- { CT_WORD, CT_CONCAT },
- { CT_WORD, CT_ELLIPSIS },
- { CT_WORD, CT_IN },
- { CT_WORD, CT_NEW },
- { CT_WORD, CT_NOT },
- { CT_WORD, CT_NUMBER },
- { CT_WORD, CT_NUMBER_FP },
- { CT_WORD, CT_OPERATOR },
- { CT_WORD, CT_QUALIFIER },
- { CT_WORD, CT_QUESTION },
- { CT_WORD, CT_SCOMPARE },
- { CT_WORD, CT_SQL_ASSIGN },
- { CT_WORD, CT_STRING },
- { CT_WORD, CT_STRUCT },
- { CT_WORD, CT_TYPE },
- { CT_WORD, CT_TYPE_CAST },
- { CT_WORD, CT_TYPEDEF },
- { CT_WORD, CT_WHERE_COLON },
- { CT_WORD, CT_WHERE_SPEC },
- { CT_WORD, CT_WORD },
-// *INDENT-ON*
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_proto.cpp
deleted file mode 100644
index 2a96b865..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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_var_def_star_style");
- size_t mystar_style = options::align_var_def_star_style();
-
- log_rule_B("align_var_def_amp_style");
- size_t myamp_style = options::align_var_def_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.73.0/src/backup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/backup.cpp
deleted file mode 100644
index c2a9ae51..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/backup.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- * @file backup.cpp
- * Make a backup of a source file
- * The current plans are to use two files.
- *
- * - A '.unc-backup~' file that contains the original contents
- * - A '.unc-backup-md5~' file that contains the MD5 over the last output
- * that uncrustify generated
- *
- * The logic goes like this:
- * 1. If there isn't a .backup-md5 or the md5 over the input file doesn't
- * match what is in .backup-md5, then copy the source file to .backup.
- *
- * 2. Create the output file.
- *
- * 3. Calculate the md5 over the output file.
- * Create the .backup-md5 file.
- *
- * This will let you run uncrustify multiple times over the same file without
- * losing the original file. If you edit the file, then a new backup is made.
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#include "prototypes.h"
-
-#include "backup.h"
-#include "md5.h"
-#include "unc_ctype.h"
-
-#ifdef __APPLE__
-#include <cerrno> // is needed under OSX
-#endif
-
-using namespace std;
-
-
-int backup_copy_file(const char *filename, const vector<UINT8> &data)
-{
- char newpath[1024];
- char md5_str_in[33];
- char md5_str[34];
- UINT8 dig[16];
-
- md5_str_in[0] = 0;
-
- MD5::Calc(&data[0], data.size(), dig);
- snprintf(md5_str, sizeof(md5_str),
- "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
- dig[0], dig[1], dig[2], dig[3],
- dig[4], dig[5], dig[6], dig[7],
- dig[8], dig[9], dig[10], dig[11],
- dig[12], dig[13], dig[14], dig[15]);
-
- // Create the backup-md5 filename, open it and read the md5
- snprintf(newpath, sizeof(newpath), "%s%s", filename, UNC_BACKUP_MD5_SUFFIX);
-
- FILE *thefile = fopen(newpath, "rb");
-
- if (thefile != nullptr)
- {
- char buffer[128];
-
- if (fgets(buffer, sizeof(buffer), thefile) != nullptr)
- {
- for (int i = 0; buffer[i] != 0; i++)
- {
- if (unc_isxdigit(buffer[i]))
- {
- md5_str_in[i] = unc_tolower(buffer[i]);
- }
- else
- {
- md5_str_in[i] = 0;
- break;
- }
- }
- }
- fclose(thefile);
- }
-
- // if the MD5s match, then there is no need to back up the file
- if (memcmp(md5_str, md5_str_in, 32) == 0)
- {
- LOG_FMT(LNOTE, "%s: MD5 match for %s\n", __func__, filename);
- return(EX_OK);
- }
- LOG_FMT(LNOTE, "%s: MD5 mismatch - backing up %s\n", __func__, filename);
-
- // Create the backup file
- snprintf(newpath, sizeof(newpath), "%s%s", filename, UNC_BACKUP_SUFFIX);
-
- thefile = fopen(newpath, "wb");
-
- if (thefile != nullptr)
- {
- size_t retval = fwrite(&data[0], data.size(), 1, thefile);
- int my_errno = errno;
-
- fclose(thefile);
-
- if (retval == 1)
- {
- return(EX_OK);
- }
- LOG_FMT(LERR, "fwrite(%s) failed: %s (%d)\n",
- newpath, strerror(my_errno), my_errno);
- cpd.error_count++;
- }
- else
- {
- LOG_FMT(LERR, "fopen(%s) failed: %s (%d)\n",
- newpath, strerror(errno), errno);
- cpd.error_count++;
- }
- return(EX_IOERR);
-} // backup_copy_file
-
-
-void backup_create_md5_file(const char *filename)
-{
- UINT8 dig[16];
- MD5 md5;
- FILE *thefile;
- UINT8 buf[4096];
- size_t len;
- char newpath[1024];
-
- md5.Init();
-
- thefile = fopen(filename, "rb");
-
- if (thefile == nullptr)
- {
- LOG_FMT(LERR, "%s: fopen(%s) failed: %s (%d)\n",
- __func__, filename, strerror(errno), errno);
- cpd.error_count++;
- return;
- }
-
- // read file chunk by chunk and calculate its MD5 checksum
- while ((len = fread(buf, 1, sizeof(buf), thefile)) > 0)
- {
- md5.Update(buf, len);
- }
- fclose(thefile);
- md5.Final(dig);
-
- snprintf(newpath, sizeof(newpath), "%s%s", filename, UNC_BACKUP_MD5_SUFFIX);
-
- thefile = fopen(newpath, "wb");
-
- if (thefile != nullptr)
- {
- fprintf(thefile,
- "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x %s\n",
- dig[0], dig[1], dig[2], dig[3],
- dig[4], dig[5], dig[6], dig[7],
- dig[8], dig[9], dig[10], dig[11],
- dig[12], dig[13], dig[14], dig[15],
- path_basename(filename));
-
- fclose(thefile);
- }
-} // backup_create_md5_file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/brace_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/brace_cleanup.cpp
deleted file mode 100644
index 03ab68e3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/brace_cleanup.cpp
+++ /dev/null
@@ -1,1426 +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)
- {
- return(fl_check(braceState.frames, frm, braceState.pp_level, pc));
- }
- // 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
- const size_t pp_level = (chunk_is_token(pc, CT_PREPROC))
- ? preproc_start(braceState, frm, pc)
- : 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);
- }
-} // 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_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
- LOG_FMT(LBCSPOP, "%s(%d):\n", __func__, __LINE__);
-
- 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))
- {
- 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;
- }
-
- 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 == 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.73.0/src/braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/braces.cpp
deleted file mode 100644
index 7b7fa293..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/braces.cpp
+++ /dev/null
@@ -1,1622 +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();
-
- 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)
- {
- 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");
- pc = mod_case_brace_add(pc);
- }
- else
- {
- pc = chunk_get_next_ncnnl(pc, scope_e::PREPROC);
- }
- }
-}
-
-
-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.73.0/src/chunk_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/chunk_list.cpp
deleted file mode 100644
index fcaa7be9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/chunk_list.cpp
+++ /dev/null
@@ -1,1159 +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 is non-NEWLINE, non-comment and non-preprocessor
- *
- * Traverses a chunk list either in forward or backward direction.
- * The traversal continues until a chunk of a given category is found.
- *
- * @param cur chunk to start search at
- * @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_get_ncnlnp(chunk_t *cur, const scope_e scope = scope_e::ALL, const direction_e dir = direction_e::FORWARD);
-
-
-/**
- * @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_next_ncnnlnp(chunk_t *cur, scope_e scope)
-{
- return(chunk_get_ncnlnp(cur, scope, direction_e::FORWARD));
-}
-
-
-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_prev_ncnnlnp(chunk_t *cur, scope_e scope)
-{
- return(chunk_get_ncnlnp(cur, scope, direction_e::BACKWARD));
-}
-
-
-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_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_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_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_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_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_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_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_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_get_ncnlnp(chunk_t *cur, const scope_e scope, const direction_e dir)
-{
- chunk_t *pc = cur;
-
- pc = chunk_is_preproc(pc) ?
- chunk_search(pc, chunk_is_comment_or_newline_in_preproc, scope, dir, false) :
- chunk_search(pc, chunk_is_comment_newline_or_preproc, scope, dir, false);
- return(pc);
-}
-
-
-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.73.0/src/chunk_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/chunk_list.h
deleted file mode 100644
index 7a79474d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/chunk_list.h
+++ /dev/null
@@ -1,1014 +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 (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 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 about the level (if it is negative) or it is as expected
- // and the type is as expected
- return( ( 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 about the level (if it is negative) or it is as expected
- return( ( 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 ( 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 ( 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)
- && ( 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 (!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 ( 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) do { \
- set_chunk_type_real((pc), (tt), __unqualified_func__, __LINE__); \
-} while (false)
-
-#define set_chunk_parent(pc, tt) do { \
- set_chunk_parent_real((pc), (tt), __unqualified_func__, __LINE__); \
-} while (false)
-
-
-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) do { \
- chunk_flags_set_real((pc), (cc), (ss)); \
-} while (false)
-
-#define chunk_flags_set(pc, ss) do { \
- chunk_flags_set_real((pc), {}, (ss)); \
-} while (false)
-
-#define chunk_flags_clr(pc, cc) do { \
- chunk_flags_set_real((pc), (cc), {}); \
-} while (false)
-
-
-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.73.0/src/combine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine.cpp
deleted file mode 100644
index 920a27db..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine.cpp
+++ /dev/null
@@ -1,3815 +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();
-
- // 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);
- }
- }
- }
-
- // 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_any(PCF_IN_TYPEDEF | PCF_IN_TEMPLATE)
- && 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))
- || 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
- 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\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))
- {
- 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(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();
-
- 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
- || ( 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)))
- {
- 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)
- {
- 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)
- {
- 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)
- {
- 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);
- }
-
- if ( br_o == nullptr
- || chunk_is_not_token(br_o, CT_BRACE_OPEN))
- {
- return;
- }
- // and now find the '}'
- chunk_t *br_c = chunk_skip_to_match(br_o);
-
- if (br_c == nullptr)
- {
- 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.73.0/src/combine_fix_mark.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_fix_mark.cpp
deleted file mode 100644
index 194f807e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_fix_mark.cpp
+++ /dev/null
@@ -1,2574 +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_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_ncnnlnp(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))
- {
- next = chunk_get_next_ncnnlnp(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);
- 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
- {
- 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.73.0/src/combine_skip.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_skip.cpp
deleted file mode 100644
index 25194498..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_skip.cpp
+++ /dev/null
@@ -1,324 +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
- }
- 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.73.0/src/combine_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_tools.cpp
deleted file mode 100644
index 18450cd4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_tools.cpp
+++ /dev/null
@@ -1,565 +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): 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");
-
- if (!chunk_is_token(first_word, CT_TYPE))
- {
- set_chunk_type(first_word, CT_TYPE);
- }
- chunk_t *tmp = chunk_get_prev_ncnnl(first_word);
-
- if (chunk_is_token(tmp, CT_STAR))
- {
- set_chunk_type(tmp, CT_PTR_TYPE);
- }
- }
- 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)
- || ( ( 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.73.0/src/frame_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/frame_list.cpp
deleted file mode 100644
index 54bbf8a8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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-%u]", get_token_name(frm.at(idx).type),
- static_cast<unsigned int>(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): %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 %d/%d, counts is %zu, frame_count is %zu\n",
- __func__, __LINE__, pc->orig_line,
- get_token_name(get_chunk_parent_type(pc)), txt, static_cast<int>(in_ifdef),
- static_cast<int>(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.73.0/src/indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/indent.cpp
deleted file mode 100644
index fc6679ef..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/indent.cpp
+++ /dev/null
@@ -1,4402 +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 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);
-
-/**
- * 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
- && 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 ( (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::align_assign_span() == 0 && are_chunks_in_same_line(chunk_skip_to_match(frm.top().pc), tail)
- && ( ( !enclosure && 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)))
- {
- 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.
- 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
- + 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);
-
- // 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))
- {
- 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_leading");
- frm.top().indent += options::indent_ctor_init_leading();
- 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)
-{
- LOG_FUNC_ENTRY();
-
- if (!chunk_is_single_line_comment(start))
- {
- return(false);
- }
- chunk_t *pc = start;
- size_t nl_count = 0;
-
- while ((pc = chunk_get_next(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)
- || chunk_is_closing_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);
- }
- // TODO: Add an indent_comment_align_thresh option?
- const size_t indent_comment_align_thresh = 3;
-
- 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 <= 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 rule applies
- log_rule_B("indent_sing_line_comments");
-
- if ( (options::indent_sing_line_comments() > 0)
- && single_line_comment_indent_rule_applies(pc))
- {
- LOG_FMT(LCMTIND, "%s(%d): rule 4 - single line comment indent, now in %zu\n",
- __func__, __LINE__, pc->column);
- reindent_line(pc, col + options::indent_sing_line_comments());
- return;
- }
- LOG_FMT(LCMTIND, "%s(%d): rule 5 - fall-through, stay in %zu\n",
- __func__, __LINE__, col);
- reindent_line(pc, col);
-} // indent_comment
-
-
-bool ifdef_over_whole_file(void)
-{
- LOG_FUNC_ENTRY();
-
- // 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.73.0/src/keywords.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/keywords.cpp
deleted file mode 100644
index 5e4be691..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/keywords.cpp
+++ /dev/null
@@ -1,665 +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 <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.73.0/src/log_rules.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_rules.cpp
deleted file mode 100644
index 0117ff20..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/src/log_rules.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_rules.h
deleted file mode 100644
index 9fd201cc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_rules.h
+++ /dev/null
@@ -1,63 +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) \
- do { \
- log_rule2(__func__, __LINE__, (rule), first, second); \
- log_rule4((rule), first); \
- \
- } while (0)
-#else
-#define log_rule(rule) \
- do { \
- log_rule2(__func__, __LINE__, (rule), first, second); \
- } while (0)
-#endif
-
-#define log_rule_short(rule) \
- do { \
- log_rule2(__func__, __LINE__, (rule), first, second); \
- } while (0)
-
-// 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) \
- do { \
- log_rule3(LCURRENT, __func__, __LINE__, (rule)); \
- } while (0)
-#else
-#define log_rule_B(rule) \
- do { \
- log_rule3(LCURRENT, __func__, (rule)); \
- } while (0)
-#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.73.0/src/newlines.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/newlines.cpp
deleted file mode 100644
index c49bf32b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/newlines.cpp
+++ /dev/null
@@ -1,6609 +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 (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_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)
- {
- chunk_t *prev_2 = chunk_get_prev_nnl(pc); // Issue #3097
-
- // std::mutex* a; Issue #2692
- while ( chunk_is_token(prev_2, CT_DC_MEMBER)
- || chunk_is_token(prev_2, CT_TYPE))
- {
- prev_2 = chunk_get_prev(prev_2);
- }
-
- if (chunk_is_token(prev_2, CT_NEWLINE))
- {
- prev_2 = chunk_get_prev_nnl(prev_2);
- }
- LOG_FMT(LBLANKD, "%s(%d): prev_2 is '%s', orig_line is %zu\n",
- __func__, __LINE__, prev_2->text(), prev_2->orig_line);
- newline_min_after(prev_2, options::nl_var_def_blk_start(), PCF_VAR_DEF);
- }
- // set newlines within var def block
- else 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");
-
- 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)
- {
- log_rule_B("nl_assign_leave_one_liners");
-
- if ( check_nl_assign_leave_one_liners
- && options::nl_assign_leave_one_liners()
- && after->flags.test(PCF_ONE_LINER))
- {
- 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->flags.test(PCF_ONE_LINER)) // Issue #1511
- {
- 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_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\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);
- }
- }
- 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
- chunk_t *next2 = chunk_get_next(next);
-
- if ( next2 != nullptr
- && !(chunk_is_comment(next2)))
- {
- 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
- if ( ( chunk_is_token(prev, CT_SEMICOLON)
- || chunk_is_token(prev, CT_BRACE_CLOSE))
- && get_chunk_parent_type(prev) == CT_CLASS)
- {
- chunk_t *start = chunk_get_prev_type(prev, CT_CLASS, prev->level);
- chunk_t *tmp = start;
-
- // Is this a class 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)
- && options::nl_before_class() > tmp->nl_count)
- {
- log_rule_B("nl_before_class");
- blank_line_set(tmp, options::nl_before_class);
- }
- }
-
- 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.73.0/src/option.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option.cpp
deleted file mode 100644
index 6d3f7f34..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option.cpp
+++ /dev/null
@@ -1,1184 +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
-
-} // 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;
- }
- }
- 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))
- {
- ++cpd.line_number;
- process_option_line(line, filename, compat_level);
- }
- return(true);
-}
-
-
-//-----------------------------------------------------------------------------
-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.73.0/src/options.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options.h
deleted file mode 100644
index 520f45c0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options.h
+++ /dev/null
@@ -1,3879 +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 '*'.
-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 '*', 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 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.
-extern Option<iarf_e>
-sp_inside_sparen;
-
-// Add or remove space after '(' of control statements.
-//
-// Overrides sp_inside_sparen.
-extern Option<iarf_e>
-sp_inside_sparen_open;
-
-// Add or remove space before ')' of control statements.
-//
-// Overrides sp_inside_sparen.
-extern Option<iarf_e>
-sp_inside_sparen_close;
-
-// Add or remove space after ')' of control statements.
-extern Option<iarf_e>
-sp_after_sparen;
-
-// Add or remove space between ')' and '{' of 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 part of a for statement.
-extern Option<iarf_e>
-sp_before_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 ','.
-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 before the variadic '...' when preceded by a
-// non-punctuator.
-extern Option<iarf_e>
-sp_before_ellipsis;
-
-// Add or remove space between a type and '...'.
-extern Option<iarf_e>
-sp_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 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;
-
-// Add or remove space before class constructor ':'.
-extern Option<iarf_e>
-sp_before_constr_colon;
-
-// 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 '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.
-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.
-extern Option<iarf_e>
-sp_before_type_brace_init_lst_close;
-
-// Add or remove space inside an unnamed temporary direct-list-initialization.
-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 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 or embedded comment.
-extern Option<iarf_e>
-sp_before_tr_emb_cmt;
-
-// Number of spaces before a trailing or embedded comment.
-extern BoundedOption<unsigned, 0, 16>
-sp_num_before_tr_emb_cmt;
-
-// (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 member initializers.
-extern BoundedOption<unsigned, 0, 16>
-indent_ctor_init_leading; // = 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_sing_line_comments;
-
-// 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 wise to choose the same value for the option indent_case_brace.
-extern BoundedOption<unsigned, 0, 16>
-indent_switch_case;
-
-// 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 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 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;
-
-// How to indent goto labels.
-//
-// >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 after '{'. This also adds a newline before the
-// matching '}'.
-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;
-
-// 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.
-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 unbraced if statements 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 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;
-
-// 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 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;
-
-// 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 '#define' at the brace level. If false, these are
-// indented from column 1.
-extern Option<bool>
-pp_define_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.73.0/src/output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/output.cpp
deleted file mode 100644
index fd60ebab..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/output.cpp
+++ /dev/null
@@ -1,3319 +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 <regex>
-#include <set>
-
-#ifdef WIN32
-#include <map> // to get std::map
-#endif // WIN32
-
-
-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);
-
-
-/**
- * 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, 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)
-{
- const char *eol_marker = get_eol_marker();
-
- 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
-
-
-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, 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, cmt.cont_text);
-
- 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();
- 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
-
-
-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 },
-};
-
-
-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.73.0/src/output.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/output.h
deleted file mode 100644
index 2af77ea1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/output.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * @file output.h
- * prototypes for output.c
- *
- * @author Ben Gardner
- * @license GPL v2+
- */
-
-#ifndef OUTPUT_H_INCLUDED
-#define OUTPUT_H_INCLUDED
-
-#include "unc_text.h"
-
-#include <stdio.h>
-
-
-//! This renders the chunk list to a file.
-void output_parsed(FILE *pfile);
-
-
-//! This renders the chunk list to a file formatted as csv.
-void output_parsed_csv(FILE *pfile);
-
-
-//! This renders the chunk list to a file.
-void output_text(FILE *pfile);
-
-
-/**
- * See also it's preprocessor counterpart
- * add_long_closebrace_comment
- * in braces.cpp
- *
- * Note: since this concerns itself with the preprocessor -- which is line-oriented --
- * it turns out that just looking at pc->pp_level is NOT the right thing to do.
- * See a --parsed dump if you don't believe this: an '#endif' will be one level
- * UP from the corresponding #ifdef when you look at the tokens 'ifdef' versus 'endif',
- * but it's a whole another story when you look at their CT_PREPROC ('#') tokens!
- *
- * Hence we need to track and seek matching CT_PREPROC pp_levels here, which complicates
- * things a little bit, but not much.
- */
-void add_long_preprocessor_conditional_block_comment(void);
-
-
-#endif /* OUTPUT_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/remove_extra_returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/remove_extra_returns.cpp
deleted file mode 100644
index 23c51cfa..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/remove_extra_returns.cpp
+++ /dev/null
@@ -1,83 +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 "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.73.0/src/remove_extra_returns.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/remove_extra_returns.h
deleted file mode 100644
index 800ba9ca..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/remove_extra_returns.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * @file remove_extra_returns.h
- * prototypes for remove_extra_returns.cpp
- *
- * @author Guy Maurel
- * @license GPL v2+
- * extract from combine.h
- */
-
-#ifndef REMOVE_EXTRA_RETURNS_H_INCLUDED
-#define REMOVE_EXTRA_RETURNS_H_INCLUDED
-
-#include "chunk_list.h"
-
-
-/**
- * @brief Remove unnecessary returns
- * that is remove 'return;' that appears as the last statement in a function
- */
-void remove_extra_returns(void);
-
-
-#endif /* REMOVE_EXTRA_RETURNS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/space.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/space.cpp
deleted file mode 100644
index 5383b811..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/space.cpp
+++ /dev/null
@@ -1,3649 +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 },
-};
-
-
-/*
- * 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_short("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_short("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_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(first, CT_DECLSPEC)) // Issue 1289
- {
- log_rule_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(second, CT_NEWLINE)
- || chunk_is_token(second, CT_VBRACE_OPEN))
- {
- log_rule_short("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_short("FORCE");
- return(IARF_FORCE);
- }
-
- if ( chunk_is_token(first, CT_VBRACE_CLOSE)
- && second->type != CT_NL_CONT)
- {
- log_rule_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(second, CT_VSEMICOLON))
- {
- log_rule_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(first, CT_MACRO_FUNC))
- {
- log_rule_short("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 ( 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))
- {
- if (options::sp_cond_ternary_short() != IARF_IGNORE)
- {
- // 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)
- || 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 ( 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_short("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_short("IGNORE");
- return(IARF_IGNORE);
- }
- log_rule_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(second, CT_SEMICOLON))
- {
- 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) // a
- || chunk_is_token(first, CT_SEMICOLON)) // b
- {
- // empty, ie for (;;)
- // ^ is first // a
- // ^ is second // a
- // or
- // ^ is first // b
- // ^ is second // b
- // Add or remove space before a semicolon of an empty part of a for statement.
- log_rule("sp_before_semi_for_empty");
- return(options::sp_before_semi_for_empty());
- }
-
- if (options::sp_before_semi_for() != IARF_IGNORE)
- {
- // 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();
-
- 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)))
- {
- if (options::sp_endif_cmt() != IARF_IGNORE)
- {
- 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_emb_cmt() != IARF_IGNORE)
- && ( get_chunk_parent_type(second) == CT_COMMENT_END
- || get_chunk_parent_type(second) == CT_COMMENT_EMBED))
- {
- // Add or remove space before a trailing or embedded comment.
- // Number of spaces before a trailing or embedded comment.
- log_rule("sp_num_before_tr_emb_cmt");
- min_sp = options::sp_num_before_tr_emb_cmt();
- return(options::sp_before_tr_emb_cmt());
- }
-
- if (get_chunk_parent_type(second) == CT_COMMENT_END)
- {
- switch (second->orig_prev_sp)
- {
- case 0:
- log_rule_short("orig_prev_sp-REMOVE");
- return(IARF_REMOVE);
-
- case 1:
- log_rule_short("orig_prev_sp-FORCE");
- return(IARF_FORCE);
-
- default:
- log_rule_short("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))
- {
- if (get_chunk_parent_type(first) == CT_FOR)
- {
- if ( (options::sp_after_semi_for_empty() != IARF_IGNORE)
- && 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 ( (options::sp_after_semi_for() != IARF_IGNORE)
- && 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.
- 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_short("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
- log_rule_short("FORCE");
- return(IARF_FORCE);
- }
-
- // "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_short("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_short("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_short("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))
- {
- if (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_short("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 ( 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 ( options::sp_paren_comma() != IARF_IGNORE
- && ( 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 ','.
- 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_short("FORCE");
- return(IARF_FORCE);
- }
- }
-
- if (chunk_is_token(first, CT_ELLIPSIS))
- {
- if (CharTable::IsKw1(second->str[0]))
- {
- log_rule_short("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 (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_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- // handle '~'
- if (chunk_is_token(first, CT_DESTRUCTOR))
- {
- log_rule_short("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 ( 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 ( 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 before '(' of 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 ('.
- if (options::sp_enum_paren() != IARF_IGNORE)
- {
- 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_short("IGNORE");
- return(IARF_IGNORE);
- }
-
- 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_short("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_short("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;
- }
- // TODO log_rule??
- 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 ...'.
- if (options::sp_angle_word() != IARF_IGNORE)
- {
- 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))
- {
- if ( options::sp_after_byref_func() != IARF_IGNORE
- && ( get_chunk_parent_type(first) == CT_FUNC_DEF
- || 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");
- 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");
- return(options::sp_after_byref());
- }
- }
-
- if ( chunk_is_token(second, CT_BYREF)
- && !chunk_is_token(first, CT_PAREN_OPEN))
- {
- // Add or remove space before a reference sign '&', if followed by a function
- // prototype or function definition.
- if (options::sp_before_byref_func() != IARF_IGNORE)
- {
- chunk_t *next = chunk_get_next(second);
-
- if ( next != nullptr
- && ( get_chunk_parent_type(next) == CT_FUNC_DEF
- || get_chunk_parent_type(next) == CT_FUNC_PROTO))
- {
- log_rule("sp_before_byref_func");
- return(options::sp_before_byref_func());
- }
- }
-
- // 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.
- if (options::sp_before_unnamed_byref() != IARF_IGNORE)
- {
- chunk_t *next = chunk_get_next_nc(second);
-
- if ( next != nullptr
- && next->type != CT_WORD)
- {
- log_rule("sp_before_unnamed_byref");
- return(options::sp_before_unnamed_byref());
- }
- }
- // Add or remove space before a reference sign '&'.
- log_rule("sp_before_byref");
- 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 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_short("IGNORE");
- return(IARF_IGNORE);
- }
-
- // spaces between function and open paren
- if ( chunk_is_token(first, CT_FUNC_CALL)
- || 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_short("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());
- }
- // Must be an indirect/chained function call?
- log_rule_short("REMOVE");
- return(IARF_REMOVE); // TODO: make this configurable?
- }
-
- // 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_short("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_short("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(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.
- 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.
- 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_short("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_short("ADD");
- return(IARF_ADD);
- }
-
- if ( chunk_is_token(first, CT_DELEGATE)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- log_rule_short("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_short("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 (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_short("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_short("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 ( 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 (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_short("ADD");
- return(IARF_ADD);
- }
-
- // PAWN-specific: "state (condition) next"
- if (get_chunk_parent_type(first) == CT_STATE)
- {
- log_rule_short("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());
- }
- // 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 (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 (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( ... )"
- if ( chunk_is_token(second, CT_SPAREN_CLOSE)
- && (options::sp_inside_sparen_close() != IARF_IGNORE))
- {
- // Add or remove space before ')' of 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)
- && (options::sp_inside_sparen_open() != IARF_IGNORE))
- {
- // Add or remove space after '(' of 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)
- || chunk_is_token(second, CT_SPAREN_CLOSE))
- {
- // Add or remove space inside '(' and ')' of 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 ( 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 ( (options::sp_after_constr_colon() != IARF_IGNORE)
- && 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 ( (options::sp_before_constr_colon() != IARF_IGNORE)
- && 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 ( (options::sp_before_case_colon() != IARF_IGNORE)
- && 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_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(second, CT_DOT))
- {
- log_rule_short("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 != IARF_REMOVE)
- {
- arg = arg | IARF_ADD;
- }
- // TODO check it
- 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_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if ( chunk_is_token(first, CT_PTR_TYPE)
- && (options::sp_ptr_star_paren() != IARF_IGNORE)
- && ( 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");
- return(options::sp_ptr_star_paren());
- }
-
- if ( chunk_is_token(first, CT_PTR_TYPE)
- && chunk_is_token(second, CT_PTR_TYPE)
- && (options::sp_between_ptr_star() != IARF_IGNORE))
- {
- // Add or remove space between pointer stars '*'.
- log_rule("sp_between_ptr_star");
- return(options::sp_between_ptr_star());
- }
-
- if ( chunk_is_token(first, CT_PTR_TYPE)
- && (options::sp_after_ptr_star_func() != IARF_IGNORE)
- && ( get_chunk_parent_type(first) == CT_FUNC_DEF
- || get_chunk_parent_type(first) == CT_FUNC_PROTO
- || get_chunk_parent_type(first) == CT_FUNC_VAR))
- {
- // Add or remove space after a pointer star '*', if followed by a function
- // prototype or function definition.
- log_rule("sp_after_ptr_star_func");
- return(options::sp_after_ptr_star_func());
- }
-
- if ( chunk_is_token(first, CT_PTR_TYPE)
- && 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());
- }
-
- if ( ( get_chunk_parent_type(first) == CT_FUNC_VAR
- || get_chunk_parent_type(first) == CT_FUNC_TYPE)
- && options::sp_after_ptr_block_caret() != IARF_IGNORE)
- {
- // 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());
- }
-
- if ( chunk_is_token(second, CT_QUALIFIER)
- && (options::sp_after_ptr_star_qualifier() != IARF_IGNORE))
- {
- // Add or remove space after pointer star '*', if followed by a qualifier.
- log_rule("sp_after_ptr_star_qualifier");
- return(options::sp_after_ptr_star_qualifier());
- }
-
- // Add or remove space after pointer star '*', if followed by a word.
- if (options::sp_after_ptr_star() != IARF_IGNORE)
- {
- log_rule("sp_after_ptr_star");
- return(options::sp_after_ptr_star());
- }
- }
-
- if ( chunk_is_token(first, CT_PTR_TYPE)
- && 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");
- return(options::sp_after_ptr_star());
- }
-
- if ( chunk_is_token(second, CT_PTR_TYPE)
- && first->type != CT_IN)
- {
- if ( language_is_set(LANG_CS)
- && chunk_is_nullable(second))
- {
- min_sp = 0;
- log_rule_short("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");
- 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");
- 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");
- 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_short("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.
- 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.
- 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 ( 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 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_short("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_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- if (chunk_is_token(first, CT_CS_SQ_COLON))
- {
- log_rule_short("FORCE");
- return(IARF_FORCE);
- }
-
- if (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 (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 (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 (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 (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)
- {
- log_rule_short("FORCE");
- return(IARF_FORCE);
- }
-
- if (chunk_is_token(first, CT_COMMENT))
- {
- log_rule_short("FORCE");
- return(IARF_FORCE);
- }
-
- 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 ( 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 (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 ( 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_short("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_short("REMOVE");
- return(IARF_REMOVE);
- }
-
- // Issue #1733
- if ( chunk_is_token(first, CT_OPERATOR_VAL)
- && chunk_is_token(second, CT_TYPE))
- {
- log_rule_short("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_WHILE_OF_DO)
- && chunk_is_token(second, CT_PAREN_OPEN))
- {
- // Add or remove space between 'while' and '('.
- if (options::sp_while_paren_open() != IARF_IGNORE)
- {
- log_rule("sp_while_paren_open");
- return(options::sp_while_paren_open());
- }
- log_rule("sp_before_sparen");
- return(options::sp_before_sparen());
- }
-
- // 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_short("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_short("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);
- }
- // =============================================================
- // 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_short("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_emb_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_emb_cmt() == IARF_IGNORE
- || ( get_chunk_parent_type(next) != CT_COMMENT_END
- && get_chunk_parent_type(next) != CT_COMMENT_EMBED))
- && ( 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.73.0/src/token_enum.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/token_enum.h
deleted file mode 100644
index 81caf0d8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/token_enum.h
+++ /dev/null
@@ -1,398 +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_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.73.0/src/tokenize.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize.cpp
deleted file mode 100644
index f0a4e2d9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize.cpp
+++ /dev/null
@@ -1,2866 +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>
-
-#ifdef WIN32
-#include <stack> // to get std::stack
-#endif // WIN32
-
-
-#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.73.0/src/tokenize_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize_cleanup.cpp
deleted file mode 100644
index 5f7362b9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize_cleanup.cpp
+++ /dev/null
@@ -1,1724 +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__, tmp->text());
- }
- }
- }
-} // 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);
-
- if (next->type != CT_PAREN_OPEN)
- {
- 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.73.0/src/unc_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_tools.cpp
deleted file mode 100644
index 83e50c7c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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);
- * 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.73.0/src/uncrustify.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify.cpp
deleted file mode 100644
index bc01f53e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify.cpp
+++ /dev/null
@@ -1,2648 +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 "parens.h"
-#include "parent_for_pp.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 <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 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, 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"
- " -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 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);
- }
- }
-
- // 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);
- }
- else if (source_file != nullptr)
- {
- // Doing a single file
- do_source_file(source_file, output_file, parsed_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);
- }
-
- // 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, 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, 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,
- 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, 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);
- }
-
- 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();
-
- // 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, 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);
-
- 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();
- }
- // 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;
-
- 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;
- } 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;
-
- 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;
- }
- }
- } 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();
- }
- // 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.73.0/src/uncrustify.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify.h
deleted file mode 100644
index d193a264..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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, 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.73.0/src/uncrustify_emscripten.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_emscripten.cpp
deleted file mode 100644
index d7b89081..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_emscripten.cpp
+++ /dev/null
@@ -1,1217 +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
- * -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, 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.73.0/tests/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/CMakeLists.txt
deleted file mode 100644
index 0dae0096..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/CMakeLists.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-find_package(Git QUIET)
-
-# sorted by lexicographic order
-set(test_suites
- c-sharp.test
- c.test
- cpp.test
- d.test
- ecma.test
- imported.test
- java.test
- objective-c.test
- pawn.test
- vala.test
-)
-
-if (NOT ENABLE_CODECOVERAGE)
- list(APPEND test_suites staging.test)
-endif()
-
-set(stdoc
- "Create a separate CTest test for each test case"
- " this is slower, especially with Python 3"
-)
-option("UNCRUSTIFY_SEPARATE_TESTS" "${stdoc}" OFF)
-if (UNCRUSTIFY_SEPARATE_TESTS)
- set(tests_ctest_file "${CMAKE_CURRENT_BINARY_DIR}/tests.cmake")
- set_property(DIRECTORY PROPERTY TEST_INCLUDE_FILE ${tests_ctest_file})
-
- add_custom_command(
- OUTPUT ${tests_ctest_file}
- COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py
- --executable $<TARGET_FILE:uncrustify>
- --git ${GIT_EXECUTABLE}
- --python ${PYTHON_EXECUTABLE}
- --write-ctest ${tests_ctest_file}
- --cmake-config "$<CONFIGURATION>"
- VERBATIM
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- DEPENDS ${test_suites}
- )
-
- add_custom_target(register_tests ALL DEPENDS ${tests_ctest_file})
-else()
- foreach(suite IN LISTS test_suites)
- string(REPLACE ".test" "" lang "${suite}")
- add_test(NAME ${lang}
- COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py ${lang}
- --executable $<TARGET_FILE:uncrustify>
- -d --git ${GIT_EXECUTABLE}
- --result-dir ${CMAKE_CURRENT_BINARY_DIR}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- )
- endforeach()
-endif()
-
-if (NOT ENABLE_CODECOVERAGE)
- add_test(
- NAME sources_format
- COMMAND ${PYTHON_EXECUTABLE} run_sources_tests.py
- --executable $<TARGET_FILE:uncrustify>
- -d --git ${GIT_EXECUTABLE}
- --result-dir ${CMAKE_CURRENT_BINARY_DIR}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- )
-endif()
-
-add_test(
- NAME cli_options
- COMMAND ${PYTHON_EXECUTABLE}
- test_cli_options.py
- --config $<CONFIG>
- --build ${uncrustify_BINARY_DIR}
- --diff
- ${_configs}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cli
-)
-
-add_custom_target(update-cli-options
- COMMAND ${PYTHON_EXECUTABLE}
- test_cli_options.py
- --config $<CONFIG>
- --build ${uncrustify_BINARY_DIR}
- --apply
- DEPENDS uncrustify
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cli
-)
-
-add_test(NAME sanity COMMAND uncrustify --help)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c-sharp.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c-sharp.test
deleted file mode 100644
index 13706e2f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c-sharp.test
+++ /dev/null
@@ -1,144 +0,0 @@
-#
-# Test cases specifically for the C# language.
-#
-# Range: 10000 - 19999
-# test.name config.file input.file
-
-10000 mono.cfg cs/simple.cs
-10001 getset.cfg cs/getset.cs
-10002 ben_032.cfg cs/simple.cs
-10003 ben_033.cfg cs/region.cs
-10010 ben_034.cfg cs/var-member.cs
-10011 indent_columns-3.cfg cs/strings.cs
-10013 625_where-constraints.cfg cs/625_where-constraints.cs
-
-10020 region-0.cfg cs/region.cs
-10021 region-1.cfg cs/region.cs
-10022 region-2.cfg cs/region.cs
-10023 region-3.cfg cs/region.cs
-
-10030 sort_imports.cfg cs/sort_using.cs
-10031 mod_sort_using-t.cfg cs/bug_i_935.cs
-10032 sort_using_categ.cfg cs/sort_using_categ.cs
-
-10040 tcf.cfg cs/tcf.cs
-10041 tcf.cfg cs/gs.cs
-10042 ben_036.cfg cs/exception-filters.cs
-
-10050 cs_generics.cfg cs/generics.cs
-
-10060 ben_037.cfg cs/unsafe.cs
-10065 UNI-1975.cfg cs/UNI-1975.cs
-
-10070 ben_038.cfg cs/utf16le.cs
-10071 ben_038.cfg cs/utf16be.cs
-10072 ben_038.cfg cs/utf16le_no_bom.cs
-10073 ben_038.cfg cs/utf16be_no_bom.cs
-10074 UNI-2020.cfg cs/UNI-2020.cs
-
-10080 ben_042.cfg cs/property.cs
-
-10090 ben_043.cfg cs/string_multi.cs
-
-10100 empty.cfg cs/bug_600.cs
-10101 sf607.cfg cs/sf607.cs
-
-10110 mda_space_a.cfg cs/mdarray_space.cs
-10111 sp_after_comma-a.cfg cs/mdarray_space.cs
-10112 mda_space_c.cfg cs/mdarray_space.cs
-
-10119 empty.cfg cs/preserveTabs.cs
-10120 empty.cfg cs/cmt_backslash_eol.cs
-
-10130 sp_between_new_paren.cfg cs/sp_between_new_paren.cs
-
-10140 ben_044.cfg cs/remove_semi.cs
-
-10150 ben_045.cfg cs/operator-null-conditional.cs
-10151 sp_assign-a.cfg cs/operator_null-coalescing-assignment.cs
-
-10200 empty.cfg cs/logger.cs
-
-10300 empty.cfg cs/1822.cs
-
-10628 empty.cfg cs/sf628.cs
-10160 empty.cfg cs/delegate.cs
-10161 indent_cs_delegate_brace-t.cfg cs/delegate.cs
-12001 bug_620.cfg cs/bug_620.cs
-12002 empty.cfg cs/nullable_prop.cs
-12003 ben_043.cfg cs/fncall_as_ctor_in_attr.cs
-12004 verbatim_strings.cfg cs/verbatim_strings.cs
-12005 empty.cfg cs/bug_1591.cs
-
-12101 indent_using_block-f.cfg cs/bug_i_679.cs
-
-12102 mod_full_brace_nl_block_rem_mlcond-0.cfg cs/mod_full_brace_nl_block_rem_mlcond.cs
-12103 mod_full_brace_nl_block_rem_mlcond-1.cfg cs/mod_full_brace_nl_block_rem_mlcond.cs
-12104 bug_1637.cfg cs/bug_1637.cs
-12105 bug_1650.cfg cs/bug_1650.cs
-12106 bug_1650.cfg cs/UNI-40685.cs
-12107 mod_full_paren_if_bool.cfg cs/mod_full_paren_if_bool.cs
-12108 Issue_2705.cfg cs/Issue_2705.cs
-
-# Adopt some UT tests
-10012 empty.cfg cs/621_this-spacing.cs
-10014 empty.cfg cs/630_bad-new-init-semicolon-removal.cs
-10015 misc-failures.cfg cs/misc-failures.cs
-10016 new-constraint-paren-space.cfg cs/new-constraint-paren-space.cs
-10018 empty.cfg cs/delete-space-oc.mm
-10019 empty.cfg cs/func-param-wrap-oc.mm
-10027 U01-Cs.cfg cs/oneline_property.cs
-10028 U02-Cs.cfg cs/ifcolalign.cs
-10029 U03-Cs.cfg cs/when.cs
-10033 U11-Cpp.cfg cs/objc.mm
-10034 U12-Cpp.cfg cs/asm.h.mm
-10035 U13-Cpp.cfg cs/definesalign.h.mm
-10036 U14-Cpp.cfg cs/inttypes.h.mm
-10039 615_nested_usings.cfg cs/615_nested-usings.cs
-10044 U04-Cs.cfg cs/ifcomment.cs
-10045 UNI-1288.cfg cs/UNI-1288.cs
-10046 U15-Cpp.cfg cs/UNI-1333.mm
-10051 UNI-1338.cfg cs/UNI-1338.cs
-10055 U06-Cs.cfg cs/UNI-1345.cs
-10066 UNI-1977.cfg cs/UNI-1977.cs
-10067 UNI-1978.cfg cs/UNI-1978.cs
-10075 UNI-2021.cfg cs/UNI-2021.cs
-10076 UNI-1343.cfg cs/UNI-1343.cs
-10077 U09-Cs.cfg cs/UNI-1919.cs
-10078 U10-Cs.cfg cs/UNI-3484.cs
-10102 U24-Cpp.cfg cs/pp-ignore.mm
-10103 U11-Cs.cfg cs/UNI-2506.cs
-10104 empty.cfg cs/UNI-2505.cs
-11011 620_getset-brace.cfg cs/620_getset-brace.cs
-11030 U08-Cpp.cfg cs/argtypes.mm
-11031 U09-Cpp.cfg cs/casting.mm
-11032 U10-Cpp.cfg cs/newlines.mm
-11072 U07-Cs.cfg cs/UNI-2007.cs
-11073 U08-Cs.cfg cs/UNI-2008.cs
-20010 UNI-32658.cfg cs/UNI-32658.cs
-20011 bug_1620.cfg cs/bug_1620.cs
-
-60004 UNI-2684.cfg cs/UNI-2684.cs
-60005 UNI-2685.cfg cs/UNI-2685.cs
-60007 UNI-3083.cfg cs/UNI-3083.cs
-60008 U-J.cfg cs/UNI-17253.cs
-60009 UNI-9917.cfg cs/UNI-9917.cs
-60011 UNI-11095.cfg cs/UNI-11095.mm
-60012 U13-Cs.cfg cs/UNI-12303.cs
-60013 UNI-13955.cfg cs/UNI-13955.cs
-60015 UNI-14131.cfg cs/UNI-14131.cs
-60016 UNI-11662.cfg cs/UNI-11662.cs
-60018 UNI-18777.cfg cs/UNI-18777.cs
-60019 empty.cfg cs/UNI-18780.cs
-60020 UNI-18829.cfg cs/UNI-18829.cs
-60023 UNI-18437.cfg cs/UNI-18437.cs
-60024 U15-Cs.cfg cs/UNI-19644.cs
-60026 UNI-19895.cfg cs/UNI-19895.cs
-60033 UNI-21730.cfg cs/UNI-21730.cs
-60036 UNI-11993.cfg cs/UNI-11993.cs
-60037 UNI-29933.cfg cs/UNI-29933.cs
-60040 UNI-30498_2.cfg cs/UNI-30498_2.cs
-60041 squeeze-paren-close-Option.cfg cs/squeeze-paren-close-Option.cs
-60042 indent-multistring-coulmn1.cfg cs/indent-multistring-coulmn1.cs
-60044 UNI-37241.cfg cs/UNI-37241.cs
-60045 nl_before_after.cfg cs/add-nl-before-namespace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c.test
deleted file mode 100644
index 50d24735..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/c.test
+++ /dev/null
@@ -1,397 +0,0 @@
-#
-# Test cases specifically for the C language.
-#
-# Range: 00000 - 09999
-# test.name config.file input.file
-
-
-# little general tests ====================================================
-
-00000 indent_columns-3.cfg c/comment-indent.c
-00001 cpp_to_c-1.cfg c/comment-indent.c
-00002 cpp_to_c-2.cfg c/comment-indent.c
-00003 cpp_to_c-3.cfg c/comment-indent.c
-00004 indent-1.cfg c/switch.c
-00005 ben_047.cfg c/cmt-align.c
-00006 indent_columns-3.cfg c/comment-convert.c
-00007 cpp_to_c-1.cfg c/comment-convert.c
-00008 cpp_to_c-2.cfg c/comment-convert.c
-00009 cpp_to_c-3.cfg c/comment-convert.c
-
-
-# brace styles
-
-00010 ben_048.cfg c/braces.c
-00011 brace-allman.cfg c/braces.c
-00012! brace-banner.cfg c/braces.c
-00013 brace-gnu.cfg c/braces.c
-00014 brace-kr.cfg c/braces.c
-00015 brace-ws.cfg c/braces.c
-00016 brace-ws2.cfg c/braces.c
-
-00020 ben_049.cfg c/define-if-indent.c
-00050 brace-remove-2.cfg c/brace-remove.c
-00051 brace-remove-all.cfg c/brace-remove.c
-00052 brace-remove-all.cfg c/brace-remove2.c
-00053 nl_brace_test.cfg c/brace.c
-00054 if_chain.cfg c/if_chain.c
-00055 cgal.cfg c/braces-2.c
-00056 brace-remove-all.cfg c/brace-remove3.c
-00057 if_chain.cfg c/brace-remove3.c
-00058 brace-kr-nobr.cfg c/if_chain.c
-
-00060 ben_050.cfg c/braces-2.c
-00061 ben_051.cfg c/braces-3.c
-00062 ben_052.cfg c/braces-4.c
-00065 ben_053.cfg c/braces-5.c
-00066 ben_054.cfg c/vb-while.c
-00067 ben_055.cfg c/vb-do.c
-
-
-00068 ben_056.cfg c/bsnl.c
-00069 ben_057.cfg c/vb-pp.c
-
-00070 ben_058.cfg c/return-multi.c
-00071 ben_042.cfg c/include_define.h
-00072 star_pos-0.cfg c/align-proto.c
-00073 empty.cfg c/nl_proto_endif.c
-00074 clang-has_include.cfg c/clang-has_include.h
-00076 1225.cfg c/1225.c
-
-00081 else-if-1.cfg c/else-if.c
-00082 else-if-2.cfg c/else-if.c
-
-00091 cond-1.cfg c/cond.c
-00092 indent_columns-3.cfg c/cond.c
-00093 sp_cond_colon.cfg c/cond.c
-
-00101 ben_061.cfg c/bugs-1.c
-00102 space_indent_columns-3.cfg c/bugs-2.c
-00103 ben_063.cfg c/bugs-3.c
-00104 ben_064.cfg c/bugs-4.c
-00105 ben_065.cfg c/bugs-5.c
-00106 ben_011.cfg c/bugs-6.c
-00107 ben_011.cfg c/bugs-7.c
-00108 indent_columns-3.cfg c/bugs-8.c
-
-00110 ben_069.cfg c/misc.c
-00111 brace-kr-br.cfg c/misc.c
-
-00120 sp_cmt_cpp_start-r.cfg c/sp_cmt_cpp_start.c
-00121 sp_cmt_cpp_start-a.cfg c/sp_cmt_cpp_start.c
-00122 sp_cmt_cpp_start_force.cfg c/sp_cmt_cpp_start.c
-00123 cmt_reflow.cfg c/cmt_reflow.c
-
-00130 ben_070.cfg c/minus-minus.c
-00135 nepenthes.cfg c/br_cmt.c
-
-00140 ben_071.cfg c/global-vars.c
-00141 ben_072.cfg c/deref.c
-00142 ben_073.cfg c/type-cast.c
-00143 ben_074.cfg c/t3.in.c
-00144 ben_075.cfg c/align-proto-vars.c
-00145 ben_076.cfg c/vardefcol.c
-
-
-# casts
-
-00150 ben_077.cfg c/casts.c
-00151 cast-sp-r.cfg c/casts.c
-00152 cast-sp-a.cfg c/casts.c
-00153 cast-type.cfg c/casts.c
-00154 sp_after_cast.cfg c/casts.c
-00155 ben_078.cfg c/cast_brace.c
-
-
-# fcn indents
-
-00160 indent_func_param.cfg c/fcn_indent.c
-00161 indent_func_call_param.cfg c/fcn_indent.c
-00162 indent_func_def_param.cfg c/fcn_indent.c
-00163 indent_func_proto_param.cfg c/fcn_indent.c
-00164 rdan.cfg c/fcn_indent_func_def_col1.c
-00165 sp_func_call_user_inside_fparen.cfg c/sp_func_call_user_inside_fparen.c
-
-00170 empty.cfg c/beautifier-off.c
-00180 sf538.cfg c/lvalue.c
-
-
-# switch & case stuff
-
-00201 case-1.cfg c/case.c
-00202 case-2.cfg c/case.c
-00203 case-3.cfg c/case.c
-00204 bug_1718.cfg c/bug_1718.c
-00205 nl_before_return_false.cfg c/case-nl_before_return.c
-00206 nl_before_return_true.cfg c/case-nl_before_return.c
-
-
-# structure initializers
-
-00301 ben_079.cfg c/align-struct-init.c
-00302 ben_080.cfg c/one-liner-init.c
-00303 1liner-split.cfg c/one-liner-init.c
-00304 1liner-no-split.cfg c/one-liner-init.c
-00305 ben_081.cfg c/one-liner-define.c
-
-00310 empty.cfg c/sp_embed_comment.c
-
-00320 rdan.cfg c/indent_first_bool_expr.c
-
-
-# aligning tresholds
-
-00401 align-1.cfg c/align-equ.c
-00402 align-1.cfg c/align-var.c
-00403 align-2.cfg c/align-var.c
-00404 align-3.cfg c/align-var.c
-00405 align-3.cfg c/bits.c
-00406 bug_i_771.cfg c/bug_i_771.c
-
-00411 align_typedef_gap-3_span-5.cfg c/align-typedef.c
-00412 align_typedef_gap-3_span-5.cfg c/align-typedef.c
-00413 align_typedef_func-1.cfg c/align-typedef.c
-00414 align_typedef_func-2.cfg c/align-typedef.c
-00415 align_stack.cfg c/align_stack.c
-00416 align_sf_call_thresh_416.cfg c/align_sf_call_thresh_416.c
-00417 align_sf_call_thresh_417.cfg c/align_sf_call_thresh_417.c
-00418 align_sf_call_span_418.cfg c/align_sf_call_span_418.c
-00419 align_sf_call_span_419.cfg c/align_sf_call_span_419.c
-00420 Issue-2278.cfg c/Issue-2278.c
-
-00421 nl_ds_struct_enum_cmt-t.cfg c/nl_ds_struct_enum.c
-00422 nl_ds_struct_enum-2.cfg c/nl_ds_struct_enum.c
-00423 bug_1702.cfg c/bug_1702.c
-
-00430 empty.cfg c/paren-indent.c
-00431 indent_paren_close-1.cfg c/paren-indent.c
-00432 indent_paren_close-2.cfg c/paren-indent.c
-
-00440 bug_489.cfg c/bug_489.c
-
-00451 code_width-80.cfg c/enum_gallery.c
-00452 nl_enum_own_lines-a.cfg c/enum_gallery.c
-00453! nl_enum_own_lines-3.cfg c/enum_gallery.c
-00454 nl_enum_own_lines-4.cfg c/enum_gallery.c
-
-
-# boolean and comma positioning
-
-00501 bool-pos-eol.cfg c/bool-pos.c
-00502 bool-pos-sol.cfg c/bool-pos.c
-00503 pos_compare-sol.cfg c/pos_compare.c
-00504 pos_compare-eol.cfg c/pos_compare.c
-00505 pos_conditional-l.cfg c/pos_conditional.c
-00506 pos_conditional-t.cfg c/pos_conditional.c
-00510 bool-pos-eol-break.cfg c/bool-pos.c
-00511 bool-pos-sol-break.cfg c/bool-pos.c
-00512 bool-pos-eol-force.cfg c/bool-pos.c
-00513 bool-pos-sol-force.cfg c/bool-pos.c
-00514 my_conf.cfg c/my_infile.c
-
-00600 indent_columns-3.cfg c/dos.c
-00601 indent_columns-3.cfg c/mac.c
-00611 empty.cfg c/pp-space.c
-00612 pp-indent-2.cfg c/pp-space.c
-00613 pp_indent-a.cfg c/pp-space.c
-00614 pp-space.cfg c/pp-space.c
-00615 pp-indent-2.cfg c/pp-nest.c
-00616 pp_if_indent-1.cfg c/pp-if-indent.c
-00617 rdan.cfg c/pp-if-indent.c
-00618 pp_if_indent-4.cfg c/pp-if-indent.c
-
-00620 ben_083.cfg c/indent-assign.c
-00621 nl_endif.cfg c/nl_endif.c
-00622 indent_assign.cfg c/indent-off-after-assign.c
-
-00631 nl_assign1.cfg c/nl_assign.c
-00632 nl_assign2.cfg c/nl_assign.c
-00633 nl_assign1.cfg c/bug_3156.c
-
-# function def newlines
-00701 func-def-1.cfg c/function-def.c
-00702 func-def-2.cfg c/function-def.c
-00703 func-def-3.cfg c/function-def.c
-
-00710 add_long_closebrace_comment_1.cfg c/add_long_comment.c
-
-# nl_after_semicolon and nl_after_open_brace
-
-00721 nl_semicolon.cfg c/nl-semicolon.c
-
-# function types
-
-00801 ben_084.cfg c/fcn_type.c
-00802 ben_085.cfg c/funcfunc.c
-00803 sf537.cfg c/fcn_type.c
-
-# code width
-
-00901 width.cfg c/code_width.c
-00902 width-2.cfg c/code_width.c
-00903 width-3.cfg c/code_width.c
-
-# pascal ptr_type
-
-00910 pascal_ptr.cfg c/pascal_ptr.c
-00911 empty_body.cfg c/pascal_ptr.c
-
-01000 mod-paren.cfg c/mod-paren.c
-01001 nl-comment.cfg c/nl-comment.c
-01002 mod-paren2.cfg c/mod-paren.c
-
-01005 mod_case_brace_add.cfg c/mod_case_brace.c
-01006 mod_case_brace_rm.cfg c/mod_case_brace.c
-01007 mod_move_case_brace.cfg c/mod_case_brace.c
-
-01011 del_semicolon.cfg c/semicolons.c
-01012 ben_086.cfg c/semicolons.c
-
-01015 empty.cfg c/paren_indent.c
-01016 align_attr.cfg c/align_attr.c
-
-01020 kw_subst.cfg c/kw_subst.c
-01021 kw_subst3.cfg c/hello.c
-01022 kw_subst3.cfg c/kw_subst.c
-
-01030 cmt_indent_multi-f.cfg c/multi.h
-
-01035 empty.cfg c/func_wrap.c
-01036 sp_inside_fparen-f.cfg c/func_wrap.c
-01037 type_wrap.cfg c/type_wrap.c
-
-01040 newline_after_endif.cfg c/newline_after_endif.c
-
-01050 func_call_user.cfg c/func_call_user.c
-
-01060 empty.cfg c/backslash-newline-lex.c
-
-01070 label_colon_nl_1.cfg c/various_colons.c
-01071 label_colon_nl_2.cfg c/various_colons.c
-
-01080 empty.cfg c/bug_1196.c
-
-# big general tests
-
-02000 ben_087.cfg c/i2c-core.c
-02001 preproc-cleanup.cfg c/directfb.h
-02002 ben2.cfg c/i2c-core.c
-
-# clark's style - blank lines before and after flow control, indented comments
-
-02100 clark.cfg c/i2c-core.c
-02101 clark.cfg c/comment-indent.c
-
-02200 xml-str.cfg c/xml.c
-02201 xml-str.cfg c/align-string.c
-
-02300 ben_088.cfg c/preproc-if.c
-02301 d.cfg c/preproc-if.c
-02302 cpp_to_c-1.cfg c/nl-cont.c
-02303 cpp_to_c-1.cfg c/nl-cont2.c
-
-02310 ben_089.cfg c/empty-for.c
-02311 ben_090.cfg c/pragma.c
-
-02315 pp_ret.cfg c/pp_ret.c
-
-02320 nl_create_one_liner.cfg c/nl_create_one_liner.c
-02325 sort_imports.cfg c/sort_include.c
-
-02330 leave_one_liners.cfg c/one_liners.c
-
-# some embedded sql stuff
-
-02400 ben_091.cfg sql/mysql.sqc C
-02401 ben_092.cfg sql/sta-select.sqc C
-02402 issue_527.cfg sql/issue_527.sqc C
-
-02410 pp_if_indent-0.cfg c/ifdef-indent.c
-02411 pp_if_indent-1.cfg c/ifdef-indent.c
-02412 pp_if_indent-2.cfg c/ifdef-indent.c
-02413 pp_if_indent-3.cfg c/ifdef-indent.c
-02414 nl_whole_file_ifdef.cfg c/whole_file_ifdef.c
-02415 endif.cfg c/endif.c
-02416 cmt_nl_end.cfg c/cmt_nl_end.c
-
-02421 cmt_multi_check_last-f.cfg c/cmt_multi.c
-02422 empty.cfg c/cmt_multi.c
-02423 empty.cfg c/cmt_multi_utf8.c
-
-02431 align_right_cmt_gap-1.cfg c/cmt_right_align.c
-02432 space_indent_columns-3.cfg c/cmt_right_align.c
-
-02440 empty.cfg c/string_utf8.c
-02441 empty.cfg c/utf8-identifiers.c
-
-02451 return-1.cfg c/nl_return_expr.c
-02452 return-2.cfg c/nl_return_expr.c
-02453 return-3.cfg c/nl_return_expr.c
-02454 return-4.cfg c/nl_return_expr.c
-
-02455 mod_paren_on_return-a.cfg c/macro-returns.c
-02456 mod_paren_on_return-r.cfg c/macro-returns.c
-02457 nl_before_return_true.cfg c/nl_before_return.c
-
-02460 freebsd.cfg c/freebsd.c
-
-02486 doxy-comment-no.cfg c/doxy-comment.c
-02487 doxy-comment-yes.cfg c/doxy-comment.c
-
-02501 ger.cfg c/custom_types_ssl.c
-02502 custom_types_ssl.cfg c/custom_types_ssl.c
-#02503 ger.cfg c/pp_concat_asn1.h
-
-02504 align_keep_extra.cfg c/align_keep_extra.c
-
-02510 ben_093.cfg c/asm.c
-10004 ben_094.cfg c/pragma_asm.c
-
-07630 indent-vbrace.cfg c/indent-vbrace.c
-
-08399 ben_095.cfg c/gh399.c
-
-09594 indent_columns-3.cfg c/sf594.c
-09588 empty.cfg c/sf588.c
-
-09601 sp_after_sparen.cfg c/sp_after_sparen.c
-
-09602 bug_671.cfg c/bug_671.c
-
-09603 indent_ternary_operator-1.cfg c/indent_ternary-1.c
-09604 indent_ternary_operator-2.cfg c/indent_ternary-2.c
-
-09605 sp_arith-f.cfg c/negative_value.c
-09606 ptr-arith.cfg c/extern.c
-09607 ptr-arith.cfg c/attribute.c
-09608 aet-func_call_user.cfg c/func_call_user2.c
-09609 Issue_2279.cfg c/Issue_2279.c
-09610 force_tab_after_define-t.cfg c/bug_i_876.c
-09611 space_indent_columns-4.cfg c/bug_i_222.c
-09612 empty.cfg c/bug_1041.c
-09613 empty.cfg c/i1413.c
-09614 empty.cfg c/string_prefixes.c
-09615 i1564.cfg c/i1564.c
-
-09616 enum_comma_ifdef.cfg c/enum_comma_ifdef.c
-09617 Issue_2360-a.cfg c/Issue_2360.c
-09618 Issue_2360-b.cfg c/Issue_2360.c
-09619 Issue_2411.cfg c/Issue_2411.c
-09620 Issue_2640.cfg c/Issue_2640.c
-09621 preproc-cleanup.cfg c/pp-before-func-def.c
-
-10005 empty.cfg c/i1270.c
-
-10006 bug_2331.cfg c/bug_2331.c
-
-10007 indent_macro_brace-true.cfg c/indent-macro-brace.c
-10008 indent_macro_brace-false.cfg c/indent-macro-brace.c
-
-10009 empty.cfg c/return-compound-literal.c
-10010 indent_compound_literal_return-false.cfg c/return-compound-literal.c
-10011 indent_compound_literal_return-true.cfg c/return-compound-literal.c
-
-10012 indent_sparen_extra-8.cfg c/sparen-indent.c
-10013 empty.cfg c/sparen-indent.c
-10014 indent_continue-8.cfg c/sparen-indent.c
-10015 empty.cfg c/Issue_2845.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/replace.list b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/replace.list
deleted file mode 100644
index 8de0b2c8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/replace.list
+++ /dev/null
@@ -1 +0,0 @@
-input/backup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/28.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/28.txt
deleted file mode 100644
index f7553062..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/28.txt
+++ /dev/null
@@ -1,371 +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
-log_rule(enum_cleanup : rule is 'mod_enum_last_comma'
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/66.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/66.txt
deleted file mode 100644
index 2607cb69..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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 IGNORE[ ]
- 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 ADD from add_space_table[ ]
- 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 IGNORE[ ]
- 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 IGNORE[ ]
-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 ADD from add_space_table[ ]
-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 IGNORE[ ]
-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.73.0/tests/cli/output/Debug_tracking_space.html b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/Debug_tracking_space.html
deleted file mode 100644
index 5cc68ada..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/Debug_tracking_space.html
+++ /dev/null
@@ -1,23 +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">
-<p>
-</p>
-<pre>
-{
- a<a title="1,sp_assign"><font color="red">M</font></a>=<a title="2,69,sp_assign"><font color="red">M</font></a>b<a title="3,70,75,sp_arith"><font color="red">M</font></a>+<a title="4,71,76,80,sp_arith"><font color="red">M</font></a>111<a title="5,72,77,81,84,sp_arith"><font color="red">M</font></a>-<a title="6,73,78,82,85,87,sp_arith"><font color="red">M</font></a>55<a title="7,74,79,83,86,88,89,sp_before_semi"><font color="red">M</font></a>;
-}
-template<a title="8,sp_before_angle"><font color="red">M</font></a>&lt;<a title="9,90,sp_inside_angle"><font color="red">M</font></a>typename<a title="10,91,96,ADD from add_space_table"><font color="red">M</font></a>... A<a title="11,92,97,101,sp_before_comma"><font color="red">M</font></a>,<a title="12,93,98,102,105,sp_after_comma"><font color="red">M</font></a>int<a title="13,94,99,103,106,108,sp_type_ellipsis"><font color="red">M</font></a>... B<a title="14,95,100,104,107,109,110,sp_inside_angle"><font color="red">M</font></a>&gt;
-struct<a title="15,ADD from add_space_table"><font color="red">M</font></a>foo1<a title="16,111,sp_after_type"><font color="red">M</font></a>:<a title="17,112,128,ADD from add_space_table"><font color="red">M</font></a>foo1<a title="18,113,129,144,sp_before_angle"><font color="red">M</font></a>&lt;<a title="19,114,130,145,159,sp_inside_angle"><font color="red">M</font></a>A<a title="20,115,131,146,160,173,sp_type_ellipsis"><font color="red">M</font></a>...<a title="21,116,132,147,161,174,186,sp_before_comma"><font color="red">M</font></a>,<a title="22,117,133,148,162,175,187,198,sp_after_comma"><font color="red">M</font></a>(<a title="23,118,134,149,163,176,188,199,209,sp_inside_paren"><font color="red">M</font></a>sizeof<a title="24,119,135,150,164,177,189,200,210,219,sp_sizeof_ellipsis"><font color="red">M</font></a>...<a title="25,120,136,151,165,178,190,201,211,220,228,sp_sizeof_ellipsis_paren"><font color="red">M</font></a>(<a title="26,121,137,152,166,179,191,202,212,221,229,236,sp_inside_paren"><font color="red">M</font></a>A<a title="27,122,138,153,167,180,192,203,213,222,230,237,243,sp_inside_paren"><font color="red">M</font></a>)<a title="28,123,139,154,168,181,193,204,214,223,231,238,244,249,sp_arith"><font color="red">M</font></a>+<a title="29,124,140,155,169,182,194,205,215,224,232,239,245,250,254,sp_arith"><font color="red">M</font></a>B<a title="30,125,141,156,170,183,195,206,216,225,233,240,246,251,255,258,sp_inside_paren"><font color="red">M</font></a>)<a title="31,126,142,157,171,184,196,207,217,226,234,241,247,252,256,259,261,sp_paren_ellipsis"><font color="red">M</font></a>...<a title="32,127,143,158,172,185,197,208,218,227,235,242,248,253,257,260,262,263,sp_inside_angle"><font color="red">M</font></a>&gt;
-{
- foo1<a title="33,51,sp_func_class_paren"><font color="red">M</font></a>(<a title="34,52,264,sp_inside_fparens"><font color="red">M</font></a>)<a title="35,53,265,266,sp_fparen_brace"><font color="red">M</font></a>{
- int<a title="36,54,sp_after_type"><font color="red">M</font></a>x<a title="37,55,267,sp_assign"><font color="red">M</font></a>=<a title="38,56,268,274,sp_assign"><font color="red">M</font></a>sizeof<a title="39,57,269,275,280,sp_sizeof_ellipsis"><font color="red">M</font></a>...<a title="40,58,270,276,281,285,sp_sizeof_ellipsis_paren"><font color="red">M</font></a>(<a title="41,59,271,277,282,286,289,sp_inside_paren"><font color="red">M</font></a>A<a title="42,60,272,278,283,287,290,292,sp_inside_paren"><font color="red">M</font></a>)<a title="43,61,273,279,284,288,291,293,294,sp_before_semi"><font color="red">M</font></a>;
- bool<a title="44,62,sp_after_type"><font color="red">M</font></a>b<a title="45,63,295,sp_assign"><font color="red">M</font></a>=<a title="46,64,296,300,sp_assign"><font color="red">M</font></a>x<a title="47,65,297,301,304,sp_compare"><font color="red">M</font></a>><a title="48,66,298,302,305,307,sp_compare"><font color="red">M</font></a>1<a title="49,67,299,303,306,308,309,sp_before_semi"><font color="red">M</font></a>;
- }
-}<a title="50,sp_before_semi"><font color="red">M</font></a>;
-</pre>
-</body>
-</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/help.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/help.txt
deleted file mode 100644
index 1348030e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/help.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-Usage:
-uncrustify [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
-or specify a filename using --assume for automatic language detection.
-
-If -F is used or files are specified on the command line,
-the output filename is 'prefix/filename' + suffix
-
-When reading from stdin or doing a single file via the '-f' option,
-the output is dumped to stdout, unless redirected with -o FILE.
-
-Errors are always dumped to stderr
-
-The '-f' and '-o' options may not be used with '-F' or '--replace'.
-The '--prefix' and '--suffix' options may not be used with '--replace'.
-
-Basic Options:
- -c CFG : Use the config file CFG, or defaults if CFG is set to '-'.
- -f FILE : Process the single file FILE (output to stdout, use with -o).
- -o FILE : Redirect stdout to FILE.
- -F FILE : Read files to process from FILE, one filename per line (- is stdin).
- --check : Do not output the new text, instead verify that nothing changes when
- the file(s) are processed.
- The status of every file is printed to stderr.
- The exit code is EXIT_SUCCESS if there were no changes, EXIT_FAILURE otherwise.
- files : Files to process (can be combined with -F).
- --suffix SFX : Append SFX to the output filename. The default is '.uncrustify'
- --prefix PFX : Prepend PFX to the output filename path.
- --replace : Replace source files (creates a backup).
- --no-backup : Do not create backup and md5 files. Useful if files are under source control.
- --if-changed : Write to stdout (or create output FILE) only if a change was detected.
- -l : Language override: C, CPP, D, CS, JAVA, PAWN, OC, OC+, VALA.
- -t : Load a file with types (usually not needed).
- -q : Quiet mode - no output on stderr (-L will override).
- --frag : Code fragment, assume the first line is indented correctly.
- --assume FN : Uses the filename FN for automatic language detection if reading
- from stdin unless -l is specified.
-
-Config/Help Options:
- -h -? --help --usage : Print this message and exit.
- --version : Print the version and exit.
- --count-options : Print the number of available options and exit.
- --show-config : Print out option documentation and exit.
- --update-config : Output a new config file. Use with -o FILE.
- --update-config-with-doc : Output a new config file. Use with -o FILE.
- --universalindent : Output a config file for Universal Indent GUI.
- --detect : Detects the config from a source file. Use with '-f FILE'.
- Detection is fairly limited.
- --set <option>=<value> : Sets a new value to a config option.
-
-Debug Options:
- -p FILE : Dump debug info into FILE, or to stdout if FILE is set to '-'.
- Must be used in combination with '-f FILE'
- -L SEV : Set the log severity (see log_levels.h; note 'A' = 'all')
- -s : Show the log severity in the logs.
- --decode : Decode remaining args (chunk flags) and exit.
- --tracking_space FILE : Prepare tracking informations for debugging.
- Cannot be used with the -o option'
-
-Usage Examples
-cat foo.d | uncrustify -q -c my.cfg -l d
-uncrustify -c my.cfg -f foo.d
-uncrustify -c my.cfg -f foo.d -L0-2,20-23,51
-uncrustify -c my.cfg -f foo.d -o foo.d
-uncrustify -c my.cfg foo.d
-uncrustify -c my.cfg --replace foo.d
-uncrustify -c my.cfg --no-backup foo.d
-uncrustify -c my.cfg --prefix=out -F files.txt
-
-Note: Use comments containing ' *INDENT-OFF*' and ' *INDENT-ON*' to disable
- processing of parts of the source file (these can be overridden with
- enable_processing_cmt and disable_processing_cmt).
-
-There are currently x options and minimal documentation.
-Try UniversalIndentGUI and good luck.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_error.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_error.txt
deleted file mode 100644
index ac1e7302..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_error.txt
+++ /dev/null
@@ -1 +0,0 @@
-config/mini_d.cfg:2: unknown option 'not_existing_option'
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_uc.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_uc.txt
deleted file mode 100644
index 9d7d5c7c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_uc.txt
+++ /dev/null
@@ -1,756 +0,0 @@
-
-newlines = auto
-input_tab_size = 8
-output_tab_size = 8
-string_escape_char = 92
-string_escape_char2 = 0
-string_replace_tab_chars = false
-tok_split_gte = false
-disable_processing_nl_cont = false
-disable_processing_cmt = " *INDENT-OFF*"
-enable_processing_cmt = " *INDENT-ON*"
-enable_digraphs = false
-processing_cmt_as_regex = false
-utf8_bom = ignore
-utf8_byte = false
-utf8_force = false
-sp_arith = ignore
-sp_arith_additive = ignore
-sp_assign = ignore
-sp_cpp_lambda_assign = ignore
-sp_cpp_lambda_square_paren = ignore
-sp_cpp_lambda_square_brace = ignore
-sp_cpp_lambda_argument_list = ignore
-sp_cpp_lambda_paren_brace = ignore
-sp_cpp_lambda_fparen = ignore
-sp_assign_default = ignore
-sp_before_assign = ignore
-sp_after_assign = ignore
-sp_enum_paren = ignore
-sp_enum_assign = ignore
-sp_enum_before_assign = ignore
-sp_enum_after_assign = ignore
-sp_enum_colon = ignore
-sp_pp_concat = add
-sp_pp_stringify = ignore
-sp_before_pp_stringify = ignore
-sp_bool = ignore
-sp_compare = ignore
-sp_inside_paren = ignore
-sp_paren_paren = ignore
-sp_cparen_oparen = ignore
-sp_balance_nested_parens = false
-sp_paren_brace = ignore
-sp_brace_brace = ignore
-sp_before_ptr_star = ignore
-sp_before_unnamed_ptr_star = ignore
-sp_between_ptr_star = ignore
-sp_after_ptr_star = ignore
-sp_after_ptr_block_caret = ignore
-sp_after_ptr_star_qualifier = ignore
-sp_after_ptr_star_func = ignore
-sp_ptr_star_paren = ignore
-sp_before_ptr_star_func = ignore
-sp_before_byref = ignore
-sp_before_unnamed_byref = ignore
-sp_after_byref = ignore
-sp_after_byref_func = ignore
-sp_before_byref_func = ignore
-sp_after_type = force
-sp_after_decltype = ignore
-sp_before_template_paren = ignore
-sp_template_angle = ignore
-sp_before_angle = ignore
-sp_inside_angle = ignore
-sp_inside_angle_empty = ignore
-sp_angle_colon = ignore
-sp_after_angle = ignore
-sp_angle_paren = ignore
-sp_angle_paren_empty = ignore
-sp_angle_word = ignore
-sp_angle_shift = add
-sp_permit_cpp11_shift = false
-sp_before_sparen = ignore
-sp_inside_sparen = ignore
-sp_inside_sparen_open = ignore
-sp_inside_sparen_close = ignore
-sp_after_sparen = ignore
-sp_sparen_brace = ignore
-sp_do_brace_open = ignore
-sp_brace_close_while = ignore
-sp_while_paren_open = ignore
-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 = ignore
-sp_after_semi = add
-sp_after_semi_for = force
-sp_after_semi_for_empty = ignore
-sp_before_square = ignore
-sp_before_vardef_square = remove
-sp_before_square_asm_block = ignore
-sp_before_squares = ignore
-sp_cpp_before_struct_binding = ignore
-sp_inside_square = ignore
-sp_inside_square_empty = ignore
-sp_inside_square_oc_array = ignore
-sp_after_comma = ignore
-sp_before_comma = remove
-sp_after_mdatype_commas = ignore
-sp_before_mdatype_commas = ignore
-sp_between_mdatype_commas = ignore
-sp_paren_comma = force
-sp_before_ellipsis = ignore
-sp_type_ellipsis = ignore
-sp_type_question = ignore
-sp_paren_ellipsis = ignore
-sp_paren_qualifier = ignore
-sp_paren_noexcept = ignore
-sp_after_class_colon = ignore
-sp_before_class_colon = ignore
-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_operator_sym_empty = ignore
-sp_after_cast = ignore
-sp_inside_paren_cast = ignore
-sp_cpp_cast_paren = ignore
-sp_sizeof_paren = ignore
-sp_sizeof_ellipsis = ignore
-sp_sizeof_ellipsis_paren = ignore
-sp_decltype_paren = ignore
-sp_after_tag = ignore
-sp_inside_braces_enum = ignore
-sp_inside_braces_struct = ignore
-sp_inside_braces_oc_dict = ignore
-sp_after_type_brace_init_lst_open = ignore
-sp_before_type_brace_init_lst_close = ignore
-sp_inside_type_brace_init_lst = ignore
-sp_inside_braces = ignore
-sp_inside_braces_empty = ignore
-sp_trailing_return = ignore
-sp_type_func = ignore
-sp_type_brace_init_lst = ignore
-sp_func_proto_paren = ignore
-sp_func_proto_paren_empty = ignore
-sp_func_type_paren = ignore
-sp_func_def_paren = ignore
-sp_func_def_paren_empty = ignore
-sp_inside_fparens = ignore
-sp_inside_fparen = ignore
-sp_inside_tparen = ignore
-sp_after_tparen_close = ignore
-sp_square_fparen = ignore
-sp_fparen_brace = ignore
-sp_fparen_brace_initializer = ignore
-sp_fparen_dbrace = ignore
-sp_func_call_paren = ignore
-sp_func_call_paren_empty = ignore
-sp_func_call_user_paren = ignore
-sp_func_call_user_inside_fparen = ignore
-sp_func_call_user_paren_paren = ignore
-sp_func_class_paren = ignore
-sp_func_class_paren_empty = ignore
-sp_return_paren = ignore
-sp_return_brace = ignore
-sp_attribute_paren = ignore
-sp_defined_paren = ignore
-sp_throw_paren = ignore
-sp_after_throw = ignore
-sp_catch_paren = ignore
-sp_oc_catch_paren = ignore
-sp_before_oc_proto_list = ignore
-sp_oc_classname_paren = ignore
-sp_version_paren = ignore
-sp_scope_paren = ignore
-sp_super_paren = remove
-sp_this_paren = remove
-sp_macro = ignore
-sp_macro_func = ignore
-sp_else_brace = ignore
-sp_brace_else = ignore
-sp_brace_typedef = ignore
-sp_catch_brace = ignore
-sp_oc_catch_brace = ignore
-sp_brace_catch = ignore
-sp_oc_brace_catch = ignore
-sp_finally_brace = ignore
-sp_brace_finally = ignore
-sp_try_brace = ignore
-sp_getset_brace = ignore
-sp_word_brace_init_lst = ignore
-sp_word_brace_ns = add
-sp_before_dc = ignore
-sp_after_dc = ignore
-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_oc_dict_colon = ignore
-sp_before_oc_dict_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_after_oc_at_sel_parens = ignore
-sp_inside_oc_at_sel_parens = ignore
-sp_before_oc_block_caret = ignore
-sp_after_oc_block_caret = ignore
-sp_after_oc_msg_receiver = ignore
-sp_after_oc_property = ignore
-sp_after_oc_synchronized = ignore
-sp_cond_colon = ignore
-sp_cond_colon_before = ignore
-sp_cond_colon_after = ignore
-sp_cond_question = ignore
-sp_cond_question_before = ignore
-sp_cond_question_after = ignore
-sp_cond_ternary_short = ignore
-sp_case_label = ignore
-sp_range = ignore
-sp_after_for_colon = ignore
-sp_before_for_colon = ignore
-sp_extern_paren = ignore
-sp_cmt_cpp_start = ignore
-sp_cmt_cpp_region = ignore
-sp_cmt_cpp_doxygen = false
-sp_cmt_cpp_qttr = false
-sp_endif_cmt = ignore
-sp_after_new = ignore
-sp_between_new_paren = ignore
-sp_after_newop_paren = ignore
-sp_inside_newop_paren = ignore
-sp_inside_newop_paren_open = ignore
-sp_inside_newop_paren_close = ignore
-sp_before_tr_emb_cmt = ignore
-sp_num_before_tr_emb_cmt = 0
-sp_annotation_paren = ignore
-sp_skip_vbrace_tokens = false
-sp_after_noexcept = ignore
-sp_vala_after_translation = ignore
-force_tab_after_define = false
-indent_columns = 8
-indent_continue = 0
-indent_continue_class_head = 0
-indent_single_newlines = false
-indent_param = 0
-indent_with_tabs = 1
-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_cs_delegate_brace = false
-indent_cs_delegate_body = false
-indent_namespace = false
-indent_namespace_single_indent = false
-indent_namespace_level = 0
-indent_namespace_limit = 0
-indent_extern = false
-indent_class = false
-indent_before_class_colon = 0
-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 = false
-indent_func_def_param = false
-indent_func_def_param_paren_pos_threshold = 0
-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_macro_brace = true
-indent_member = 0
-indent_member_single = false
-indent_sing_line_comments = 0
-indent_sparen_extra = 0
-indent_relative_single_line_comments = false
-indent_switch_case = 0
-indent_case_brace = 0
-indent_switch_break_with_case = false
-indent_switch_pp = true
-indent_case_shift = 0
-indent_col1_comment = false
-indent_col1_multi_string_literal = false
-indent_label = 1
-indent_access_spec = 1
-indent_access_spec_body = false
-indent_paren_nl = false
-indent_paren_close = 0
-indent_paren_after_func_def = false
-indent_paren_after_func_decl = false
-indent_paren_after_func_call = false
-indent_comma_brace = false
-indent_comma_paren = false
-indent_bool_paren = false
-indent_semicolon_for_paren = false
-indent_first_bool_expr = false
-indent_first_for_expr = false
-indent_square_nl = false
-indent_preserve_sql = false
-indent_align_assign = true
-indent_off_after_assign = false
-indent_align_paren = true
-indent_oc_inside_msg_sel = 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 = false
-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
-indent_token_after_brace = true
-indent_cpp_lambda_body = false
-indent_compound_literal_return = true
-indent_using_block = true
-indent_ternary_operator = 0
-indent_inside_ternary_operator = false
-indent_off_after_return = false
-indent_off_after_return_new = false
-indent_single_after_return = false
-indent_ignore_asm_block = false
-donot_indent_func_def_close_paren = false
-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_cs_property_leave_one_liners = false
-nl_func_leave_one_liners = false
-nl_cpp_lambda_leave_one_liners = false
-nl_if_leave_one_liners = false
-nl_while_leave_one_liners = false
-nl_do_leave_one_liners = false
-nl_for_leave_one_liners = false
-nl_oc_msg_leave_one_liner = false
-nl_oc_mdef_brace = ignore
-nl_oc_block_brace = ignore
-nl_oc_before_interface = ignore
-nl_oc_before_implementation = ignore
-nl_oc_before_end = ignore
-nl_oc_interface_brace = ignore
-nl_oc_implementation_brace = ignore
-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_tsquare_brace = ignore
-nl_after_square_assign = ignore
-nl_fcall_brace = ignore
-nl_enum_brace = ignore
-nl_enum_class = ignore
-nl_enum_class_identifier = ignore
-nl_enum_identifier_colon = ignore
-nl_enum_colon_type = ignore
-nl_struct_brace = ignore
-nl_union_brace = ignore
-nl_if_brace = ignore
-nl_brace_else = ignore
-nl_elseif_brace = ignore
-nl_else_brace = ignore
-nl_else_if = ignore
-nl_before_opening_brace_func_class_def = ignore
-nl_before_if_closing_paren = ignore
-nl_brace_finally = ignore
-nl_finally_brace = ignore
-nl_try_brace = ignore
-nl_getset_brace = ignore
-nl_for_brace = ignore
-nl_catch_brace = ignore
-nl_oc_catch_brace = ignore
-nl_brace_catch = ignore
-nl_oc_brace_catch = ignore
-nl_brace_square = ignore
-nl_brace_fparen = ignore
-nl_while_brace = ignore
-nl_scope_brace = ignore
-nl_unittest_brace = ignore
-nl_version_brace = ignore
-nl_using_brace = ignore
-nl_brace_brace = ignore
-nl_do_brace = ignore
-nl_brace_while = ignore
-nl_switch_brace = ignore
-nl_synchronized_brace = ignore
-nl_multi_line_cond = false
-nl_multi_line_sparen_open = ignore
-nl_multi_line_sparen_close = ignore
-nl_multi_line_define = false
-nl_before_case = false
-nl_after_case = false
-nl_case_colon_brace = ignore
-nl_before_throw = ignore
-nl_namespace_brace = ignore
-nl_template_class = ignore
-nl_template_class_decl = ignore
-nl_template_class_decl_special = ignore
-nl_template_class_def = ignore
-nl_template_class_def_special = ignore
-nl_template_func = ignore
-nl_template_func_decl = ignore
-nl_template_func_decl_special = ignore
-nl_template_func_def = ignore
-nl_template_func_def_special = ignore
-nl_template_var = ignore
-nl_template_using = ignore
-nl_class_brace = ignore
-nl_class_init_args = ignore
-nl_constr_init_args = ignore
-nl_enum_own_lines = ignore
-nl_func_type_name = ignore
-nl_func_type_name_class = ignore
-nl_func_class_scope = ignore
-nl_func_scope_name = ignore
-nl_func_proto_type_name = ignore
-nl_func_paren = ignore
-nl_func_paren_empty = ignore
-nl_func_def_paren = ignore
-nl_func_def_paren_empty = ignore
-nl_func_call_paren = ignore
-nl_func_call_paren_empty = 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_start_multi_line = false
-nl_func_def_start_multi_line = false
-nl_func_decl_args = ignore
-nl_func_def_args = ignore
-nl_func_call_args = ignore
-nl_func_decl_args_multi_line = false
-nl_func_def_args_multi_line = false
-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_end_multi_line = false
-nl_func_def_end_multi_line = false
-nl_func_decl_empty = ignore
-nl_func_def_empty = ignore
-nl_func_call_empty = ignore
-nl_func_call_start = ignore
-nl_func_call_end = ignore
-nl_func_call_start_multi_line = false
-nl_func_call_args_multi_line = false
-nl_func_call_end_multi_line = false
-nl_func_call_args_multi_line_ignore_closures = false
-nl_template_start = false
-nl_template_args = false
-nl_template_end = false
-nl_oc_msg_args = false
-nl_fdef_brace = ignore
-nl_fdef_brace_cond = ignore
-nl_cpp_ldef_brace = ignore
-nl_return_expr = ignore
-nl_after_semicolon = false
-nl_paren_dbrace_open = ignore
-nl_type_brace_init_lst = ignore
-nl_type_brace_init_lst_open = ignore
-nl_type_brace_init_lst_close = 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_paren_close = false
-nl_squeeze_ifdef = false
-nl_squeeze_ifdef_top_level = 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_synchronized = ignore
-nl_after_synchronized = ignore
-nl_before_do = ignore
-nl_after_do = ignore
-nl_before_return = false
-nl_after_return = false
-nl_before_member = ignore
-nl_after_member = ignore
-nl_ds_struct_enum_cmt = false
-nl_ds_struct_enum_close_brace = false
-nl_class_colon = ignore
-nl_constr_colon = ignore
-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
-nl_create_list_one_liner = false
-nl_split_if_one_liner = false
-nl_split_for_one_liner = false
-nl_split_while_one_liner = false
-donot_add_nl_before_cpp_comment = false
-nl_max = 0
-nl_max_blank_in_func = 0
-nl_inside_empty_func = 0
-nl_before_func_body_proto = 0
-nl_before_func_body_def = 0
-nl_before_func_class_proto = 0
-nl_before_func_class_def = 0
-nl_after_func_proto = 0
-nl_after_func_proto_group = 0
-nl_after_func_class_proto = 0
-nl_after_func_class_proto_group = 0
-nl_class_leave_one_liner_groups = false
-nl_after_func_body = 0
-nl_after_func_body_class = 0
-nl_after_func_body_one_liner = 0
-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_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_before_class = 0
-nl_after_class = 0
-nl_before_namespace = 0
-nl_inside_namespace = 0
-nl_after_namespace = 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 = ignore
-eat_blanks_after_open_brace = false
-eat_blanks_before_close_brace = false
-nl_remove_extra_newlines = 0
-nl_after_annotation = ignore
-nl_between_annotation = ignore
-nl_before_whole_file_ifdef = 0
-nl_after_whole_file_ifdef = 0
-nl_before_whole_file_endif = 0
-nl_after_whole_file_endif = 0
-pos_arith = ignore
-pos_assign = ignore
-pos_bool = ignore
-pos_compare = ignore
-pos_conditional = ignore
-pos_comma = ignore
-pos_enum_comma = ignore
-pos_class_comma = ignore
-pos_constr_comma = ignore
-pos_class_colon = ignore
-pos_constr_colon = ignore
-pos_shift = ignore
-code_width = 0
-ls_for_split_full = false
-ls_func_split_full = false
-ls_code_width = false
-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_func_params_span = 0
-align_func_params_thresh = 0
-align_func_params_gap = 0
-align_constr_value_span = 0
-align_constr_value_thresh = 0
-align_constr_value_gap = 0
-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_colon_gap = 0
-align_var_def_attribute = false
-align_var_def_inline = false
-align_assign_span = 0
-align_assign_func_proto_span = 0
-align_assign_thresh = 0
-align_assign_decl_func = 0
-align_enum_equ_span = 0
-align_enum_equ_thresh = 0
-align_var_class_span = 0
-align_var_class_thresh = 0
-align_var_class_gap = 0
-align_var_struct_span = 0
-align_var_struct_thresh = 0
-align_var_struct_gap = 0
-align_struct_init_span = 0
-align_typedef_span = 0
-align_typedef_gap = 0
-align_typedef_func = 0
-align_typedef_star_style = 0
-align_typedef_amp_style = 0
-align_right_cmt_span = 0
-align_right_cmt_gap = 0
-align_right_cmt_mix = false
-align_right_cmt_same_level = false
-align_right_cmt_at_col = 0
-align_func_proto_span = 0
-align_func_proto_thresh = 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_span = 0
-align_pp_define_gap = 0
-align_left_shift = true
-align_eigen_comma_init = false
-align_asm_colon = false
-align_oc_msg_colon_span = 0
-align_oc_msg_colon_first = false
-align_oc_decl_colon = false
-align_oc_msg_colon_xcode_like = false
-cmt_width = 0
-cmt_reflow_mode = 0
-cmt_reflow_fold_regex_file = ""
-cmt_reflow_indent_to_paragraph_start = false
-cmt_convert_tab_to_spaces = false
-cmt_indent_multi = true
-cmt_align_doxygen_javadoc_tags = false
-cmt_sp_before_doxygen_javadoc_tags = 1
-cmt_c_group = false
-cmt_c_nl_start = false
-cmt_c_nl_end = false
-cmt_cpp_to_c = false
-cmt_cpp_group = false
-cmt_cpp_nl_start = false
-cmt_cpp_nl_end = false
-cmt_star_cont = false
-cmt_sp_before_star_cont = 0
-cmt_sp_after_star_cont = 0
-cmt_multi_check_last = true
-cmt_multi_first_len_minimum = 4
-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
-cmt_insert_before_inlines = true
-cmt_insert_before_ctor_dtor = false
-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_if_chain_only = false
-mod_full_brace_while = ignore
-mod_full_brace_using = ignore
-mod_full_brace_nl = 0
-mod_full_brace_nl_block_rem_mlcond = false
-mod_paren_on_return = ignore
-mod_pawn_semicolon = false
-mod_full_paren_if_bool = false
-mod_remove_extra_semicolon = false
-mod_add_long_function_closebrace_comment = 0
-mod_add_long_namespace_closebrace_comment = 0
-mod_add_long_class_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_case_sensitive = false
-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 = ignore
-mod_remove_empty_return = false
-mod_enum_last_comma = ignore
-mod_sort_oc_properties = false
-mod_sort_oc_property_class_weight = 0
-mod_sort_oc_property_thread_safe_weight = 0
-mod_sort_oc_property_readwrite_weight = 0
-mod_sort_oc_property_reference_weight = 0
-mod_sort_oc_property_getter_weight = 0
-mod_sort_oc_property_setter_weight = 0
-mod_sort_oc_property_nullability_weight = 0
-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
-pp_ignore_define_body = false
-pp_indent_case = true
-pp_indent_func_def = true
-pp_indent_extern = true
-pp_indent_brace = true
-include_category_0 = ""
-include_category_1 = ""
-include_category_2 = ""
-use_indent_func_call_param = true
-use_indent_continue_only_once = false
-indent_cpp_lambda_only_once = false
-use_sp_after_angle_always = false
-use_options_overriding_for_qt_macros = true
-use_form_feed_no_more_as_whitespace_character = false
-warn_level_tabs_found_in_verbatim_string_literals = 2
-debug_max_number_of_loops = 0
-debug_line_number_to_protocol = 0
-debug_timeout = 0
-debug_truncate = 0
-# option(s) with 'not default' value: 0
-#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_ucwd.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_ucwd.txt
deleted file mode 100644
index f220a918..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_d_ucwd.txt
+++ /dev/null
@@ -1,3214 +0,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 '*'.
-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 '*', 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 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.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = 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 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 part of a for statement.
-sp_before_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 ','.
-#
-# 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 before the variadic '...' when preceded by a
-# non-punctuator.
-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
-
-# (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 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 ':'.
-sp_after_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-sp_before_constr_colon = ignore # 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 '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.
-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.
-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.
-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 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 or embedded comment.
-sp_before_tr_emb_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing or embedded comment.
-sp_num_before_tr_emb_cmt = 0 # 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 member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 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_sing_line_comments = 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 wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 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 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 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
-
-# How to indent goto labels.
-#
-# >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 after '{'. This also adds a newline before the
-# matching '}'.
-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
-
-# 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.
-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 unbraced if statements 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 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
-
-# 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 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
-
-# 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 '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_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.73.0/tests/cli/output/mini_nd_uc.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_nd_uc.txt
deleted file mode 100644
index 4203df78..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_nd_uc.txt
+++ /dev/null
@@ -1,756 +0,0 @@
-
-newlines = crlf
-input_tab_size = 8
-output_tab_size = 8
-string_escape_char = 92
-string_escape_char2 = 0
-string_replace_tab_chars = false
-tok_split_gte = false
-disable_processing_nl_cont = false
-disable_processing_cmt = " *INDENT-OFF*"
-enable_processing_cmt = " *INDENT-ON*"
-enable_digraphs = false
-processing_cmt_as_regex = false
-utf8_bom = ignore
-utf8_byte = false
-utf8_force = false
-sp_arith = ignore
-sp_arith_additive = ignore
-sp_assign = ignore
-sp_cpp_lambda_assign = ignore
-sp_cpp_lambda_square_paren = ignore
-sp_cpp_lambda_square_brace = ignore
-sp_cpp_lambda_argument_list = ignore
-sp_cpp_lambda_paren_brace = ignore
-sp_cpp_lambda_fparen = ignore
-sp_assign_default = ignore
-sp_before_assign = ignore
-sp_after_assign = ignore
-sp_enum_paren = ignore
-sp_enum_assign = ignore
-sp_enum_before_assign = ignore
-sp_enum_after_assign = ignore
-sp_enum_colon = ignore
-sp_pp_concat = add
-sp_pp_stringify = ignore
-sp_before_pp_stringify = ignore
-sp_bool = ignore
-sp_compare = ignore
-sp_inside_paren = ignore
-sp_paren_paren = ignore
-sp_cparen_oparen = ignore
-sp_balance_nested_parens = false
-sp_paren_brace = ignore
-sp_brace_brace = ignore
-sp_before_ptr_star = ignore
-sp_before_unnamed_ptr_star = ignore
-sp_between_ptr_star = ignore
-sp_after_ptr_star = ignore
-sp_after_ptr_block_caret = ignore
-sp_after_ptr_star_qualifier = ignore
-sp_after_ptr_star_func = ignore
-sp_ptr_star_paren = ignore
-sp_before_ptr_star_func = ignore
-sp_before_byref = ignore
-sp_before_unnamed_byref = ignore
-sp_after_byref = ignore
-sp_after_byref_func = ignore
-sp_before_byref_func = ignore
-sp_after_type = force
-sp_after_decltype = ignore
-sp_before_template_paren = ignore
-sp_template_angle = ignore
-sp_before_angle = ignore
-sp_inside_angle = ignore
-sp_inside_angle_empty = ignore
-sp_angle_colon = ignore
-sp_after_angle = ignore
-sp_angle_paren = ignore
-sp_angle_paren_empty = ignore
-sp_angle_word = ignore
-sp_angle_shift = add
-sp_permit_cpp11_shift = false
-sp_before_sparen = ignore
-sp_inside_sparen = ignore
-sp_inside_sparen_open = ignore
-sp_inside_sparen_close = ignore
-sp_after_sparen = ignore
-sp_sparen_brace = ignore
-sp_do_brace_open = ignore
-sp_brace_close_while = ignore
-sp_while_paren_open = ignore
-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 = ignore
-sp_after_semi = add
-sp_after_semi_for = force
-sp_after_semi_for_empty = ignore
-sp_before_square = ignore
-sp_before_vardef_square = remove
-sp_before_square_asm_block = ignore
-sp_before_squares = ignore
-sp_cpp_before_struct_binding = ignore
-sp_inside_square = ignore
-sp_inside_square_empty = ignore
-sp_inside_square_oc_array = ignore
-sp_after_comma = ignore
-sp_before_comma = remove
-sp_after_mdatype_commas = ignore
-sp_before_mdatype_commas = ignore
-sp_between_mdatype_commas = ignore
-sp_paren_comma = force
-sp_before_ellipsis = ignore
-sp_type_ellipsis = ignore
-sp_type_question = ignore
-sp_paren_ellipsis = ignore
-sp_paren_qualifier = ignore
-sp_paren_noexcept = ignore
-sp_after_class_colon = ignore
-sp_before_class_colon = ignore
-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_operator_sym_empty = ignore
-sp_after_cast = ignore
-sp_inside_paren_cast = ignore
-sp_cpp_cast_paren = ignore
-sp_sizeof_paren = ignore
-sp_sizeof_ellipsis = ignore
-sp_sizeof_ellipsis_paren = ignore
-sp_decltype_paren = ignore
-sp_after_tag = ignore
-sp_inside_braces_enum = ignore
-sp_inside_braces_struct = ignore
-sp_inside_braces_oc_dict = ignore
-sp_after_type_brace_init_lst_open = ignore
-sp_before_type_brace_init_lst_close = ignore
-sp_inside_type_brace_init_lst = ignore
-sp_inside_braces = ignore
-sp_inside_braces_empty = ignore
-sp_trailing_return = ignore
-sp_type_func = ignore
-sp_type_brace_init_lst = ignore
-sp_func_proto_paren = ignore
-sp_func_proto_paren_empty = ignore
-sp_func_type_paren = ignore
-sp_func_def_paren = ignore
-sp_func_def_paren_empty = ignore
-sp_inside_fparens = ignore
-sp_inside_fparen = ignore
-sp_inside_tparen = ignore
-sp_after_tparen_close = ignore
-sp_square_fparen = ignore
-sp_fparen_brace = ignore
-sp_fparen_brace_initializer = ignore
-sp_fparen_dbrace = ignore
-sp_func_call_paren = ignore
-sp_func_call_paren_empty = ignore
-sp_func_call_user_paren = ignore
-sp_func_call_user_inside_fparen = ignore
-sp_func_call_user_paren_paren = ignore
-sp_func_class_paren = ignore
-sp_func_class_paren_empty = ignore
-sp_return_paren = ignore
-sp_return_brace = ignore
-sp_attribute_paren = ignore
-sp_defined_paren = ignore
-sp_throw_paren = ignore
-sp_after_throw = ignore
-sp_catch_paren = ignore
-sp_oc_catch_paren = ignore
-sp_before_oc_proto_list = ignore
-sp_oc_classname_paren = ignore
-sp_version_paren = ignore
-sp_scope_paren = ignore
-sp_super_paren = remove
-sp_this_paren = remove
-sp_macro = ignore
-sp_macro_func = ignore
-sp_else_brace = ignore
-sp_brace_else = ignore
-sp_brace_typedef = ignore
-sp_catch_brace = ignore
-sp_oc_catch_brace = ignore
-sp_brace_catch = ignore
-sp_oc_brace_catch = ignore
-sp_finally_brace = ignore
-sp_brace_finally = ignore
-sp_try_brace = ignore
-sp_getset_brace = ignore
-sp_word_brace_init_lst = ignore
-sp_word_brace_ns = add
-sp_before_dc = ignore
-sp_after_dc = ignore
-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_oc_dict_colon = ignore
-sp_before_oc_dict_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_after_oc_at_sel_parens = ignore
-sp_inside_oc_at_sel_parens = ignore
-sp_before_oc_block_caret = ignore
-sp_after_oc_block_caret = ignore
-sp_after_oc_msg_receiver = ignore
-sp_after_oc_property = ignore
-sp_after_oc_synchronized = ignore
-sp_cond_colon = ignore
-sp_cond_colon_before = ignore
-sp_cond_colon_after = ignore
-sp_cond_question = ignore
-sp_cond_question_before = ignore
-sp_cond_question_after = ignore
-sp_cond_ternary_short = ignore
-sp_case_label = ignore
-sp_range = ignore
-sp_after_for_colon = ignore
-sp_before_for_colon = ignore
-sp_extern_paren = ignore
-sp_cmt_cpp_start = ignore
-sp_cmt_cpp_region = ignore
-sp_cmt_cpp_doxygen = false
-sp_cmt_cpp_qttr = false
-sp_endif_cmt = ignore
-sp_after_new = ignore
-sp_between_new_paren = ignore
-sp_after_newop_paren = ignore
-sp_inside_newop_paren = ignore
-sp_inside_newop_paren_open = ignore
-sp_inside_newop_paren_close = ignore
-sp_before_tr_emb_cmt = ignore
-sp_num_before_tr_emb_cmt = 0
-sp_annotation_paren = ignore
-sp_skip_vbrace_tokens = false
-sp_after_noexcept = ignore
-sp_vala_after_translation = ignore
-force_tab_after_define = false
-indent_columns = 8
-indent_continue = 0
-indent_continue_class_head = 0
-indent_single_newlines = false
-indent_param = 0
-indent_with_tabs = 1
-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_cs_delegate_brace = false
-indent_cs_delegate_body = false
-indent_namespace = false
-indent_namespace_single_indent = false
-indent_namespace_level = 0
-indent_namespace_limit = 0
-indent_extern = false
-indent_class = false
-indent_before_class_colon = 0
-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 = false
-indent_func_def_param = false
-indent_func_def_param_paren_pos_threshold = 0
-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_macro_brace = true
-indent_member = 0
-indent_member_single = false
-indent_sing_line_comments = 0
-indent_sparen_extra = 0
-indent_relative_single_line_comments = false
-indent_switch_case = 0
-indent_case_brace = 0
-indent_switch_break_with_case = false
-indent_switch_pp = true
-indent_case_shift = 0
-indent_col1_comment = false
-indent_col1_multi_string_literal = false
-indent_label = 1
-indent_access_spec = 1
-indent_access_spec_body = false
-indent_paren_nl = false
-indent_paren_close = 0
-indent_paren_after_func_def = false
-indent_paren_after_func_decl = false
-indent_paren_after_func_call = false
-indent_comma_brace = false
-indent_comma_paren = false
-indent_bool_paren = false
-indent_semicolon_for_paren = false
-indent_first_bool_expr = false
-indent_first_for_expr = false
-indent_square_nl = false
-indent_preserve_sql = false
-indent_align_assign = true
-indent_off_after_assign = false
-indent_align_paren = true
-indent_oc_inside_msg_sel = 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 = false
-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
-indent_token_after_brace = true
-indent_cpp_lambda_body = false
-indent_compound_literal_return = true
-indent_using_block = true
-indent_ternary_operator = 0
-indent_inside_ternary_operator = false
-indent_off_after_return = false
-indent_off_after_return_new = false
-indent_single_after_return = false
-indent_ignore_asm_block = false
-donot_indent_func_def_close_paren = false
-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_cs_property_leave_one_liners = false
-nl_func_leave_one_liners = false
-nl_cpp_lambda_leave_one_liners = false
-nl_if_leave_one_liners = false
-nl_while_leave_one_liners = false
-nl_do_leave_one_liners = false
-nl_for_leave_one_liners = false
-nl_oc_msg_leave_one_liner = false
-nl_oc_mdef_brace = ignore
-nl_oc_block_brace = ignore
-nl_oc_before_interface = ignore
-nl_oc_before_implementation = ignore
-nl_oc_before_end = ignore
-nl_oc_interface_brace = ignore
-nl_oc_implementation_brace = ignore
-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_tsquare_brace = ignore
-nl_after_square_assign = ignore
-nl_fcall_brace = ignore
-nl_enum_brace = ignore
-nl_enum_class = ignore
-nl_enum_class_identifier = ignore
-nl_enum_identifier_colon = ignore
-nl_enum_colon_type = ignore
-nl_struct_brace = ignore
-nl_union_brace = ignore
-nl_if_brace = ignore
-nl_brace_else = ignore
-nl_elseif_brace = ignore
-nl_else_brace = ignore
-nl_else_if = ignore
-nl_before_opening_brace_func_class_def = ignore
-nl_before_if_closing_paren = ignore
-nl_brace_finally = ignore
-nl_finally_brace = ignore
-nl_try_brace = ignore
-nl_getset_brace = ignore
-nl_for_brace = ignore
-nl_catch_brace = ignore
-nl_oc_catch_brace = ignore
-nl_brace_catch = ignore
-nl_oc_brace_catch = ignore
-nl_brace_square = ignore
-nl_brace_fparen = ignore
-nl_while_brace = ignore
-nl_scope_brace = ignore
-nl_unittest_brace = ignore
-nl_version_brace = ignore
-nl_using_brace = ignore
-nl_brace_brace = ignore
-nl_do_brace = ignore
-nl_brace_while = ignore
-nl_switch_brace = ignore
-nl_synchronized_brace = ignore
-nl_multi_line_cond = false
-nl_multi_line_sparen_open = ignore
-nl_multi_line_sparen_close = ignore
-nl_multi_line_define = false
-nl_before_case = false
-nl_after_case = false
-nl_case_colon_brace = ignore
-nl_before_throw = ignore
-nl_namespace_brace = ignore
-nl_template_class = ignore
-nl_template_class_decl = ignore
-nl_template_class_decl_special = ignore
-nl_template_class_def = ignore
-nl_template_class_def_special = ignore
-nl_template_func = ignore
-nl_template_func_decl = ignore
-nl_template_func_decl_special = ignore
-nl_template_func_def = ignore
-nl_template_func_def_special = ignore
-nl_template_var = ignore
-nl_template_using = ignore
-nl_class_brace = ignore
-nl_class_init_args = ignore
-nl_constr_init_args = ignore
-nl_enum_own_lines = ignore
-nl_func_type_name = ignore
-nl_func_type_name_class = ignore
-nl_func_class_scope = ignore
-nl_func_scope_name = ignore
-nl_func_proto_type_name = ignore
-nl_func_paren = ignore
-nl_func_paren_empty = ignore
-nl_func_def_paren = ignore
-nl_func_def_paren_empty = ignore
-nl_func_call_paren = ignore
-nl_func_call_paren_empty = 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_start_multi_line = false
-nl_func_def_start_multi_line = false
-nl_func_decl_args = ignore
-nl_func_def_args = ignore
-nl_func_call_args = ignore
-nl_func_decl_args_multi_line = false
-nl_func_def_args_multi_line = false
-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_end_multi_line = false
-nl_func_def_end_multi_line = false
-nl_func_decl_empty = ignore
-nl_func_def_empty = ignore
-nl_func_call_empty = ignore
-nl_func_call_start = ignore
-nl_func_call_end = ignore
-nl_func_call_start_multi_line = false
-nl_func_call_args_multi_line = false
-nl_func_call_end_multi_line = false
-nl_func_call_args_multi_line_ignore_closures = false
-nl_template_start = false
-nl_template_args = false
-nl_template_end = false
-nl_oc_msg_args = false
-nl_fdef_brace = ignore
-nl_fdef_brace_cond = ignore
-nl_cpp_ldef_brace = ignore
-nl_return_expr = ignore
-nl_after_semicolon = false
-nl_paren_dbrace_open = ignore
-nl_type_brace_init_lst = ignore
-nl_type_brace_init_lst_open = ignore
-nl_type_brace_init_lst_close = 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_paren_close = false
-nl_squeeze_ifdef = false
-nl_squeeze_ifdef_top_level = 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_synchronized = ignore
-nl_after_synchronized = ignore
-nl_before_do = ignore
-nl_after_do = ignore
-nl_before_return = false
-nl_after_return = false
-nl_before_member = ignore
-nl_after_member = ignore
-nl_ds_struct_enum_cmt = false
-nl_ds_struct_enum_close_brace = false
-nl_class_colon = ignore
-nl_constr_colon = ignore
-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
-nl_create_list_one_liner = false
-nl_split_if_one_liner = false
-nl_split_for_one_liner = false
-nl_split_while_one_liner = false
-donot_add_nl_before_cpp_comment = false
-nl_max = 0
-nl_max_blank_in_func = 0
-nl_inside_empty_func = 0
-nl_before_func_body_proto = 0
-nl_before_func_body_def = 0
-nl_before_func_class_proto = 0
-nl_before_func_class_def = 0
-nl_after_func_proto = 0
-nl_after_func_proto_group = 0
-nl_after_func_class_proto = 0
-nl_after_func_class_proto_group = 0
-nl_class_leave_one_liner_groups = false
-nl_after_func_body = 0
-nl_after_func_body_class = 0
-nl_after_func_body_one_liner = 0
-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_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_before_class = 0
-nl_after_class = 0
-nl_before_namespace = 0
-nl_inside_namespace = 0
-nl_after_namespace = 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 = ignore
-eat_blanks_after_open_brace = false
-eat_blanks_before_close_brace = false
-nl_remove_extra_newlines = 0
-nl_after_annotation = ignore
-nl_between_annotation = ignore
-nl_before_whole_file_ifdef = 0
-nl_after_whole_file_ifdef = 0
-nl_before_whole_file_endif = 0
-nl_after_whole_file_endif = 0
-pos_arith = ignore
-pos_assign = ignore
-pos_bool = ignore
-pos_compare = ignore
-pos_conditional = ignore
-pos_comma = ignore
-pos_enum_comma = ignore
-pos_class_comma = ignore
-pos_constr_comma = ignore
-pos_class_colon = ignore
-pos_constr_colon = ignore
-pos_shift = ignore
-code_width = 0
-ls_for_split_full = false
-ls_func_split_full = false
-ls_code_width = false
-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_func_params_span = 0
-align_func_params_thresh = 0
-align_func_params_gap = 0
-align_constr_value_span = 0
-align_constr_value_thresh = 0
-align_constr_value_gap = 0
-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_colon_gap = 0
-align_var_def_attribute = false
-align_var_def_inline = false
-align_assign_span = 0
-align_assign_func_proto_span = 0
-align_assign_thresh = 0
-align_assign_decl_func = 0
-align_enum_equ_span = 0
-align_enum_equ_thresh = 0
-align_var_class_span = 0
-align_var_class_thresh = 0
-align_var_class_gap = 0
-align_var_struct_span = 0
-align_var_struct_thresh = 0
-align_var_struct_gap = 0
-align_struct_init_span = 0
-align_typedef_span = 0
-align_typedef_gap = 0
-align_typedef_func = 0
-align_typedef_star_style = 0
-align_typedef_amp_style = 0
-align_right_cmt_span = 0
-align_right_cmt_gap = 0
-align_right_cmt_mix = false
-align_right_cmt_same_level = false
-align_right_cmt_at_col = 0
-align_func_proto_span = 0
-align_func_proto_thresh = 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_span = 0
-align_pp_define_gap = 0
-align_left_shift = true
-align_eigen_comma_init = false
-align_asm_colon = false
-align_oc_msg_colon_span = 0
-align_oc_msg_colon_first = false
-align_oc_decl_colon = false
-align_oc_msg_colon_xcode_like = false
-cmt_width = 0
-cmt_reflow_mode = 0
-cmt_reflow_fold_regex_file = ""
-cmt_reflow_indent_to_paragraph_start = false
-cmt_convert_tab_to_spaces = false
-cmt_indent_multi = true
-cmt_align_doxygen_javadoc_tags = false
-cmt_sp_before_doxygen_javadoc_tags = 1
-cmt_c_group = false
-cmt_c_nl_start = false
-cmt_c_nl_end = false
-cmt_cpp_to_c = false
-cmt_cpp_group = false
-cmt_cpp_nl_start = false
-cmt_cpp_nl_end = false
-cmt_star_cont = false
-cmt_sp_before_star_cont = 0
-cmt_sp_after_star_cont = 0
-cmt_multi_check_last = true
-cmt_multi_first_len_minimum = 4
-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
-cmt_insert_before_inlines = true
-cmt_insert_before_ctor_dtor = false
-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_if_chain_only = false
-mod_full_brace_while = ignore
-mod_full_brace_using = ignore
-mod_full_brace_nl = 0
-mod_full_brace_nl_block_rem_mlcond = false
-mod_paren_on_return = ignore
-mod_pawn_semicolon = false
-mod_full_paren_if_bool = false
-mod_remove_extra_semicolon = false
-mod_add_long_function_closebrace_comment = 0
-mod_add_long_namespace_closebrace_comment = 0
-mod_add_long_class_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_case_sensitive = false
-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 = ignore
-mod_remove_empty_return = false
-mod_enum_last_comma = ignore
-mod_sort_oc_properties = false
-mod_sort_oc_property_class_weight = 0
-mod_sort_oc_property_thread_safe_weight = 0
-mod_sort_oc_property_readwrite_weight = 0
-mod_sort_oc_property_reference_weight = 0
-mod_sort_oc_property_getter_weight = 0
-mod_sort_oc_property_setter_weight = 0
-mod_sort_oc_property_nullability_weight = 0
-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
-pp_ignore_define_body = false
-pp_indent_case = true
-pp_indent_func_def = true
-pp_indent_extern = true
-pp_indent_brace = true
-include_category_0 = ""
-include_category_1 = ""
-include_category_2 = ""
-use_indent_func_call_param = true
-use_indent_continue_only_once = false
-indent_cpp_lambda_only_once = false
-use_sp_after_angle_always = false
-use_options_overriding_for_qt_macros = true
-use_form_feed_no_more_as_whitespace_character = false
-warn_level_tabs_found_in_verbatim_string_literals = 2
-debug_max_number_of_loops = 0
-debug_line_number_to_protocol = 0
-debug_timeout = 0
-debug_truncate = 0
-# option(s) with 'not default' value: 1
-#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_nd_ucwd.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_nd_ucwd.txt
deleted file mode 100644
index b160b09d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/mini_nd_ucwd.txt
+++ /dev/null
@@ -1,3214 +0,0 @@
-
-
-#
-# General options
-#
-
-# The type of line endings.
-#
-# Default: auto
-newlines = crlf # 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 '*'.
-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 '*', 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 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.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = 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 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 part of a for statement.
-sp_before_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 ','.
-#
-# 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 before the variadic '...' when preceded by a
-# non-punctuator.
-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
-
-# (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 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 ':'.
-sp_after_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-sp_before_constr_colon = ignore # 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 '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.
-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.
-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.
-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 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 or embedded comment.
-sp_before_tr_emb_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing or embedded comment.
-sp_num_before_tr_emb_cmt = 0 # 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 member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 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_sing_line_comments = 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 wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 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 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 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
-
-# How to indent goto labels.
-#
-# >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 after '{'. This also adds a newline before the
-# matching '}'.
-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
-
-# 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.
-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 unbraced if statements 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 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
-
-# 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 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
-
-# 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 '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_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: 1
-#
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/show_config.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/show_config.txt
deleted file mode 100644
index f220a918..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/show_config.txt
+++ /dev/null
@@ -1,3214 +0,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 '*'.
-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 '*', 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 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.
-sp_inside_sparen = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space after '(' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_open = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before ')' of control statements.
-#
-# Overrides sp_inside_sparen.
-sp_inside_sparen_close = 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 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 part of a for statement.
-sp_before_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 ','.
-#
-# 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 before the variadic '...' when preceded by a
-# non-punctuator.
-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
-
-# (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 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 ':'.
-sp_after_constr_colon = ignore # ignore/add/remove/force/not_defined
-
-# Add or remove space before class constructor ':'.
-sp_before_constr_colon = ignore # 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 '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.
-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.
-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.
-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 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 or embedded comment.
-sp_before_tr_emb_cmt = ignore # ignore/add/remove/force/not_defined
-
-# Number of spaces before a trailing or embedded comment.
-sp_num_before_tr_emb_cmt = 0 # 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 member initializers.
-#
-# Default: 2
-indent_ctor_init_leading = 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_sing_line_comments = 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 wise to choose the same value for the option indent_case_brace.
-indent_switch_case = 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 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 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
-
-# How to indent goto labels.
-#
-# >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 after '{'. This also adds a newline before the
-# matching '}'.
-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
-
-# 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.
-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 unbraced if statements 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 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
-
-# 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 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
-
-# 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 '#define' at the brace level. If false, these are
-# indented from column 1.
-pp_define_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.73.0/tests/cli/output/tracking_space.html b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/tracking_space.html
deleted file mode 100644
index d3b69435..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/tracking_space.html
+++ /dev/null
@@ -1,23 +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">
-<p>
-</p>
-<pre>
-{
- a = b + 111 - 55;
-}
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A) + B)...>
-{
- foo1() {
- int x = sizeof...(A);
- bool b = x > 1;
- }
-};
-</pre>
-</body>
-</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/universalindent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/universalindent.cfg
deleted file mode 100644
index 48a9dd47..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/universalindent.cfg
+++ /dev/null
@@ -1,6712 +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 '*'.</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 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 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.</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.<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.<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 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 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 part of a for statement.</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 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 ','.<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 Before Ellipsis]
-Category=1
-Description="<html>Add or remove space before the variadic '...' when preceded by a<br/>non-punctuator.</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 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 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 ':'.</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=ignore
-
-[Sp Before Constr Colon]
-Category=1
-Description="<html>Add or remove space before class constructor ':'.</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=ignore
-
-[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 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.</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.</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.</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 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 Emb Cmt]
-Category=1
-Description="<html>Add or remove space before a trailing or embedded comment.</html>"
-Enabled=false
-EditorType=multiple
-Choices=sp_before_tr_emb_cmt=ignore|sp_before_tr_emb_cmt=add|sp_before_tr_emb_cmt=remove|sp_before_tr_emb_cmt=force|sp_before_tr_emb_cmt=not_defined
-ChoicesReadable="Ignore Sp Before Tr Emb Cmt|Add Sp Before Tr Emb Cmt|Remove Sp Before Tr Emb Cmt|Force Sp Before Tr Emb Cmt"
-ValueDefault=ignore
-
-[Sp Num Before Tr Emb Cmt]
-Category=1
-Description="<html>Number of spaces before a trailing or embedded comment.</html>"
-Enabled=false
-EditorType=numeric
-CallName="sp_num_before_tr_emb_cmt="
-MinVal=0
-MaxVal=16
-ValueDefault=0
-
-[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 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]
-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 Sing Line Comments]
-Category=2
-Description="<html>Spaces to indent single line ('//') comments on lines before code.</html>"
-Enabled=false
-EditorType=numeric
-CallName="indent_sing_line_comments="
-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 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 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 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 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 Label]
-Category=2
-Description="<html>How to indent goto labels.<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 After Brace Open]
-Category=3
-Description="<html>Whether to add a newline after '{'. This also adds a newline before the<br/>matching '}'.</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 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.</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 unbraced if statements 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 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 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 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 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 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 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.73.0/tests/cli/test_cli_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/test_cli_options.py
deleted file mode 100755
index d835822e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/test_cli_options.py
+++ /dev/null
@@ -1,831 +0,0 @@
-#!/usr/bin/python
-
-"""
-test_cli_options.py
-
-Tests output generated by Uncrustifys commandline options
-(excluding actual source code formatting)
-
-:author: DanielChumak
-:license: GPL v2+
-"""
-
-from __future__ import print_function
-from sys import stderr, argv, exit as sys_exit
-from os import mkdir, remove, name as os_name
-from os.path import dirname, relpath, isdir, isfile, join as path_join, split as path_split
-from shutil import rmtree, copyfile
-from subprocess import Popen, PIPE
-from io import open
-import re
-import difflib
-import argparse
-import pprint
-
-if os_name == 'nt':
- EX_OK = 0
- EX_USAGE = 64
- EX_SOFTWARE = 70
- NULL_DEVICE = 'nul'
-else:
- from os import EX_OK, EX_USAGE, EX_SOFTWARE
- NULL_DEVICE = '/dev/null'
-
-RE_CALLSTACK = r'\[CallStack:( \w+:\w+(, \w+:\w+)*|-DEBUG NOT SET-)?\]'
-RE_DO_SPACE = (r'\n\ndo_space : WARNING: unrecognized do_space:'
- r'\n[^\n]+\n[^\n]+\n')
-
-
-def eprint(*args, **kwargs):
- """
- print() wrapper that sets file=stderr
- """
- print(*args, file=stderr, **kwargs)
-
-
-def decode_out(text):
- text = text.decode('utf-8')
- text = text.replace(u'\r\n', u'\n')
- text = text.replace(u'\r', u'\n')
- return text
-
-
-def proc(bin_path, args_arr=()):
- """
- simple Popen wrapper to return std out/err utf8 strings
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param bin_path: string
- path to the binary that is going to be called
-
- :param args_arr : list/tuple
- all needed arguments
-
-
- :return: string, string
- ----------------------------------------------------------------------------
- generated output of both stdout and stderr
-
- >>> proc("echo", "test")
- 'test'
- """
- if not isfile(bin_path):
- eprint("bin is not a file: %s" % bin_path)
- return False
-
- # call uncrustify, hold output in memory
- call_arr = [bin_path]
- call_arr.extend(args_arr)
- proc = Popen(call_arr, stdout=PIPE, stderr=PIPE)
-
- out_txt, err_txt = proc.communicate()
-
- return decode_out(out_txt), decode_out(err_txt)
-
-
-def write_to_output_path(output_path, result_str):
- """
- writes the contents of result_str to the output path
- """
- print("Auto appending differences to: " + output_path)
-
- '''
- newline = None: this outputs \r\n
- newline = "\r": this outputs \r
- newline = "\n": this outputs \n
- newline = "" : this outputs \n
- For the sake of consistency, all newlines are now being written out as \n
- However, if the result_str itself contains \r\n, then \r\n will be output
- as this code doesn't post process the data being written out
- '''
- with open(output_path, 'w', encoding="utf-8", newline="\n") as f:
- f.write(result_str)
-
-
-def get_file_content(fp):
- """
- returns file content as an utf8 string or None if fp is not a file
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param fp: string
- path of the file that will be read
-
-
- :return: string or None
- ----------------------------------------------------------------------------
- the file content
-
- """
- out = None
-
- if isfile(fp):
- with open(fp, encoding="utf-8", newline="\n") as f:
- out = f.read()
- else:
- eprint("is not a file: %s" % fp)
-
- return out
-
-
-def check_generated_output(gen_expected_path, gen_result_path,
- result_manip=None, program_args=None):
- """
- compares the content of two files,
-
- is intended to compare a file that was generated during a call of Uncrustify
- with a file that has the expected content
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param gen_expected_path: string
- path to a file that will be compared with the generated file
-
- :param gen_result_path: string
- path to the file that will be generated by Uncrustify
-
- :param result_manip: lambda OR list or tuple of lambdas
- optional lambda function(s) that will be applied (before the comparison)
- on the content of the generated file,
- the lambda function(s) should accept one string parameter
-
- :param program_args: tuple of options
- a collection of multiple options used to add extra functionality to the
- script (i.e. auto apply changes or show diffs on command line)
-
- :return: bool
- ----------------------------------------------------------------------------
- True or False depending on whether both files have the same content
-
- >>> check_generated_output("/dev/null", "/dev/null")
- True
- """
-
- gen_exp_txt = get_file_content(gen_expected_path)
- if gen_exp_txt is None:
- return False
-
- gen_res_txt = get_file_content(gen_result_path)
- if gen_res_txt is None:
- return False
-
- if result_manip is not None:
- if type(result_manip) is list or type(result_manip) is tuple:
- for m in result_manip:
- gen_res_txt = m(gen_res_txt)
- else:
- gen_res_txt = result_manip(gen_res_txt)
-
- if gen_res_txt != gen_exp_txt:
- with open(gen_result_path, 'w', encoding="utf-8", newline="") as f:
- f.write(gen_res_txt)
-
- if program_args.apply and program_args.auto_output_path:
- write_to_output_path(program_args.auto_output_path, gen_res_txt)
- return True
- elif program_args.diff:
- print("\n************************************")
- print("Problem (1) with %s" % gen_result_path)
- print("************************************")
-
- file_diff = difflib.ndiff(gen_res_txt.splitlines(False),
- gen_exp_txt.splitlines(False))
-
- for line in file_diff:
- pprint.PrettyPrinter(indent=4, width=280).pprint(line)
-
- return False
- else:
- print("\nProblem (2) with %s" % gen_result_path)
- print("use(gen): '--diff' to find out why %s %s are different"
- % (gen_result_path, gen_expected_path))
- return False
-
- remove(gen_result_path)
-
- return True
-
-
-def check_std_output(expected_path, result_path, result_str, result_manip=None,
- program_args=None):
- """
- compares output generated by Uncrustify (std out/err) with a the content of
- a file
-
- Parameters
- ----------------------------------------------------------------------------
- :param expected_path: string
- path of the file that will be compared with the output of Uncrustify
-
- :param result_path: string
- path to which the Uncrustifys output will be saved in case of a mismatch
-
- :param result_str: string (utf8)
- the output string generated by Uncrustify
-
- :param result_manip: lambda OR list or tuple of lambdas
- see result_manip for check_generated_output
-
- :param program_args: tuple of options
- a collection of multiple options used to add extra functionality to the
- script (i.e. auto apply changes or show diffs on command line)
-
- :return: bool
- ----------------------------------------------------------------------------
- True or False depending on whether both files have the same content
-
- """
- exp_txt = get_file_content(expected_path)
- if exp_txt is None:
- return False
-
- if result_manip is not None:
- if type(result_manip) is list or type(result_manip) is tuple:
- for m in result_manip:
- result_str = m(result_str)
- else:
- result_str = result_manip(result_str)
-
- if result_str != exp_txt:
- with open(result_path, 'w', encoding="utf-8", newline="\n") as f:
- f.write(result_str)
-
- if program_args.apply and program_args.auto_output_path:
- write_to_output_path(program_args.auto_output_path, result_str)
- return True
-
- if program_args.diff:
- print("\n************************************")
- print("Problem (3) with result_path is %s" % result_path)
- print(" expected_path is %s" % expected_path)
- print("************************************")
-
- file_diff = difflib.ndiff(result_str.splitlines(False),
- exp_txt.splitlines(False))
-
- """
- change the value of width
- look at: If compact is false (the default)...
- """
- for line in file_diff:
- pprint.PrettyPrinter(indent=4, width=280).pprint(line)
- else:
- print("\nProblem (4) with %s" % result_path)
- print("use: '--diff' to find out why %s %s are different"
- % (result_path, expected_path))
- return False
- return True
-
-
-def check_uncrustify_output(
- uncr_bin,
- program_args,
- args_arr=(),
- out_expected_path=None, out_result_manip=None, out_result_path=None,
- err_expected_path=None, err_result_manip=None, err_result_path=None,
- gen_expected_path=None, gen_result_manip=None, gen_result_path=None):
- """
- compares outputs generated by Uncrustify with files
-
- Parameters
- ----------------------------------------------------------------------------
- :param uncr_bin: string
- path to the Uncrustify binary
-
- :param program_args: tuple of options
- a collection of multiple options used to add extra functionality to the
- script (i.e. auto apply changes or show diffs on command line)
-
- :param args_arr: list/tuple
- Uncrustify commandline arguments
-
- :param out_expected_path: string
- file that will be compared with Uncrustifys stdout output
-
- :param out_result_manip: string
- lambda function that will be applied to Uncrustifys stdout output
- (before the comparison with out_expected_path),
- the lambda function should accept one string parameter
-
- :param out_result_path: string
- path where Uncrustifys stdout output will be saved to in case of a
- mismatch
-
- :param err_expected_path: string
- path to a file that will be compared with Uncrustifys stderr output
-
- :param err_result_manip: string
- see out_result_manip (is applied to Uncrustifys stderr instead)
-
- :param err_result_path: string
- see out_result_path (is applied to Uncrustifys stderr instead)
-
- :param gen_expected_path: string
- path to a file that will be compared with a file generated by Uncrustify
-
- :param gen_result_path: string
- path to a file that will be generated by Uncrustify
-
- :param gen_result_manip:
- see out_result_path (is applied, in memory, to the file content of the
- file generated by Uncrustify instead)
-
-
- :return: bool
- ----------------------------------------------------------------------------
- True if all specified files match up, False otherwise
- """
- # check param sanity
- if not out_expected_path and not err_expected_path and not gen_expected_path:
- eprint("No expected comparison file provided")
- return False
-
- if bool(gen_expected_path) != bool(gen_result_path):
- eprint("'gen_expected_path' and 'gen_result_path' must be used in "
- "combination")
- return False
-
- if gen_result_manip and not gen_result_path:
- eprint("Set up 'gen_result_path' if 'gen_result_manip' is used")
-
- out_res_txt, err_res_txt = proc(uncr_bin, args_arr)
-
- ret_flag = True
-
- if program_args.apply:
- valid_path = [out_expected_path, err_expected_path, gen_expected_path]
- program_args.auto_output_path = next(item for item in valid_path if item is not None)
-
- if out_expected_path and not check_std_output(
- out_expected_path, out_result_path, out_res_txt,
- result_manip=out_result_manip,
- program_args=program_args):
- ret_flag = False
-
- if program_args.apply:
- valid_path = [err_expected_path, out_expected_path, gen_expected_path]
- program_args.auto_output_path = next(item for item in valid_path if item is not None)
-
- if err_expected_path and not check_std_output(
- err_expected_path, err_result_path, err_res_txt,
- result_manip=err_result_manip,
- program_args=program_args):
- ret_flag = False
-
- if gen_expected_path and not check_generated_output(
- gen_expected_path, gen_result_path,
- result_manip=gen_result_manip,
- program_args=program_args):
- ret_flag = False
-
- return ret_flag
-
-
-def clear_dir(path):
- """
- clears a directory by deleting and creating it again
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param path:
- path of the directory
-
-
- :return: void
- """
- if isdir(path):
- rmtree(path)
- mkdir(path)
-
-
-def reg_replace(pattern, replacement):
- """
- returns a generated lambda function that applies a regex string replacement
-
-
- Parameters:
- ----------------------------------------------------------------------------
-
- :param pattern: regex pattern
- the pattern that will be used to find targets to replace
-
- :param replacement: string
- the replacement that will be applied
-
-
- :return: lambda function
- ----------------------------------------------------------------------------
- the generated lambda function, takes in a string on which the
- replacement will be applied and returned
-
- >>> l = reg_replace(r"a", "b")
- >>> a = l("a")
- 'b'
- """
- return lambda text: re.sub(pattern, replacement, text)
-
-
-def string_replace(string_target, replacement):
- """
- returns a generated lambda function that applies a string replacement
-
- like reg_replace, uses string.replace() instead
- """
- return lambda text: text.replace(string_target, replacement)
-
-
-def s_path_join(path, *paths):
- """
- Wrapper for the os.path.join function, splits every path component to
- replace it with a system specific path separator. This is for consistent
- path separators (and also systems that don't use either '\' or '/')
-
-
- Parameter
- ----------------------------------------------------------------------------
- :params path, paths: string
- see os.path.join
-
- :return: string
- ----------------------------------------------------------------------------
- a joined path, see os.path.join
-
- >>> s_path_join('./z/d/', '../a/b/c/f')
- r'.\z\a\b\c\f'
- """
- p_splits = list(path_split(path))
- for r in map(path_split, paths):
- p_splits.extend(r)
- return path_join(*p_splits)
-
-
-def main(args):
- # set working dir to script dir
- script_dir = dirname(relpath(__file__))
-
- parser = argparse.ArgumentParser(description='Test CLI Options')
- parser.add_argument('--diff', action='store_true',
- help='show diffs when there is a test mismatch')
- parser.add_argument('--apply', action='store_true',
- help='auto apply the changes from the results folder to the output folder')
- parser.add_argument('--build',
- default=s_path_join(script_dir, '../../build'),
- help='specify location of the build directory')
- parser.add_argument('--config',
- default='Release',
- help='the build_type value (Release or Debug)')
-
- parsed_args = parser.parse_args()
-
- # find the uncrustify binary
- bin_found = False
- uncr_bin = ''
- bd_dir = parsed_args.build
- 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')]
- for uncr_bin in bin_paths:
- if not isfile(uncr_bin):
- eprint("is not a file: %s" % uncr_bin)
- else:
- print("Uncrustify binary found: %s" % uncr_bin)
- bin_found = True
- break
- if not bin_found:
- eprint("No Uncrustify binary found")
- sys_exit(EX_USAGE)
-
- clear_dir(s_path_join(script_dir, "./results"))
-
- return_flag = True
-
- #
- # Test help
- # -h -? --help --usage
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- out_expected_path=s_path_join(script_dir, 'output/help.txt'),
- out_result_path=s_path_join(script_dir, 'results/help.txt'),
- out_result_manip=[
- string_replace(' --mtime : Preserve mtime on replaced files.\n', ''),
- string_replace('.exe', ''),
- reg_replace(r'currently \d+ options', 'currently x options')
- ]):
- return_flag = False
-
- #
- # Test false parameter
- # --xyz
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['--xyz'],
- err_expected_path=s_path_join(script_dir, 'output/xyz-err.txt'),
- err_result_path=s_path_join(script_dir, 'results/xyz-err.txt')
- ):
- return_flag = False
-
- #
- # Test Version
- # -v
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-v'],
- out_expected_path=s_path_join(script_dir, 'output/v-out.txt'),
- out_result_path=s_path_join(script_dir, 'results/v-out.txt'),
- out_result_manip=reg_replace(r'Uncrustify.+', 'Uncrustify')
- ):
- return_flag = False
-
- #
- # Test --show-config
- #
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['--show-config'],
- out_expected_path=s_path_join(script_dir, 'output/show_config.txt'),
- out_result_path=s_path_join(script_dir, 'results/show_config.txt'),
- out_result_manip=reg_replace(r'\# Uncrustify.+', '')
- ):
- return_flag = False
-
- #
- # Test the truncate option
- #
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/truncate.cfg'),
- '-f', s_path_join(script_dir, 'input/truncate.cpp'),
- '-o', NULL_DEVICE,
- '-L', '83'],
- err_expected_path=s_path_join(script_dir, 'output/truncate.txt'),
- err_result_path=s_path_join(script_dir, 'results/truncate.txt'),
- err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
- reg_replace(RE_DO_SPACE, '')]
- ):
- return_flag = False
-
- #
- # Test --update-config
- #
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
- '--update-config'],
- out_expected_path=s_path_join(script_dir, 'output/mini_d_uc.txt'),
- out_result_path=s_path_join(script_dir, 'results/mini_d_uc.txt'),
- out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- err_result_path=s_path_join(script_dir, 'results/mini_d_error0.txt'),
- err_result_manip=string_replace('\\', '/')
- ):
- return_flag = False
-
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
- '--update-config'],
- out_expected_path=s_path_join(script_dir, 'output/mini_nd_uc.txt'),
- out_result_path=s_path_join(script_dir, 'results/mini_nd_uc.txt'),
- out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- err_result_path=s_path_join(script_dir, 'results/mini_d_error1.txt'),
- err_result_manip=string_replace('\\', '/')
- ):
- return_flag = False
-
- #
- # Test --update-config-with-doc
- #
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
- '--update-config-with-doc'],
- out_expected_path=s_path_join(script_dir, 'output/mini_d_ucwd.txt'),
- out_result_path=s_path_join(script_dir, 'results/mini_d_ucwd.txt'),
- out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- err_result_path=s_path_join(script_dir, 'results/mini_d_error2.txt'),
- err_result_manip=string_replace('\\', '/')
- ):
- return_flag = False
-
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
- '--update-config-with-doc'],
- out_expected_path=s_path_join(script_dir, 'output/mini_nd_ucwd.txt'),
- out_result_path=s_path_join(script_dir, 'results/mini_nd_ucwd.txt'),
- out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- err_result_path=s_path_join(script_dir, 'results/mini_d_error3.txt'),
- err_result_manip=string_replace('\\', '/')
- ):
- return_flag = False
-
- #
- # Test -p
- #
- if os_name != 'nt':
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
- '-f', s_path_join(script_dir, 'input/testSrcP.cpp'),
- '-p', s_path_join(script_dir, 'results/p.txt')],
- gen_expected_path=s_path_join(script_dir, 'output/p.txt'),
- gen_result_path=s_path_join(script_dir, 'results/p.txt'),
- gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
- ):
- return_flag = False
-
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
- '-p', s_path_join(script_dir, 'results/class_enum_struct_union.txt')],
- gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.txt'),
- gen_result_path=s_path_join(script_dir, 'results/class_enum_struct_union.txt'),
- gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
- ):
- return_flag = False
-
- if os_name == 'nt' or check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', '-',
- '-f', NULL_DEVICE,
- '-p', '-'],
- out_expected_path=s_path_join(script_dir, 'output/pc-.txt'),
- out_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', ''),
- out_result_path=s_path_join(script_dir, 'results/pc-.txt')
- ):
- pass
- #
- # Test -p and -c with '-' input
- #
- else:
- return_flag = False
-
- #
- # Test -p and --debug-csv-format option
- #
- if os_name != 'nt' and not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', '-',
- '-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
- '-p', s_path_join(script_dir, 'results/class_enum_struct_union.csv'),
- '--debug-csv-format'],
- gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.csv'),
- gen_result_path=s_path_join(script_dir, 'results/class_enum_struct_union.csv'),
- ):
- return_flag = False
-
- #
- # Test --tracking_space FILE
- #
- if parsed_args.config == 'Release':
- eprint("Release")
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/tracking_space.cfg'),
- '-f', s_path_join(script_dir, 'input/tracking_space.cpp'),
- '--tracking_space', s_path_join(script_dir, 'results/tracking_space.html')],
- gen_expected_path=s_path_join(script_dir, 'output/tracking_space.html'),
- gen_result_path=s_path_join(script_dir, 'results/tracking_space.html'),
- ):
- return_flag = False
- else:
- eprint("Debug")
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/tracking_space.cfg'),
- '-f', s_path_join(script_dir, 'input/tracking_space.cpp'),
- '--tracking_space', s_path_join(script_dir, 'results/tracking_space.html')],
- gen_expected_path=s_path_join(script_dir, 'output/Debug_tracking_space.html'),
- gen_result_path=s_path_join(script_dir, 'results/tracking_space.html'),
- ):
- return_flag = False
-
- #
- # Test --replace
- #
- copyfile("input/backup.h-save", "input/backup.h")
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/replace.cfg'),
- '-F', s_path_join(script_dir, 'input/replace.list'),
- '--replace'],
- gen_expected_path=s_path_join(script_dir, 'output/backup.h'),
- gen_result_path=s_path_join(script_dir, 'input/backup.h')
- ):
- return_flag = False
-
- # The flag CMAKE_BUILD_TYPE must be set to "Release", or all lines with
- # 'Description="<html>(<number>)text abc.</html>" must be changed to
- # 'Description="<html>text abc.</html>"
- #
- # OR it is possible to introduce a new parameter: gen_expected_manip
- #
- # The last "reg_replace(r'\r', '')" is necessary under Windows, because
- # fprintf puts a \r\n at the end of a line. To make the check, we use
- # output/universalindent.cfg, generated under Linux, with only \n at the
- # end of a line.
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-o', s_path_join(script_dir, 'results/universalindent.cfg'),
- '--universalindent'],
- gen_expected_path=s_path_join(script_dir, 'output/universalindent.cfg'),
- gen_result_path=s_path_join(script_dir, 'results/universalindent.cfg'),
- gen_result_manip=[reg_replace(r'version=U.+', ''),
- reg_replace(r'\(\d+\)', ''),
- reg_replace(r'\r', '')]
- ):
- return_flag = False
-
- # Debug Options:
- # -L
- # look at src/log_levels.h
- Ls_A = ['9', '21', '25', '28', '31', '36', '66', '92']
- for L in Ls_A:
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', NULL_DEVICE, '-L', L, '-o', NULL_DEVICE,
- '-f', s_path_join(script_dir, 'input/testSrc.cpp')],
- err_expected_path=s_path_join(script_dir, 'output/%s.txt' % L),
- err_result_path=s_path_join(script_dir, 'results/%s.txt' % L),
- err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
- reg_replace(r'\:[0-9]+\)', ' '),
- reg_replace(r'\[line [0-9]+', '[ '),
- reg_replace(r' \[[_|,|1|A-Z]*\]', ' []'),
- reg_replace(r', \[[_|,|1|A-Z]*\]', ', []'),
- reg_replace(r', \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ', []'),
- reg_replace(r' \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ' []'),
- reg_replace(r'^[ \t]*[_A-Za-z][_A-Za-z0-9]*::', ''),
- reg_replace(RE_CALLSTACK, '[CallStack]'),
- reg_replace(RE_DO_SPACE, '')]
- ):
- return_flag = False
-
- # Test logger buffer overflow
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', NULL_DEVICE, '-L', '99', '-o', NULL_DEVICE,
- '-f', s_path_join(script_dir, 'input/logger.cs')],
- err_expected_path=s_path_join(script_dir, 'output/logger_cs_L_99.txt'),
- err_result_path=s_path_join(script_dir, 'results/logger_cs_L_99.txt'),
- err_result_manip=reg_replace(r'[0-9]', '')
- ):
- return_flag = False
-
- # misc error_tests
- error_tests = ["I-842", "unmatched_close_pp"]
- for test in error_tests:
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/%s.cfg' % test),
- '-f', s_path_join(script_dir, 'input/%s.cpp' % test),
- '-o', NULL_DEVICE, '-q'],
- err_expected_path=s_path_join(script_dir, 'output/%s.txt' % test),
- err_result_path=s_path_join(script_dir, 'results/%s.txt' % test)
- ):
- return_flag = False
-
- if return_flag:
- print("all tests are OK")
- sys_exit(EX_OK)
- else:
- print("some problem(s) are still present")
- sys_exit(EX_SOFTWARE)
-
-
-if __name__ == "__main__":
- main(argv[1:])
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2591.cf b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2591.cf
deleted file mode 100644
index b93c5f06..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2591.cf
+++ /dev/null
@@ -1,2 +0,0 @@
-indent_columns = 2
-indent_align_assign = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U01-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U01-Cs.cfg
deleted file mode 100644
index 89f36ae7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U01-Cs.cfg
+++ /dev/null
@@ -1,281 +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_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.73.0/tests/config/U07-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U07-Cs.cfg
deleted file mode 100644
index b972e1fd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U07-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_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.73.0/tests/config/U08-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U08-Cpp.cfg
deleted file mode 100644
index 967ea74d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U08-Cpp.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_func_proto_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U08-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U08-Cs.cfg
deleted file mode 100644
index 31f8df36..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U08-Cs.cfg
+++ /dev/null
@@ -1,281 +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_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.73.0/tests/config/U26-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U26-Cpp.cfg
deleted file mode 100644
index 2e611f4b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U26-Cpp.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-sp_func_call_paren = remove
-indent_columns = 4
-indent_with_tabs = 0
-indent_off_after_return_new = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11095.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11095.cfg
deleted file mode 100644
index 6c12366e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11095.cfg
+++ /dev/null
@@ -1,318 +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_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.73.0/tests/config/UNI-11993.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11993.cfg
deleted file mode 100644
index 57e7ff00..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11993.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_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.73.0/tests/config/UNI-18437.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18437.cfg
deleted file mode 100644
index 4ba5e224..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18437.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_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_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.73.0/tests/config/UNI-29935.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-29935.cfg
deleted file mode 100644
index f5543d81..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-29935.cfg
+++ /dev/null
@@ -1,147 +0,0 @@
-input_tab_size = 4
-string_replace_tab_chars = true
-disable_processing_cmt = "*begin-nonstandard-formatting*"
-enable_processing_cmt = "*end-nonstandard-formatting*"
-utf8_bom = remove
-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_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_for = remove
-sp_before_semi_for_empty = remove
-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_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_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_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_after_new = force
-sp_between_new_paren = remove
-sp_skip_vbrace_tokens = true
-indent_columns = 4
-indent_with_tabs = 0
-indent_cs_delegate_brace = true
-indent_namespace = true
-indent_class = true
-indent_func_call_param = true
-indent_func_def_param = true
-indent_func_proto_param = true
-indent_switch_case = 4
-indent_label = -4
-indent_access_spec = -4
-indent_align_assign = false
-indent_align_paren = false
-indent_oc_block_msg_xcode_style = true
-indent_off_after_return_new = true
-indent_single_after_return = true
-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_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_do_brace = force
-nl_brace_while = force
-nl_switch_brace = force
-nl_case_colon_brace = force
-nl_namespace_brace = force
-nl_class_brace = force
-nl_fdef_brace = force
-nl_max = 3
-nl_after_func_body = 2
-nl_property_brace = force
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-align_left_shift = false
-cmt_convert_tab_to_spaces = true
-cmt_indent_multi = false
-cmt_multi_check_last = false
-mod_remove_extra_semicolon = true
-mod_remove_empty_return = true
-use_options_overriding_for_qt_macros = false
-warn_level_tabs_found_in_verbatim_string_literals = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-32657.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-32657.cfg
deleted file mode 100644
index 034ba33b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-32657.cfg
+++ /dev/null
@@ -1,315 +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_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.73.0/tests/config/UNI-32658.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-32658.cfg
deleted file mode 100644
index d6bd63c5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-32658.cfg
+++ /dev/null
@@ -1,285 +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_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.73.0/tests/config/UNI-37241.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-37241.cfg
deleted file mode 100644
index 5d377cfd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-37241.cfg
+++ /dev/null
@@ -1,286 +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_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.73.0/tests/config/aet.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet.cfg
deleted file mode 100644
index d3729edf..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet.cfg
+++ /dev/null
@@ -1,507 +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_sing_line_comments = 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_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_emb_cmt = ignore
-sp_num_before_tr_emb_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.73.0/tests/config/avalon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon.cfg
deleted file mode 100644
index f3e3ce77..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-sp_before_byref = remove
-sp_before_square = force
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-indent_columns = 2
-nl_start_of_file = remove
-nl_struct_brace = remove
-nl_fdef_brace = force
-nl_after_func_body = 2
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-mod_full_brace_if = add
-sp_before_vardef_square = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon4.cfg
deleted file mode 100644
index bdf0f374..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon4.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-sp_before_ptr_star = remove
-sp_after_ptr_star = force
-sp_before_angle = remove
-sp_inside_angle = remove
-sp_after_comma = force
-sp_before_dc = remove
-indent_columns = 2
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_if_brace = remove
-nl_func_decl_args = remove
-mod_full_brace_if = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben2.cfg
deleted file mode 100644
index ff3bd751..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben2.cfg
+++ /dev/null
@@ -1,44 +0,0 @@
-utf8_byte = true
-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_before_sparen = force
-sp_after_comma = force
-sp_inside_braces = force
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-sp_func_call_paren = remove
-sp_cond_colon = add
-sp_cond_question = add
-indent_columns = 3
-indent_with_tabs = 0
-indent_class = true
-indent_label = 2
-nl_assign_brace = add
-nl_func_var_def_blk = 1
-nl_fcall_brace = add
-nl_if_brace = add
-nl_else_brace = add
-nl_for_brace = add
-nl_switch_brace = add
-nl_before_case = true
-nl_fdef_brace = add
-eat_blanks_after_open_brace = true
-nl_after_return = true
-align_var_def_span = 2
-align_var_def_star_style = 1
-align_assign_span = 1
-align_struct_init_span = 3
-cmt_convert_tab_to_spaces = true
-cmt_star_cont = true
-mod_full_brace_for = add
-mod_full_brace_if = add
-mod_paren_on_return = add
-mod_remove_extra_semicolon = true
-mod_add_long_function_closebrace_comment = 40
-mod_add_long_switch_closebrace_comment = 40
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_012.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_012.cfg
deleted file mode 100644
index 47906d8b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_012.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-sp_arith = force
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-sp_before_byref = remove
-sp_inside_angle = remove
-sp_after_angle = force
-indent_columns = 3
-indent_class = true
-indent_access_spec = 2
-nl_func_var_def_blk = 1
-nl_fdef_brace = add
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_014.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_014.cfg
deleted file mode 100644
index cd7b8cff..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_014.cfg
+++ /dev/null
@@ -1,41 +0,0 @@
-tok_split_gte = true
-sp_arith = force
-sp_assign = force
-sp_assign_default = remove
-sp_compare = force
-sp_inside_paren = remove
-sp_paren_paren = remove
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-sp_before_byref = remove
-sp_before_angle = remove
-sp_inside_angle = remove
-sp_inside_angle_empty = remove
-sp_angle_paren_empty = remove
-sp_angle_word = force
-sp_inside_square = remove
-sp_after_comma = force
-sp_func_proto_paren = remove
-sp_inside_fparen = remove
-sp_func_call_paren = remove
-sp_before_dc = remove
-sp_after_dc = remove
-indent_columns = 3
-indent_class = true
-indent_access_spec = 2
-nl_func_var_def_blk = 1
-nl_struct_brace = add
-nl_fdef_brace = add
-nl_after_brace_open = true
-nl_after_access_spec = 1
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-align_var_def_span = 2
-align_assign_span = 1
-align_var_class_span = 2
-align_typedef_gap = 3
-align_typedef_span = 5
-align_right_cmt_span = 3
-align_pp_define_gap = 4
-align_pp_define_span = 3
-mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_018.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_018.cfg
deleted file mode 100644
index 06fe5b60..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_018.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-indent_columns = 3
-align_var_struct_span = 3 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_021.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_021.cfg
deleted file mode 100644
index 7012173d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_021.cfg
+++ /dev/null
@@ -1,10 +0,0 @@
-sp_arith = force
-sp_assign = force
-sp_inside_paren = remove
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-sp_before_byref = remove
-indent_columns = 3
-indent_with_tabs = 0
-nl_after_semicolon = true
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_022.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_022.cfg
deleted file mode 100644
index 8311b975..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_022.cfg
+++ /dev/null
@@ -1,10 +0,0 @@
-sp_inside_paren = remove
-sp_before_ptr_star = force
-sp_between_ptr_star = remove
-sp_after_ptr_star = remove
-indent_columns = 3
-indent_class = true
-nl_fdef_brace = add
-align_var_def_span = 2
-align_var_def_star_style = 1
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_047.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_047.cfg
deleted file mode 100644
index b00b8995..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_047.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-indent_columns = 3
-align_right_cmt_span = 3 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_058.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_058.cfg
deleted file mode 100644
index 397ae6e9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_058.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-sp_inside_paren = remove
-sp_before_sparen = force
-sp_return_paren = remove
-indent_columns = 3
-nl_switch_brace = add
-eat_blanks_before_close_brace = true
-align_nl_cont = true
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_074.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_074.cfg
deleted file mode 100644
index 9b14e775..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_074.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-indent_columns = 3 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_086.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_086.cfg
deleted file mode 100644
index ecf99d0d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_086.cfg
+++ /dev/null
@@ -1,22 +0,0 @@
-sp_compare = force
-sp_inside_paren = remove
-sp_before_sparen = force
-sp_inside_sparen = remove
-sp_before_semi_for_empty = force
-sp_after_semi_for_empty = force
-indent_columns = 3
-indent_with_tabs = 0
-nl_enum_brace = add
-nl_struct_brace = add
-nl_if_brace = add
-nl_else_brace = add
-nl_for_brace = add
-nl_before_case = true
-nl_after_brace_open = true
-align_var_def_star_style = 1
-align_var_struct_span = 3
-mod_full_brace_for = add
-mod_full_brace_if = add
-mod_paren_on_return = add
-mod_remove_extra_semicolon = true
-mod_add_long_function_closebrace_comment = 40
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_087.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_087.cfg
deleted file mode 100644
index df282f1e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_087.cfg
+++ /dev/null
@@ -1,36 +0,0 @@
-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_before_sparen = force
-sp_after_comma = force
-sp_inside_braces = force
-sp_cond_colon = add
-sp_cond_question = add
-indent_columns = 3
-indent_with_tabs = 0
-indent_label = 2
-nl_assign_brace = add
-nl_func_var_def_blk = 1
-nl_fcall_brace = add
-nl_if_brace = add
-nl_else_brace = add
-nl_for_brace = add
-nl_switch_brace = add
-nl_before_case = true
-eat_blanks_after_open_brace = true
-nl_after_return = true
-align_var_def_span = 2
-align_var_def_star_style = 1
-align_assign_span = 1
-align_struct_init_span = 3
-cmt_star_cont = true
-mod_full_brace_for = add
-mod_full_brace_if = add
-mod_paren_on_return = add
-mod_add_long_function_closebrace_comment = 40
-mod_add_long_switch_closebrace_comment = 40
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_100.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_100.cfg
deleted file mode 100644
index bb7a14c1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_100.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-sp_inside_sparen = remove
-sp_func_def_paren = remove
-sp_func_call_paren = remove
-indent_columns = 3
-indent_with_tabs = 0
-indent_class = true
-nl_for_brace = add
-nl_fdef_brace = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_105.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_105.cfg
deleted file mode 100644
index 4b30fcfe..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_105.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-sp_inside_paren = remove
-sp_after_cast = remove
-sp_func_def_paren = remove
-sp_func_call_paren = remove
-indent_columns = 3
-indent_with_tabs = 0
-nl_if_brace = add
-nl_switch_brace = add
-nl_before_case = true
-nl_fdef_brace = add
-mod_full_brace_if = add
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1620.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1620.cfg
deleted file mode 100644
index 1d7582b8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1620.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_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_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.73.0/tests/config/bug_1637.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1637.cfg
deleted file mode 100644
index 40820de1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1637.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_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.73.0/tests/config/bug_1650.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1650.cfg
deleted file mode 100644
index cd5a2504..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1650.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_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.73.0/tests/config/bug_1689.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1689.cfg
deleted file mode 100644
index 0660e498..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1689.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_before_unnamed_byref = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_752.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_752.cfg
deleted file mode 100644
index 7bc4c41d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_752.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-sp_before_tr_emb_cmt = force
-sp_num_before_tr_emb_cmt = 4
-indent_columns = 4
-indent_with_tabs = 0
-nl_end_of_file = remove \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-2.cfg
deleted file mode 100644
index fccbbfe8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-2.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-sp_before_byref = force
-sp_after_byref = force
-sp_addr = force \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-center.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-center.cfg
deleted file mode 100644
index 9d8bdc1f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-center.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-# Places the byref as follows: "int & foo"
-sp_before_byref = force
-indent_columns = 3
-indent_class = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-left.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-left.cfg
deleted file mode 100644
index 6bc66685..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-left.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-# Places the byref as follows: "int &foo"
-sp_before_byref = force
-sp_after_byref = remove
-indent_columns = 3
-indent_class = true
-
-# Add or remove space after a reference sign '&amp;', if followed by a func proto/def.
-sp_after_byref_func = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-right.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-right.cfg
deleted file mode 100644
index 60a2fbbc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/byref-right.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-# Places the byref as follows: "int& foo"
-sp_before_byref = remove
-indent_columns = 3
-indent_class = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-types.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-types.txt
deleted file mode 100644
index cfc74c6e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-types.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# a simple list of stuff that should be detected as a CT_TYPE
-# this usually isn't necessary because types are detected from the context.
-#
-# In the future, I may allow arbitrary CT_xxx stuff to be specified, as
-# well as a language
-#
-
-INT8
-UINT8
-INT16
-UINT16
-INT32
-UINT32
-INT64
-UINT64
-FLOAT
-CHAR
-DOUBLE
-TRUE
-FALSE
-BOOL
-FILE
-DIR
-
-# this is for the type-cast.c test
-bat
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clark.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clark.cfg
deleted file mode 100644
index 2ea5739a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clark.cfg
+++ /dev/null
@@ -1,37 +0,0 @@
-input_tab_size = 2
-sp_arith = add
-sp_assign = add
-sp_compare = add
-sp_before_sparen = add
-sp_inside_sparen = remove
-sp_after_comma = add
-sp_inside_braces = force
-sp_cond_colon = add
-sp_cond_question = add
-indent_columns = 2
-indent_with_tabs = 0
-indent_braces = true
-indent_sing_line_comments = 2
-indent_switch_case = 2
-nl_func_var_def_blk = 1
-nl_if_brace = add
-nl_else_brace = add
-nl_for_brace = add
-nl_brace_while = add
-nl_switch_brace = add
-nl_before_case = true
-nl_before_if = force
-nl_after_if = force
-nl_before_for = force
-nl_after_for = force
-nl_before_while = force
-nl_after_while = force
-nl_before_switch = force
-nl_after_switch = force
-nl_before_do = force
-nl_after_func_body = 2
-mod_full_brace_for = remove
-mod_full_brace_if = remove
-mod_full_brace_nl = 3
-mod_full_brace_while = remove
-mod_paren_on_return = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d.cfg
deleted file mode 100644
index 8b63fd62..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d.cfg
+++ /dev/null
@@ -1,46 +0,0 @@
-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_before_sparen = force
-sp_inside_sparen = 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.73.0/tests/config/d2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d2.cfg
deleted file mode 100644
index ab3eebcf..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d2.cfg
+++ /dev/null
@@ -1,48 +0,0 @@
-sp_arith = force
-sp_compare = force
-sp_inside_paren = remove
-sp_paren_paren = remove
-sp_before_template_paren = force
-sp_before_sparen = force
-sp_inside_sparen = remove
-sp_after_comma = force
-sp_after_cast = remove
-sp_func_def_paren = remove
-sp_inside_fparen = remove
-sp_fparen_brace = force
-sp_else_brace = force
-sp_do_brace_open = force
-sp_while_paren_open = force
-indent_columns = 4
-indent_with_tabs = 0
-indent_class = true
-indent_case_brace = 4
-nl_start_of_file = remove
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_func_var_def_blk = 1
-nl_enum_brace = remove
-nl_if_brace = remove
-nl_else_brace = remove
-nl_for_brace = remove
-nl_while_brace = remove
-nl_do_brace = remove
-nl_switch_brace = remove
-nl_before_case = true
-nl_fdef_brace = remove
-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_right_cmt_span = 3
-cmt_star_cont = true
-mod_full_brace_if = add
-mod_full_brace_while = add
-mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/empty_body.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/empty_body.cfg
deleted file mode 100644
index 0276b19a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/empty_body.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-sp_arith = force
-sp_before_ptr_star = remove
-sp_after_ptr_star = force
-indent_columns = 4
-nl_collapse_empty_body = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/freebsd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/freebsd.cfg
deleted file mode 100644
index e34be04f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/freebsd.cfg
+++ /dev/null
@@ -1,26 +0,0 @@
-sp_arith = force
-sp_bool = force
-sp_before_ptr_star = force
-sp_after_ptr_star = remove
-sp_before_semi_for_empty = force
-sp_after_semi_for_empty = force
-sp_type_func = force
-sp_brace_else = force
-indent_continue = 4
-nl_brace_else = remove
-nl_for_brace = add
-nl_while_brace = add
-nl_switch_brace = add
-nl_before_case = true
-nl_after_func_proto_group = 2
-nl_after_func_body = 3
-pos_arith = trail
-align_var_def_span = 1
-align_var_def_star_style = 1
-align_typedef_gap = 3
-align_typedef_span = 5
-mod_full_brace_for = add
-mod_full_brace_if = add
-mod_full_brace_while = add
-mod_full_paren_if_bool = true
-mod_remove_extra_semicolon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_param.cfg
deleted file mode 100644
index 3ad93ace..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_param.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-sp_paren_paren = remove
-sp_after_ptr_star = remove
-sp_func_proto_paren = remove
-sp_inside_fparen = remove
-sp_after_tparen_close = remove \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_3116.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_3116.cfg
deleted file mode 100644
index 03aecb39..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_3116.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-indent_cpp_lambda_body = true
-indent_columns = 4
-indent_with_tabs = 0
-indent_continue = 4
-indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_527.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_527.cfg
deleted file mode 100644
index 855f218d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_527.cfg
+++ /dev/null
@@ -1,265 +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_sing_line_comments = 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_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.73.0/tests/config/kw_subst3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst3.cfg
deleted file mode 100644
index 7dc7a63b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst3.cfg
+++ /dev/null
@@ -1,70 +0,0 @@
-input_tab_size = 4
-output_tab_size = 4
-sp_arith = add
-sp_assign = add
-sp_enum_assign = add
-sp_bool = add
-sp_compare = add
-sp_before_sparen = add
-sp_inside_sparen = remove
-sp_after_sparen = add
-sp_sparen_brace = add
-sp_special_semi = add
-sp_after_comma = add
-sp_sizeof_paren = remove
-sp_type_func = add
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-sp_inside_fparens = remove
-sp_inside_fparen = remove
-sp_func_call_paren = remove
-sp_else_brace = add
-indent_columns = 4
-indent_with_tabs = 0
-indent_switch_case = 4
-nl_end_of_file = add
-nl_end_of_file_min = 1
-nl_assign_brace = add
-nl_func_var_def_blk = 1
-nl_enum_brace = add
-nl_struct_brace = add
-nl_union_brace = add
-nl_if_brace = add
-nl_brace_else = add
-nl_elseif_brace = add
-nl_else_brace = add
-nl_for_brace = add
-nl_while_brace = add
-nl_do_brace = add
-nl_switch_brace = add
-nl_before_case = true
-nl_after_case = true
-nl_fdef_brace = add
-nl_after_semicolon = true
-nl_after_brace_open = true
-nl_after_brace_open_cmt = true
-nl_after_func_proto_group = 4
-nl_after_func_body = 4
-nl_after_func_body_one_liner = 4
-nl_after_return = true
-align_var_def_span = 10
-align_var_def_star_style = 1
-align_var_def_amp_style = 1
-align_var_def_colon = true
-align_assign_span = 10
-align_assign_thresh = 4
-align_enum_equ_span = 10
-cmt_sp_before_star_cont = 1
-cmt_insert_file_header = "file_header.txt"
-cmt_insert_file_footer = "file_footer.txt"
-cmt_insert_func_header = "function_header.txt"
-mod_full_brace_do = add
-mod_full_brace_for = add
-mod_full_brace_if = add
-mod_full_brace_while = add
-mod_remove_extra_semicolon = true
-mod_add_long_function_closebrace_comment = 50
-mod_add_long_switch_closebrace_comment = 50
-pp_indent_at_level = true
-pp_if_indent_code = true
-pp_define_at_level = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda1.cfg
deleted file mode 100644
index 2535bb05..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda1.cfg
+++ /dev/null
@@ -1,15 +0,0 @@
-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
-mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-1.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-1.rerun.cfg
deleted file mode 100644
index dc225a1c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-1.rerun.cfg
+++ /dev/null
@@ -1 +0,0 @@
-include "nl_before_func_body_def-1.cfg"
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-f.cfg
deleted file mode 100644
index dafe1c9d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-f.cfg
+++ /dev/null
@@ -1,16 +0,0 @@
-# Forces a newline between template '>' and class
-tok_split_gte = true
-sp_arith = force
-sp_compare = force
-sp_before_byref = remove
-sp_after_byref = force
-sp_after_angle = force
-sp_angle_paren_empty = remove
-sp_after_operator = force
-sp_inside_braces_struct = force
-sp_inside_braces = force
-sp_func_proto_paren = remove
-indent_columns = 3
-indent_class = true
-nl_template_class = force
-nl_template_func = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-r.cfg
deleted file mode 100644
index 6220a8db..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_template-r.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Removes newlines between template '>' and class
-tok_split_gte = true
-sp_arith = force
-sp_compare = force
-sp_before_unnamed_ptr_star = remove
-sp_before_byref = remove
-sp_after_byref = force
-sp_after_angle = force
-sp_angle_paren_empty = remove
-sp_after_operator = force
-sp_after_cast = force
-sp_inside_braces_struct = force
-sp_inside_braces = force
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-indent_columns = 3
-indent_class = true
-nl_template_class = remove
-nl_template_func = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-force.cfg
deleted file mode 100644
index fb2b90ad..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-force.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-# Forces a space after an operator
-sp_before_byref = remove
-sp_after_byref = force
-sp_after_operator = force
-sp_after_operator_sym = force
-indent_columns = 3
-indent_class = true
-align_right_cmt_span = 2 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-1.cfg
deleted file mode 100644
index ceebcf9e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-1.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-# Removes a space after an operator
-sp_before_byref = remove
-sp_after_byref = force
-sp_after_operator = remove
-sp_after_operator_sym = remove
-indent_columns = 3
-indent_class = true
-align_var_def_span = 2
-align_var_class_span = 2
-align_right_cmt_span = 2
-align_mix_var_proto = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-2.cfg
deleted file mode 100644
index f7fb60f3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove-align-2.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# Removes a space after an operator
-sp_before_byref = remove
-sp_after_byref = force
-sp_after_operator = remove
-sp_after_operator_sym = remove
-indent_columns = 3
-indent_class = true
-align_var_def_span = 2
-align_var_class_span = 2
-align_right_cmt_span = 2
-align_on_operator = true
-align_mix_var_proto = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove.cfg
deleted file mode 100644
index 5c034f26..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op-space-remove.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-# Removes a space after an operator
-sp_before_byref = remove
-sp_after_byref = force
-sp_after_operator = remove
-sp_after_operator_sym = remove
-indent_columns = 3
-indent_class = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pascal_ptr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pascal_ptr.cfg
deleted file mode 100644
index 2da7f0ae..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pascal_ptr.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-sp_arith = force
-sp_before_ptr_star = remove
-sp_after_ptr_star = force
-indent_columns = 4 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pawn.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pawn.cfg
deleted file mode 100644
index 53858314..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pawn.cfg
+++ /dev/null
@@ -1,14 +0,0 @@
-input_tab_size = 4
-sp_arith = force
-sp_after_tag = remove
-sp_inside_braces = add
-sp_brace_else = force
-sp_else_brace = force
-indent_columns = 4
-indent_with_tabs = 0
-nl_brace_else = remove
-nl_fdef_brace = force
-mod_full_brace_for = add
-mod_full_brace_function = add
-mod_full_brace_if = add
-mod_pawn_semicolon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/preproc-cleanup.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/preproc-cleanup.cfg
deleted file mode 100644
index 3bd31722..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/preproc-cleanup.cfg
+++ /dev/null
@@ -1,36 +0,0 @@
-# Clean up preprocessor output, ie from "gcc -E"
-sp_arith = force
-sp_inside_paren = remove
-sp_paren_paren = remove
-sp_after_ptr_star = remove
-sp_after_cast = remove
-sp_sizeof_paren = remove
-sp_func_proto_paren = remove
-sp_func_def_paren = remove
-sp_inside_fparen = remove
-sp_after_tparen_close = remove
-sp_func_call_paren = remove
-sp_return_paren = remove
-sp_attribute_paren = remove
-sp_cond_colon = add
-sp_cond_question = add
-indent_columns = 3
-nl_enum_brace = add
-nl_struct_brace = add
-nl_union_brace = add
-nl_after_semicolon = true
-nl_after_brace_open = true
-nl_max = 4
-nl_after_func_proto_group = 2
-nl_after_func_body = 2
-eat_blanks_after_open_brace = true
-eat_blanks_before_close_brace = true
-align_var_def_star_style = 1
-align_var_def_inline = true
-align_enum_equ_span = 16
-align_var_struct_span = 99
-align_typedef_gap = 3
-align_typedef_span = 5
-mod_paren_on_return = add
-pp_space = remove
-sp_before_vardef_square = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr-arith.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr-arith.cfg
deleted file mode 100644
index 2aeab486..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr-arith.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-sp_arith = add # keep
-sp_before_ptr_star = force
-sp_after_ptr_star = remove \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-1.cfg
deleted file mode 100644
index cde1e26b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-1.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-sp_before_ptr_star = remove
-sp_after_ptr_star = force \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-2.cfg
deleted file mode 100644
index 36e38d4e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-2.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-sp_before_ptr_star = force
-sp_between_ptr_star = remove
-sp_after_ptr_star = remove
-sp_before_byref = force
-sp_after_byref = remove
-
-macro-close NS_SWIFT_NAME
-macro-close VIEW_CONTROLLER_MACRO
-macro-close MACRO_FUNCTION
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-3.cfg
deleted file mode 100644
index cbfef35f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ptr_star-3.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-sp_before_ptr_star = force
-sp_before_unnamed_ptr_star = remove
-sp_between_ptr_star = remove
-sp_after_ptr_star = remove
-sp_after_ptr_star_func = force \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.3315874.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.3315874.cfg
deleted file mode 100644
index 68abb2a3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.3315874.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-sp_before_byref = force
-sp_after_byref = remove
-sp_after_operator_sym = remove
-sp_func_proto_paren = force
-sp_inside_fparen = force
-nl_max = 2
-align_var_def_amp_style = 1
-align_right_cmt_span = 15
-align_func_proto_span = 100
-align_func_proto_gap = 5
-align_on_operator = true \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sim.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sim.cfg
deleted file mode 100644
index d92fba11..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sim.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-sp_after_ptr_star = force
-sp_before_angle = remove
-sp_after_angle = remove
-indent_columns = 2
-indent_class = true
-nl_collapse_empty_body = true
-nl_end_of_file = force
-nl_end_of_file_min = 1
-nl_template_class = force
-eat_blanks_after_open_brace = true
-pos_class_colon = trail \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_byref-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_byref-r.cfg
deleted file mode 100644
index cf8228ab..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_byref-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_before_byref = remove \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-f.cfg
deleted file mode 100644
index 07527d5f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_before_ellipsis = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-r.cfg
deleted file mode 100644
index faec4b72..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ellipsis-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_before_ellipsis = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-a.cfg
deleted file mode 100644
index b2391821..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-a.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-sp_before_tr_emb_cmt = add
-sp_num_before_tr_emb_cmt = 2
-indent_columns = 2
-nl_end_of_file = force
-nl_end_of_file_min = 1 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-f.cfg
deleted file mode 100644
index c0e72b53..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_tr_emb_cmt-f.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-sp_before_tr_emb_cmt = force
-sp_num_before_tr_emb_cmt = 2
-indent_columns = 2
-nl_end_of_file = force
-nl_end_of_file_min = 1 \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-f.cfg
deleted file mode 100644
index 84c0238e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_bool = force \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-r.cfg
deleted file mode 100644
index 0bce4fb0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_bool-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_bool = remove \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-f.cfg
deleted file mode 100644
index 465ee3cd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_brace_brace = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-r.cfg
deleted file mode 100644
index 73e4d429..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_brace-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_brace_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-f.cfg
deleted file mode 100644
index 8dc95ae1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_cpp_lambda_paren_brace = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-r.cfg
deleted file mode 100644
index 8875383e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_paren_brace-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_cpp_lambda_paren_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-f.cfg
deleted file mode 100644
index baea51dd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_cpp_lambda_square_brace = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-r.cfg
deleted file mode 100644
index 703f0bcc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_brace-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_cpp_lambda_square_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-f.cfg
deleted file mode 100644
index 93609c5e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_cpp_lambda_square_paren = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-r.cfg
deleted file mode 100644
index e1e00b21..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_square_paren-r.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-sp_cpp_lambda_square_paren = remove
-sp_type_brace_init_lst = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_empty.cfg
deleted file mode 100644
index 0848c080..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_empty.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-sp_before_byref = remove
-sp_after_comma = force
-sp_func_call_paren = force
-sp_func_call_paren_empty = remove
-sp_return_paren = remove
-indent_columns = 3
-nl_func_var_def_blk = 1
-nl_fcall_brace = add
-nl_fdef_brace = add
-align_func_params = true
-align_var_def_star_style = 1
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_class_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_class_empty.cfg
deleted file mode 100644
index 252b598b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_class_empty.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-sp_before_byref = remove
-sp_after_comma = force
-sp_func_call_paren = force
-sp_func_call_paren_empty = remove
-sp_func_class_paren_empty = force
-sp_return_paren = remove
-indent_columns = 3
-nl_func_var_def_blk = 1
-nl_fcall_brace = add
-nl_fdef_brace = add
-align_func_params = true
-align_var_def_star_style = 1
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_def_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_def_empty.cfg
deleted file mode 100644
index 688918b1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_def_empty.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-sp_before_byref = remove
-sp_after_comma = force
-sp_func_def_paren_empty = force
-sp_func_call_paren = force
-sp_func_call_paren_empty = remove
-sp_return_paren = remove
-indent_columns = 3
-nl_func_var_def_blk = 1
-nl_fcall_brace = add
-nl_fdef_brace = add
-align_func_params = true
-align_var_def_star_style = 1
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_proto_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_proto_empty.cfg
deleted file mode 100644
index b0601328..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_proto_empty.cfg
+++ /dev/null
@@ -1,13 +0,0 @@
-sp_before_byref = remove
-sp_after_comma = force
-sp_func_proto_paren_empty = force
-sp_func_call_paren = force
-sp_func_call_paren_empty = remove
-sp_return_paren = remove
-indent_columns = 3
-nl_func_var_def_blk = 1
-nl_fcall_brace = add
-nl_fdef_brace = add
-align_func_params = true
-align_var_def_star_style = 1
-mod_paren_on_return = add \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_type_brace_init_lst-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_type_brace_init_lst-f.cfg
deleted file mode 100644
index 63de9668..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_type_brace_init_lst-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_inside_type_brace_init_lst = force \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_comma.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_comma.cfg
deleted file mode 100644
index f54ca437..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_comma.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-# Add or remove space between an open paren and comma: '(,' vs. '( ,'. Default=Force.
-sp_paren_comma = remove
-
-# should not be used
-sp_before_comma = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-f.cfg
deleted file mode 100644
index a9662d76..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_paren_ellipsis = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-r.cfg
deleted file mode 100644
index 4d547370..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_ellipsis-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_paren_ellipsis = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-f.cfg
deleted file mode 100644
index 743b18f6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_sizeof_ellipsis = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-r.cfg
deleted file mode 100644
index e54a000c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_sizeof_ellipsis = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-f.cfg
deleted file mode 100644
index 43cffee2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_sizeof_ellipsis_paren = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-r.cfg
deleted file mode 100644
index ae307eac..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_sizeof_ellipsis_paren-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_sizeof_ellipsis_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-f.cfg
deleted file mode 100644
index d16265f5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_type_ellipsis = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-r.cfg
deleted file mode 100644
index a68216c9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_ellipsis-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_type_ellipsis = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-f.cfg
deleted file mode 100644
index bf878d19..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-f.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_type_func = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-r.cfg
deleted file mode 100644
index aec00124..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-r.cfg
+++ /dev/null
@@ -1 +0,0 @@
-sp_type_func = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-force.cfg
deleted file mode 100644
index d36e014a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-force.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# Forces a newline between template '>' and class
-tok_split_gte = true
-sp_arith = force
-sp_compare = remove # just to show a difference
-sp_before_byref = remove
-sp_after_byref = force
-sp_template_angle = remove
-sp_before_angle = force
-sp_inside_angle = force
-sp_inside_angle_empty = force
-sp_after_angle = force
-sp_angle_paren = force
-sp_angle_paren_empty = force
-sp_after_operator = force
-sp_inside_braces_struct = force
-sp_inside_braces = force
-sp_func_proto_paren = remove
-indent_columns = 3
-indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-remove.cfg
deleted file mode 100644
index e950e113..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_sp-remove.cfg
+++ /dev/null
@@ -1,17 +0,0 @@
-# remove spaces around template defs
-tok_split_gte = true
-sp_arith = force
-sp_compare = force
-sp_before_byref = remove
-sp_after_byref = force
-sp_before_angle = remove
-sp_inside_angle = remove
-sp_inside_angle_empty = remove
-sp_after_angle = remove
-sp_angle_paren_empty = remove
-sp_inside_braces_struct = force
-sp_inside_braces = force
-sp_func_proto_paren = remove
-sp_func_call_paren = remove
-indent_columns = 3
-indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cpp.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cpp.test
deleted file mode 100644
index 84bbaa0f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cpp.test
+++ /dev/null
@@ -1,961 +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 clark.cfg cpp/indent-c.cpp
-02103 clark.cfg cpp/output.cpp
-
-30000 ben_001.cfg cpp/cout.cpp
-30001 sp_angle_colon.cfg cpp/alt_tokens.cpp
-30002 ben_003.cfg cpp/constructor.cpp
-30003 ben_004.cfg cpp/strings.cpp
-
-30010 ben_005.cfg cpp/class.h
-30011 ben_006.cfg cpp/misc.cpp
-30012 avalon2.cfg cpp/misc2.cpp
-30013 sim.cfg cpp/sim.h
-30014 indent_columns-3.cfg cpp/ctor-var.cpp
-30015 ben_008.cfg cpp/exception.cpp
-30016 custom-open.cfg cpp/custom-open.cpp
-30017 custom-open2.cfg cpp/custom-open.cpp
-30018 ben_009.cfg cpp/class-addr.h
-30019 ben_010.cfg cpp/wacky-template.cpp
-
-30020 ben_011.cfg cpp/bool.cpp
-30021 ben_012.cfg cpp/byref.cpp
-30022 ben_013.cfg cpp/extern_c.h
-30023 ben_014.cfg cpp/templates.cpp
-30024 class-nl_func-add.cfg cpp/class-init.cpp
-30025 class-nl_func-del.cfg cpp/class-init.cpp
-30026 byref-left.cfg cpp/byref.cpp
-30027 byref-right.cfg cpp/byref.cpp
-30028 byref-center.cfg cpp/byref.cpp
-30029 ben_015.cfg cpp/init_align.h
-
-30030 avalon.cfg cpp/Timestamp.h
-30031 avalon.cfg cpp/operator.cpp
-30032 op-space-force.cfg cpp/operator.cpp
-30033 op-space-remove.cfg cpp/operator.cpp
-30034 op-space-force.cfg cpp/operator_proto.cpp
-30035 op-space-remove.cfg cpp/operator_proto.cpp
-30036 op-space-remove-align-1.cfg cpp/operator.cpp
-30037 op-space-remove-align-1.cfg cpp/operator_proto.cpp
-30038 op-space-remove-align-2.cfg cpp/operator.cpp
-30039 op-space-remove-align-2.cfg cpp/operator_proto.cpp
-
-30040 nl_class-r.cfg cpp/nl-class.h
-30041 nl_class-a.cfg cpp/nl-class.h
-30042 Issue_2020.cfg cpp/Issue_2020.cpp
-30043 nl_func_call_empty-r.cfg cpp/nl_func_call_empty.cpp
-30044 nl_func_call_paren_empty-r.cfg cpp/nl_func_call_paren_empty.cpp
-30045 nl_func_decl_1.cfg cpp/nl_func_decl.cpp
-30046 nl_func_decl_2.cfg cpp/nl_func_decl.cpp
-30047 nl_func_paren_empty.cfg cpp/nl_func_paren_empty.cpp
-30048 nl_func_def_paren_empty-r.cfg cpp/nl_func_def_paren_empty.cpp
-30049 nl_func_call_paren-f.cfg cpp/nl_func_call_paren.cpp
-
-30050 nl_namespace-r.cfg cpp/nl-namespace.h
-30051 nl_namespace-a.cfg cpp/nl-namespace.h
-30052 nl_try-a.cfg cpp/try-catch-nl.cpp
-30053 sp_catch_brace.cfg cpp/exception.cpp
-30054 Issue_2091.cfg cpp/Issue_2091.cpp
-30055 nl_after_func_body.cfg cpp/nl_func.cpp
-30056 nl_after_func_body-2.cfg cpp/nl_func.cpp
-30057 nl_inside_namespace_1.cfg cpp/nl_inside_namespace.cpp
-30058 nl_inside_namespace_2.cfg cpp/nl_inside_namespace.cpp
-30059 Issue_2186.cfg cpp/Issue_2186.cpp
-
-30060 Issue_1734.cfg cpp/Issue_1734.cpp
-
-# Class colon positioning
-30061 class-colon-pos-eol.cfg cpp/class-init.cpp
-30062 class-colon-pos-sol.cfg cpp/class-init.cpp
-30063 class-colon-pos-eol-add.cfg cpp/class-init.cpp
-30064 class-colon-pos-sol-add.cfg cpp/class-init.cpp
-30065 class-colon-pos-sol.cfg cpp/Example.h
-30066 class-on-colon-indent.cfg cpp/class-init.cpp
-30067 nl_func_class_scope-a.cfg cpp/nl_func_type_name.cpp
-30068 nl_func_class_scope-a.cfg cpp/nl_func_scope_name.cpp
-30069 nl_func_class_scope-a.cfg cpp/class-implementation.cpp
-
-30070 nl_func_scope_name-a.cfg cpp/nl_func_scope_name.cpp
-30071 lineEndings-to-Win.cfg cpp/lineEndings-Mac.cpp
-30072 lineEndings-to-Unix.cfg cpp/lineEndings-Win.cpp
-30073 lineEndings-to-Mac.cfg cpp/lineEndings-Unix.cpp
-30074 empty.cfg cpp/bom.cpp
-30075 empty.cfg cpp/goto.cpp
-30076 Issue_2594.cfg cpp/Issue_2594.cpp
-30077 Issue_2596.cfg cpp/Issue_2596.cpp
-30078 empty.cfg cpp/Issue_2672-a.cpp
-30079 empty.cfg cpp/Issue_2672-b.cpp
-
-30080 nl_brace_brace-a.cfg cpp/nl_brace_brace.cpp
-30081 Issue_2383.cfg cpp/Issue_2383.cpp
-30082 Issue_931.cfg cpp/Issue_931.cpp
-30083 Issue_995-do.cfg cpp/Issue_995-do.cpp
-30084 Issue_1184.cfg cpp/Issue_1184.cpp
-30085 nSolve.cfg cpp/align_class.cpp
-30086 align_class-constr.cfg cpp/align_class-constr.cpp
-30087 Issue_1511.cfg cpp/Issue_1511.cpp
-30088 Issue_2561.cfg cpp/Issue_2561.cpp
-30089 Issue_2281.cfg cpp/Issue_2281.cpp
-
-30090 bug_488.cfg cpp/bug_488.cpp
-30091 bug_472.cfg cpp/bug_472.cpp
-30092 ben_016.cfg cpp/bug_481.cpp
-30093 sp_after_cast.cfg cpp/bug_484.cpp
-30094 align-1.cfg cpp/bug_495.cpp
-30095 ben_017.cfg cpp/bug_485.cpp
-30096 bug_1854.cfg cpp/bug_1854.cpp
-30097 align-1.cfg cpp/issue_1946.cpp
-30098 Issue_2692.cfg cpp/Issue_2692.cpp
-30099 sp_arith-f.cfg cpp/bug_1127.cpp
-
-30100 nl_template-f.cfg cpp/templates.cpp
-30101 nl_template-r.cfg cpp/templates.cpp
-30102 template_sp-force.cfg cpp/templates.cpp
-30103 template_sp-remove.cfg cpp/templates.cpp
-30104 avalon3.cfg cpp/templ_class.h
-30105 avalon4.cfg cpp/av.h
-30106 nl_template-f.cfg cpp/templates2.cpp
-30107 nl_template-r.cfg cpp/templates2.cpp
-30108 nl_template-r.cfg cpp/templates3.cpp
-30109 empty.cfg cpp/templates4.cpp
-
-30110 class-nl_func-add2.cfg cpp/class-init.cpp
-30111 indent_columns-4.cfg cpp/bug_1346.h
-30112 bug_1432.cfg cpp/bug_1432.cpp
-30113 bug_1452.cfg cpp/bug_1452.cpp
-30114 template_sp-remove.cfg cpp/bug_1462.cpp
-30115 empty.cfg cpp/Issue_1704.cpp
-30116 Issue_1052.cfg cpp/Issue_1052.cpp
-30117 Issue_2343.cfg cpp/Issue_2343.cpp
-30118 Issue_2758.cfg cpp/Issue_2758.cpp
-30119 Issue_2879.cfg cpp/Issue_2879.cpp
-
-30120 template_sp-force.cfg cpp/sp_after_angle.cpp
-30121 template_sp-remove.cfg cpp/sp_after_angle.cpp
-30122 sp_inside_fparen-f.cfg cpp/sp_after_angle.cpp
-30123 sp_inside_fparen-r.cfg cpp/sp_after_angle.cpp
-30124 sp_after_angle-1.cfg cpp/sp_after_angle.cpp
-30125 sp_after_angle-2.cfg cpp/sp_after_angle.cpp
-30126 sp_after_angle-3.cfg cpp/sp_after_angle.cpp
-30127 empty.cfg cpp/Issue_2565.cpp
-30128 Issue_2873.cfg cpp/Issue_2873.cpp
-30129 Issue_2890.cfg cpp/Issue_2890.cpp
-
-30130 brace-allman.cfg cpp/if-constexpr.cpp
-30131 Issue_3010.cfg cpp/Issue_3010.cpp
-30132 sp_brace_catch.cfg cpp/sp_brace_catch.cpp
-
-30200 bug_1862.cfg cpp/bug_1862.cpp
-30201 cmt_indent-1.cfg cpp/cmt_indent.cpp
-30202 cmt_indent-2.cfg cpp/cmt_indent.cpp
-30203 cmt_indent-3.cfg cpp/cmt_indent.cpp
-30204 indent_columns-4.cfg cpp/comment-align.cpp
-30205 indent_columns-4.cfg cpp/cmt_right.cpp
-30206 empty.cfg cpp/cmt_backslash_eol.cpp
-30207 indent_class-t_columns-4.cfg cpp/cmt_indent_pp.h
-30208 bug_1108.cfg cpp/bug_1108.cpp
-30209 empty.cfg cpp/bug_1134.cpp
-
-30210 empty.cfg cpp/bug_1338.cpp
-30211 space_indent_class-t_columns-4.cfg cpp/indent_comment_align_thresh.cpp
-30212 indent_comment_align_thresh_2.cfg cpp/indent_comment_align_thresh.cpp
-30213 align_right_comment.cfg cpp/align_right_comment.cpp
-30214 issue_1887.cfg cpp/align_across_braces.cpp
-30215 empty.cfg cpp/Issue_2099.cpp
-30216 Issue_2302.cfg cpp/Issue_2302.cpp
-30217 empty.cfg cpp/2138.cpp
-30218 sp_trailing_return-f.cfg cpp/trailing_return.cpp
-30219 sp_trailing_return-r.cfg cpp/trailing_return.cpp
-
-30220 bug_1340.cfg cpp/bug_1340.cpp
-30221 Issue_2914.cfg cpp/Issue_2914.cpp
-30222 sp_assign_default.cfg cpp/trailing_return.cpp
-30223 sp_enum_colon.cfg cpp/sp_enum_colon.cpp
-30224 sp_enum_colon-r.cfg cpp/sp_enum_colon.cpp
-
-30230 sp_type_func-r.cfg cpp/sp_type_func.cpp
-30231 sp_type_func-f.cfg cpp/sp_type_func.cpp
-30232 sp_type_func-1.cfg cpp/sp_type_func.cpp
-30233 sp_type_func-2.cfg cpp/sp_type_func.cpp
-30234 functype_param-r.cfg cpp/functype_param.cpp
-30235 functype_param-f.cfg cpp/functype_param.cpp
-
-30240 align_func_params-t.cfg cpp/align_func_params.cpp
-30241 align_func_params_span-1.cfg cpp/align_func_params.cpp
-30242 align_func_params_gap.cfg cpp/align_func_params.cpp
-30243 align_func_params_thresh_1.cfg cpp/align_func_params.cpp
-30244 align_func_params_thresh_2.cfg cpp/align_func_params.cpp
-30245 align_func_params_thresh_3.cfg cpp/align_func_params.cpp
-30246 align_func_params_thresh_4.cfg cpp/align_func_params.cpp
-30247 empty.cfg cpp/Issue_2332.cpp
-30248 Issue_2831.cfg cpp/Issue_2831.cpp
-30249 align-330.cfg cpp/align-330.cpp
-
-30250 align_fcall.cfg cpp/align_fcall.cpp
-30251 align_fcall-2.cfg cpp/align_fcall.cpp
-30253 empty.cfg cpp/align_left_shift.cpp
-30254 empty.cfg cpp/align_left_shift2.cpp
-30255 ben_018.cfg cpp/align_constr.cpp
-30256 empty.cfg cpp/func_call.cpp
-30257 indent_columns-4.cfg cpp/func_call_chain.cpp
-30258 indent_columns-3.cfg cpp/casts.cpp
-30259 sp_after_constr_colon.cfg cpp/sp_after_constr_colon.cpp
-
-30260 var_def_gap.cfg cpp/var_def_gap.cpp
-30261 align_var_def_thresh_1.cfg cpp/align_var_def_thresh.cpp
-30262 align_var_def_thresh_2.cfg cpp/align_var_def_thresh.cpp
-30263 align_var_def_thresh_3.cfg cpp/align_var_def_thresh.cpp
-30264 Issue_2668.cfg cpp/Issue_2668.cpp
-30265 long_br_cmt.cfg cpp/long_br_cmt.cpp
-30266 Issue_2921.cfg cpp/Issue_2921.cpp
-30267 Issue_2930.cfg cpp/Issue_2930.cpp
-30268 Issue_2692.cfg cpp/Issue_3018.cpp
-
-30270 const_throw.cfg cpp/const_throw.cpp
-30271 sp_throw_paren-r.cfg cpp/sp_throw_paren.cpp
-30272 sp_throw_paren-f.cfg cpp/sp_throw_paren.cpp
-30273 sp_cparen_oparen-f.cfg cpp/sp_cparen_oparen.cpp
-30274 sp_cparen_oparen-r.cfg cpp/sp_cparen_oparen.cpp
-30275 empty.cfg cpp/bug_1321.cpp
-30278 bug_1439.cfg cpp/bug_1439.cpp
-30279 indent_inside_ternary_operator.cfg cpp/indent-inside-ternary-operator.cpp
-
-30280 sp_dc.cfg cpp/sf557.cpp
-30281 Issue_2478.cfg cpp/Issue_2478.cpp
-30282 Issue_2703.cfg cpp/Issue_2703.cpp
-
-30290 indent_shift.cfg cpp/align_left_shift.cpp
-30291 indent_shift.cfg cpp/indent_shift.cpp
-30292 align_eigen_comma_init.cfg cpp/eigen.cpp
-30293 pos_shift-lead.cfg cpp/pos_shift.cpp
-30294 pos_shift-trail.cfg cpp/pos_shift.cpp
-30295 pos_shift-join.cfg cpp/pos_shift.cpp
-
-30300 ben_020.cfg cpp/enum_shr.cpp
-30301 al.cfg cpp/enum_class.h
-30302 bug_1315.cfg cpp/bug_1315.cpp
-30303 Issue_2902.cfg cpp/Issue_2902.cpp
-
-# TODO: Make a tests for a braced_init_list. See also 34153-34166.
-30310 sp_word_brace_force.cfg cpp/braced_init_list.cpp
-30311 sp_word_brace_remove.cfg cpp/uniform_initialization.cpp
-30312 sp_inside_type_brace_init_lst-f.cfg cpp/return_init_list.cpp
-30313 sp_brace_brace-r.cfg cpp/sp_brace_brace.cpp
-30314 sp_brace_brace-f.cfg cpp/sp_brace_brace.cpp
-30315 issue_1997.cfg cpp/return_braced_init.cpp
-30316 Issue_2428.cfg cpp/Issue_2428.cpp
-30317 pos_comma-tb.cfg cpp/braced_init_template_decltype.cpp
-30318 Issue_2949.cfg cpp/Issue_2949.cpp
-30319 Issue_2886.cfg cpp/Issue_2886.cpp
-
-30320 sp_return_paren-r.cfg cpp/returns.cpp
-30321 sp_return_paren-f.cfg cpp/returns.cpp
-30322 sp_return_brace-r.cfg cpp/returns.cpp
-30323 sp_return_brace-f.cfg cpp/returns.cpp
-30324 mod_paren_on_return-a.cfg cpp/returns.cpp
-30325 mod_paren_on_return-r.cfg cpp/returns.cpp
-30326 indent_off_after_return.cfg cpp/indent_off_after_return.cpp
-30327 indent_off_after_return.cfg cpp/indent_off_after_return.cpp
-30328 nl_type_brace_init_lst-f.cfg cpp/call_brace_init_lst.cpp
-30329 nl_type_brace_init_lst-r.cfg cpp/call_brace_init_lst.cpp
-
-30330 Issue_3080.cfg cpp/Issue_3080.cpp
-
-30400 attribute_specifier_seqs.cfg cpp/attribute_specifier_seqs.cpp
-30401 Issue_2570.cfg cpp/Issue_2570.cpp
-
-# function def newlines
-30701 func-def-1.cfg cpp/function-def.cpp
-30702 func-def-2.cfg cpp/function-def.cpp
-30703 func-def-3.cfg cpp/function-def.cpp
-
-30705 func_param.cfg cpp/func_param.cpp
-30706 bug_1020.cfg cpp/bug_1020.cpp
-
-30711 del_semicolon.cfg cpp/semicolons.cpp
-30712 empty.cfg cpp/bug_1158.cpp
-30713 empty.cfg cpp/fix_for_relational_operators.cpp
-30714 empty.cfg cpp/Issue_1733.cpp
-30715 Issue_2942.cfg cpp/Issue_2942.cpp
-
-30720 wessex.cfg cpp/custom-open-2.cpp
-30721 Issue_2386.cfg cpp/Issue_2386.cpp
-
-30730 qt-1.cfg cpp/qt-1.cpp
-30731 nl_access_spec.cfg cpp/qt-1.cpp
-30732 Issue_2734.cfg cpp/Issue_2734.cpp
-
-30740 sef.cfg cpp/sef.cpp
-30741 al.cfg cpp/al.cpp
-30742 indent_columns-2.cfg cpp/delete.cpp
-
-30745 Issue_2170.cfg cpp/Issue_2170.cpp
-30746 DefaultAndDelete-0.cfg cpp/DefaultAndDelete.cpp
-30747 DefaultAndDelete-1.cfg cpp/DefaultAndDelete.cpp
-30748 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 ben_021.cfg cpp/lambda.cpp
-30751 lambda1.cfg cpp/lambda.cpp
-30752 lambda2.cfg cpp/lambda.cpp
-30753 lambda3.cfg cpp/lambda2.cpp
-30754 indent_with_tabs-0.cfg cpp/bug_i_682.h
-30755 empty.cfg cpp/bug_i_938.h
-30756 bug_1296.cfg cpp/bug_1296.cpp
-30757 Issue_3054.cfg cpp/Issue_3054.cpp
-30758 Issue_3054-2.cfg cpp/Issue_3054-2.cpp
-
-30761 out-668-F.cfg cpp/out-668.cpp
-30762 out-668-T.cfg cpp/out-668.cpp
-30763 Issue_2166.cfg cpp/Issue_2166.cpp
-30764 Issue_2591.cfg cpp/Issue_2591.cpp
-
-30770 sp_cpp_lambda_square_paren-r.cfg cpp/lambda.cpp
-30771 sp_cpp_lambda_square_paren-f.cfg cpp/lambda.cpp
-30772 sp_cpp_lambda_square_brace-r.cfg cpp/lambda.cpp
-30773 sp_cpp_lambda_square_brace-f.cfg cpp/lambda.cpp
-30774 sp_cpp_lambda_paren_brace-r.cfg cpp/lambda.cpp
-30775 sp_cpp_lambda_paren_brace-f.cfg cpp/lambda.cpp
-30776 sp_cpp_lambda_fparen-r.cfg cpp/sp_cpp_lambda_fparen.cpp
-30777 sp_cpp_lambda_fparen-f.cfg cpp/sp_cpp_lambda_fparen.cpp
-
-30780 lambda_in_one_liner.cfg cpp/lambda_in_one_liner.cpp
-30781 lambda_in_one_liner.cfg cpp/lambda_brace_list.cpp
-
-30790 Issue_2795.cfg cpp/Issue_2795.cpp
-
-30800 star_pos-0.cfg cpp/align-star-amp-pos.cpp
-30801 star_pos-1.cfg cpp/align-star-amp-pos.cpp
-30802 star_pos-2.cfg cpp/align-star-amp-pos.cpp
-30803 bug_1403.cfg cpp/bug_1403.cpp
-30804 block_pointer.cfg cpp/block_pointer.cpp
-30805 ptr_star-1.cfg cpp/ptr-star.cpp
-30806 ptr_star-2.cfg cpp/ptr-star.cpp
-30807 ptr_star-3.cfg cpp/ptr-star.cpp
-30808 sp_after_ptr_star_qualifier-f.cfg cpp/ptr-star.cpp
-30809 empty.cfg cpp/bug_1289.cpp
-
-30810 ben_022.cfg cpp/ptr-star.cpp
-30811 avalon4.cfg cpp/misc3.cpp
-30812 ben_023.cfg cpp/misc4.cpp
-30813 ben_024.cfg cpp/misc5.cpp
-30814 empty.cfg cpp/misc6.cpp
-30815 width-2.cfg cpp/cmt-reflow.cpp
-30816 cu.cfg cpp/for_long.cpp
-30817 indent_columns-3.cfg cpp/cmt-cpp-cont.cpp
-30818 bug_1169.cfg cpp/bug_1169.cpp
-30819 bug_1170.cfg cpp/bug_1170.cpp
-
-30820 pp_define_at_level-1.cfg cpp/pp-define-indent.cpp
-30821 empty.cfg cpp/pp_indent_case.cpp
-30822 empty.cfg cpp/pp_indent_brace.cpp
-30823 empty.cfg cpp/pp_indent_func_def.cpp
-30824 empty.cfg cpp/pp_indent_extern.cpp
-30825 Issue_1966.cfg cpp/Issue_1966.cpp
-30826 Issue_2319.cfg cpp/Issue_2319.cpp
-30827 Issue_1167.cfg cpp/Issue_1167.cpp
-30828 bug_1691.cfg cpp/bug_1691.cpp
-30829 ptr_star-2.cfg cpp/Issue_2726.cpp
-
-30830 kw_subst2.cfg cpp/kw_subst.cpp
-30831 kw_subst.cfg cpp/kw_subst2.cpp
-30832 kw_subst4.cfg cpp/kw_subst.cpp
-
-30840 nl_func_type_name_remove.cfg cpp/nl_func_type_name.cpp
-30841 nl_func_type_name_force.cfg cpp/nl_func_type_name.cpp
-30842 nl_func_type_name_class.cfg cpp/nl_func_type_name.cpp
-30843 nl_func_type_name_mixed.cfg cpp/nl_func_type_name.cpp
-30844 Issue_2771.cfg cpp/Issue_2771.cpp
-30845 ben_026.cfg cpp/deref.cpp
-
-30850 sp_cmt_cpp_start_force.cfg cpp/sp_cmt_cpp_start.cc
-30852 sp_paren_qualifier-f.cfg cpp/Issue_2138.cpp
-30853 sp_paren_noexcept-f.cfg cpp/noexcept.cpp
-30854 Issue_1703.cfg cpp/Issue_1703.cpp
-30855 empty.cfg cpp/cpp_move.cpp
-30856 sp_cmt_cpp_region-f.cfg cpp/sp_cmt_cpp_region.cpp
-30857 sp_cmt_cpp_region-r.cfg cpp/sp_cmt_cpp_region.cpp
-
-30860 sf574.cfg cpp/sf574.cpp
-
-30870 cmt_insert-0.cfg cpp/cmt_insert.cpp
-30871 cmt_insert-1.cfg cpp/cmt_insert.cpp
-30872 Issue_2752.cfg cpp/Issue_2752.cpp
-# will also use the file footer.txt
-
-30880 empty.cfg cpp/bug_1758.cpp
-30881 bug_1758-f.cfg cpp/bug_1758-f.cpp
-
-30900 region-0.cfg cpp/region.cpp
-30901 region-1.cfg cpp/region.cpp
-30902 region-2.cfg cpp/region.cpp
-30903 region-3.cfg cpp/region.cpp
-30907 Issue_1813.cfg cpp/Issue_1813.cpp
-30908 Issue_1813.cfg cpp/Issue_1813-2.cpp
-30909 Issue_1813.cfg cpp/Issue_1813-3.cpp
-
-30910 indent_namespace-t.cfg cpp/indent_namespace.h
-30911 indent_class-t.cfg cpp/indent_namespace.h
-30912 long_namespace.cfg cpp/long_namespace.cpp
-30913 indent_namespace-t.cfg cpp/indent_namespace2.h
-30914 indent_namespace_single_indent.cfg cpp/indent_namespace_single_indent.h
-30915 empty.cfg cpp/bug_1235.cpp
-30916 empty.cfg cpp/Issue_1737.cpp
-30917 Issue_2345.cfg cpp/Issue_2345-3.cpp
-30918 Issue_2345.cfg cpp/Issue_2345-4.cpp
-30919 empty.cfg cpp/Issue_2387.cpp
-
-30920 ben_027.cfg cpp/indent-off.cpp
-30921 ben_028.cfg cpp/variadic-template.h
-30922 sp_before_ellipsis-f.cfg cpp/variadic-template.h
-30923 sf.2886991-f.cfg cpp/sf.2886991.cpp
-30924 sf.2886991-r.cfg cpp/sf.2886991.cpp
-30925 sp_func_call_empty.cfg cpp/function-def.cpp
-30926 sp_func_class_empty.cfg cpp/function-def.cpp
-30927 sp_func_def_empty.cfg cpp/function-def.cpp
-30928 sp_func_proto_empty.cfg cpp/function-def.cpp
-30929 bug_1324.cfg cpp/bug_1324.cpp
-
-30930 indent_var_def.cfg cpp/indent_var_def.cpp
-30931 indent_var_def_cont-t.cfg cpp/indent_var_def_cont.cpp
-30932 empty.cfg cpp/indent_var_def_cont.cpp
-30933 indent_paren_after_func_def-t.cfg cpp/indent_paren_after_func_def.cpp
-30934 indent_paren_after_func_decl-t.cfg cpp/indent_paren_after_func_decl.cpp
-30935 ben_029.cfg cpp/indent-misc.cpp
-30936 indent_braces_no.cfg cpp/indent_braces_no.h
-30937 indent_param.cfg cpp/indent_param.cpp
-30938 empty.cfg cpp/indent_switch_pp.cpp
-30939 indent_paren_after_func_call-t.cfg cpp/indent_paren_after_func_call.cpp
-
-30940 mod_case_brace_rm.cfg cpp/case-brace-remove.cpp
-30941 Issue_2150.cfg cpp/Issue_2150.cpp
-30942 Issue_1692.cfg cpp/Issue_1692.cpp
-30943 Issue_2735.cfg cpp/Issue_2735.cpp
-30944 sp_paren_comma.cfg cpp/sp_paren_comma.cpp
-30945 sp_before_byref-r.cfg cpp/sf.3266678.cpp
-30946 sf.3315874.cfg cpp/sf.3315874.h
-30947 bug_1689.cfg cpp/bug_1689.cpp
-30948 sp_before_byref_func.cfg cpp/sp_before_byref_func.cpp
-30949 Issue_2757.cfg cpp/Issue_2757.cpp
-
-30950 sp_before_tr_emb_cmt-f.cfg cpp/sp_before_tr_emb_cmt_input.cpp
-30951 sp_before_tr_emb_cmt-a.cfg cpp/sp_before_tr_emb_cmt_input.cpp
-30952 sp_before_constr_colon.cfg cpp/sp_before_constr_colon.cpp
-30953 constr_colon.cfg cpp/constr_colon.cpp
-30954 Issue_2305.cfg cpp/Issue_2305.cpp
-30955 indent_ctor_init.cfg cpp/indent_ctor_init.cpp
-30956 indent_ctor_init_leading.cfg cpp/indent_ctor_init.cpp
-30957 negative_indent.cfg cpp/class-init.cpp
-30958 nl_for_leave_one_liners-f.cfg cpp/nl_for_leave_one_liners.cpp
-30959 nl_for_leave_one_liners-t.cfg cpp/nl_for_leave_one_liners.cpp
-
-30960 Issue_2151.cfg cpp/Issue_2151.cpp
-30961 Issue_2232.cfg cpp/Issue_2232.cpp
-30962 nl_assign_leave_one_liners.cfg cpp/nl_assign_leave_one_liners.cpp
-30963 Issue_2907.cfg cpp/Issue_2907.cpp
-30964 Issue_2823.cfg cpp/Issue_2823.cpp
-
-30970 Issue_2219.cfg cpp/Issue_2219.cpp
-30971 Issue_2224.cfg cpp/Issue_2224.cpp
-30972 Issue_2229.cfg cpp/Issue_2229.cpp
-30973 Issue_2236.cfg cpp/Issue_2236.cpp
-30974 empty.cfg cpp/using-alias-in-define.cpp
-
-31000 empty.cfg cpp/digraph.cpp
-31001 ben_030.cfg cpp/digraph.cpp
-
-31562 space_indent_class-t_columns-4.cfg cpp/sf562.cpp
-31567 align_same_func_call_params-t.cfg cpp/sf567.cpp
-31568 Issue_2368.cfg cpp/Issue_2368.cpp
-
-31583 empty.cfg cpp/sf583.cpp
-31593 indent_continue-8.cfg cpp/sf593.cpp
-31594 issue_672.cfg cpp/issue_672.cpp
-31595 issue_1778.cfg cpp/issue_1778.cpp
-31596 issue_1782.cfg cpp/issue_1782.cpp
-31597 issue_1804.cfg cpp/issue_1804.cpp
-31598 Issue_1753.cfg cpp/Issue_1753.cpp
-
-31600 sp_paren_ellipsis-f.cfg cpp/parameter-packs.cpp
-31601 sp_paren_ellipsis-r.cfg cpp/parameter-packs.cpp
-31602 sp_sizeof_ellipsis-f.cfg cpp/parameter-packs.cpp
-31603 sp_sizeof_ellipsis-r.cfg cpp/parameter-packs.cpp
-31604 sp_before_ellipsis-f.cfg cpp/parameter-packs.cpp
-31605 sp_before_ellipsis-r.cfg cpp/parameter-packs.cpp
-31606 sp_type_ellipsis-f.cfg cpp/parameter-packs.cpp
-31607 sp_type_ellipsis-r.cfg cpp/parameter-packs.cpp
-31608 sp_sizeof_ellipsis_paren-f.cfg cpp/parameter-packs.cpp
-31609 sp_sizeof_ellipsis_paren-r.cfg cpp/parameter-packs.cpp
-
-31610 Issue_2085.cfg cpp/Issue_2085.cpp
-
-31620 sp_after_type-f.cfg cpp/sp_after_type.cpp
-31621 sp_after_type-i.cfg cpp/sp_after_type.cpp
-31622 sp_after_cast-f.cfg cpp/sp_after_type.cpp
-31623 sp_after_cast-r.cfg cpp/sp_after_type.cpp
-31624 sp_before_ptr_star-f.cfg cpp/sp_after_type.cpp
-31625 sp_before_ptr_star-r.cfg cpp/sp_after_type.cpp
-31626 sp_decltype_paren-f.cfg cpp/issue_1916.cpp
-31627 sp_decltype_paren-r.cfg cpp/issue_1916.cpp
-31628 sp_after_decltype-f.cfg cpp/issue_1916.cpp
-31629 sp_after_decltype-r.cfg cpp/issue_1916.cpp
-
-31630 sp_after_type-f.cfg cpp/issue_1916.cpp
-31631 sp_after_type-r.cfg cpp/issue_1916.cpp
-31632 issue_1916.cfg cpp/issue_1916.cpp
-31633 sp_after_decltype-f.cfg cpp/sp_after_decltype.cpp
-31634 sp_after_decltype-r.cfg cpp/sp_after_decltype.cpp
-31635 empty.cfg cpp/sp_decltype.cpp
-31636 Issue_1923.cfg cpp/Issue_1923.cpp
-
-31660 nl_func_var_def_blk-1.cfg cpp/issue_1919.cpp
-31661 Issue_3097.cfg cpp/Issue_3097.cpp
-
-31700 toggle_processing_cmt.cfg cpp/toggle_processing_cmt.cpp
-31701 toggle_processing_cmt2.cfg cpp/toggle_processing_cmt2.cpp
-31702 toggle_processing_cmt3.cfg cpp/toggle_processing_cmt.cpp
-31703 toggle_processing_cmt4.cfg cpp/toggle_processing_cmt.cpp
-
-31710 empty.cfg cpp/string_replace_tab_chars.cpp
-31711 string_replace_tab_chars-t.cfg cpp/string_replace_tab_chars.cpp
-
-31720 ben_031.cfg cpp/bit-colon.cpp
-31721 Issue_2689.cfg cpp/Issue_2689.cpp
-
-31730 sp_arith-a.cfg cpp/ms-style-ref.cpp
-
-31740 empty.cfg cpp/I2102.cpp
-
-32000 sp_skip_vbrace_tokens.cfg cpp/sp_skip_vbrace_tokens.cpp
-32001 empty.cfg cpp/issue_547_for_each.cpp
-32002 empty.cfg cpp/proto-wrap.cpp
-32003 align_var_class_span-1.cfg cpp/issue_633_typename.cpp
-32004 empty.cfg cpp/issue_624_angle.cpp
-32005 align_var_class_span-1.cfg cpp/issue_633_typename.cpp
-32006 space_indent_columns-4.cfg cpp/bug_i_687.cpp
-32007 Issue_3052.cfg cpp/Issue_3052.cpp
-32008 Issue_3034.cfg cpp/Issue_3034.cpp
-
-32100 cpp17.cfg cpp/cpp17.cpp
-32105 I2103.cfg cpp/I2103.cpp
-
-32115 2185.cfg cpp/2185.cpp
-
-33000 tab-0-11.cfg cpp/tab-0.cpp
-33001 indent_columns-11.cfg cpp/tab-1.cpp
-33002 empty.cfg cpp/cmt_convert_tab_to_spaces.cpp
-33003 cmt_convert_tab_to_spaces-t.cfg cpp/cmt_convert_tab_to_spaces.cpp
-33004 sp_cmt_cpp_start-a.cfg cpp/DoxygenComments.cpp
-33005 sp_cmt.cfg cpp/DoxygenComments.cpp
-33006 empty.cfg cpp/string_replace_tab_chars.cpp
-33007 empty.cfg cpp/NewLine.cpp
-33008 NewLine-r.cfg cpp/NewLine.cpp
-33009 NewLine-f.cfg cpp/NewLine0.cpp
-
-33010 indent_columns-4.cfg cpp/Q_EMIT.cpp
-33011 indent_class-t_columns-4.cfg cpp/static.h
-33012 kdepim2.cfg cpp/Q_SIGNAL_SLOT.cpp
-33013 kdepim3.cfg cpp/Q_2.cpp
-33014 indent_columns-4.cfg cpp/DB.cpp
-33015 kdepim5.cfg cpp/Q_FOREACH.cpp
-33016 indent_once.cfg cpp/indent.cpp
-33017 bug_1160.cfg cpp/bug_1160.cpp
-33018 byref-2.cfg cpp/byref-2.cpp
-33019 bug_657.cfg cpp/bug_657.cpp
-
-33020 sp_cmt.cfg cpp/bug_662.cpp
-33021 bug_633.cfg cpp/bug_633.cpp
-33022 empty.cfg cpp/bug_634.cpp
-33023 indent_once.cfg cpp/bug_651.cpp
-33024 empty.cfg cpp/bug_653.cpp
-33025 empty.cfg cpp/bug_654.cpp
-33026 empty.cfg cpp/bug_631.cpp
-33027 bug_664.cfg cpp/bug_664.cpp
-33028 sp_inside_braces_empty-r.cfg cpp/braces_empty.cpp
-33029 cast.cfg cpp/cast.cpp
-
-33030 space_indent_columns-4.cfg cpp/Q_FOREVER.cpp
-33031 align_assign_span-1.cfg cpp/bug_612.cpp
-33032 bug_670.cfg cpp/bug_670.cpp
-33033 bug_670.cfg cpp/bug_670.h
-33034 bug_671.cfg cpp/bug_671.h
-33035 cmt_cpp_to_c-t.cfg cpp/patch_32.cpp
-33036 empty.cfg cpp/bug_663.cpp
-33037 func_class.cfg cpp/func_class.cpp
-33038 func_class.cfg cpp/func_class.h
-33039 mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return.cpp
-
-33040 nl_after_func_proto_group-3.cfg cpp/bug_i_411.cpp
-33041 nl_after_func_proto-3.cfg cpp/bug_i_411.cpp
-33042 nl_after_func_class_proto-3.cfg cpp/bug_i_411.cpp
-33043 bug_i_478.cfg cpp/bug_i_478.cpp
-33044 sp_before_comma-f.cfg cpp/bug_i_481.cpp
-33045 indent_columns-4.cfg cpp/bug_i_width.cpp
-33046 bug_i_409-split.cfg cpp/bug_i_409.cpp
-33047 bug_i_409-create.cfg cpp/bug_i_409.cpp
-33048 bug_i_405.cfg cpp/bug_i_405.cpp
-33049 pp-pragma.cfg cpp/pp-pragma.cpp
-
-33050 empty.cfg cpp/issue_523.cpp
-33051 empty.cfg cpp/bug_i_503.cpp
-33052 empty.cfg cpp/bug_i_512.cpp
-33053 space_indent_columns-4.cfg cpp/for_auto.cpp
-33054 indent_columns-3.cfg cpp/bug_i_825.cpp
-33056 empty.cfg cpp/bug_33056.cpp
-33057 bug_1349.cfg cpp/bug_1349.cpp
-#33058 sp_arith-a.cfg cpp/stdcall.cpp
-33059 mod_remove_empty_return-t.cfg cpp/mod_remove_empty_return-2.cpp
-
-33060 empty.cfg cpp/if_constexpr.cpp
-33061 empty.cfg cpp/if_chain_braces.cpp
-33062 mod_full_brace_if_chain-t.cfg cpp/if_chain_braces.cpp
-33063 mod_full_brace_if_chain_only-t.cfg cpp/if_chain_braces.cpp
-33064 if_chain_braces_2.cfg cpp/if_chain_braces.cpp
-33069 Issue_2195.cfg cpp/Issue_2195.cpp
-
-33070 code_width-70.cfg cpp/multi_line.cpp
-33071 multi_line_1.cfg cpp/multi_line.cpp
-33072 multi_line_2.cfg cpp/multi_line.cpp
-33073 multi_line_3.cfg cpp/multi_line.cpp
-33074 multi_line_4.cfg cpp/multi_line.cpp
-33075 multi_line_5.cfg cpp/multi_line.cpp
-33076 multi_line_6.cfg cpp/multi_line.cpp
-33077 multi_line_7.cfg cpp/multi_line.cpp
-33078 multi_line_8.cfg cpp/multi_line.cpp
-33079 multi_line_9.cfg cpp/multi_line.cpp
-
-33080 multi_line_10.cfg cpp/multi_line.cpp
-33081 space_indent_columns-4.cfg cpp/bug_i_552.cpp
-33082 empty.cfg cpp/namespace_namespace.cpp
-33083 bug_i_359.cfg cpp/bug_i_359.cpp
-33084 op_sym_empty.cfg cpp/op_sym_empty.cpp
-33085 indent_with_tabs-0.cfg cpp/bug_i_323.cpp
-33086 indent_class-t.cfg cpp/bug_i_568.cpp
-33087 space_indent_columns-4.cfg cpp/bug_i_596.cpp
-33088 empty.cfg cpp/bug_i_197.cpp
-33089 indent_class-t_columns-4.cfg cpp/bug_643.cpp
-
-33090 empty.cfg cpp/gh555.cpp
-33091 no_squeeze_ifdef.cfg cpp/squeeze_ifdef.cpp
-33092 squeeze_ifdef.cfg cpp/squeeze_ifdef.cpp
-33093 sp_angle_paren-f.cfg cpp/sp_angle_paren.cpp
-33094 sp_angle_paren_empty.cfg cpp/sp_angle_paren.cpp
-33095 bug_i_322.cfg cpp/bug_i_322.cpp
-33096 squeeze_ifdef_top.cfg cpp/squeeze_ifdef.cpp
-33097 pos_enum_comma-tf.cfg cpp/enum_comma.h
-33098 pos_comma-lf.cfg cpp/enum_comma.h
-33099 enum_comma-3.cfg cpp/enum_comma.h
-
-33100 enum_comma-4.cfg cpp/enum_comma.h
-33101 pos_comma-tb.cfg cpp/enum_comma.h
-33102 enum_comma-6.cfg cpp/enum_comma.h
-33103 bug_858-f.cfg cpp/bug_858.cpp
-33104 bug_858-r.cfg cpp/bug_858.cpp
-33105 bug_1001.cfg cpp/bug_1001.cpp
-33106 bool-pos-eol-force.cfg cpp/pos_bool_in_template.h
-33107 Issue_2688.cfg cpp/Issue_2688.cpp
-33108 Issue_2045.cfg cpp/Issue_2045.cpp
-
-33110 enum.cfg cpp/enum.cpp
-33120 Issue_2149.cfg cpp/Issue_2149.cpp
-
-33150 indent_columns-4.cfg cpp/bug_i_753.cpp
-33151 bug_i_752.cfg cpp/bug_i_752.cpp
-33152 bug_1004.cfg cpp/bug_1004.cpp
-
-33160 sp_before_byref-r.cfg cpp/bug_1112.cpp
-33161 sp_before_byref-r.cfg cpp/byref-3.cpp
-
-33180 pp_multi_comment.cfg cpp/pp_multi_comment.cpp
-33181 Issue_2759.cfg cpp/Issue_2759.cpp
-33182 Issue_2794.cfg cpp/Issue_2794.cpp
-
-33200 cmt_multi_first_len_minimum-1.cfg cpp/first_len_minimum.cpp
-
-33201 indent_ctor_members_twice.cfg cpp/indent_ctor_members_twice.cpp
-33202 initlist_leading_commas.cfg cpp/initlist_leading_commas.cpp
-33203 Issue_2574.cfg cpp/Issue_2574.cpp
-33204 Issue_2582.cfg cpp/Issue_2582.cpp
-
-33210 disable_nl_cont.cfg cpp/templates4.cpp
-33211 disable_nl_cont.cfg cpp/pp_multi_comment.cpp
-33212 disable_nl_cont.cfg cpp/pp-define-indent.cpp
-33213 disable_nl_cont.cfg cpp/disable_macro.cpp
-33214 Issue_2742.cfg cpp/Issue_2742.cpp
-33215 Issue_3055.cfg cpp/Issue_3055.cpp
-33216 Issue_3055.cfg cpp/Issue_3055-a.cpp
-33217 empty.cfg cpp/Issue_3113.cpp
-
-34001 nl_before_after.cfg cpp/nl_before_after.h
-34002 indent_columns-3.cfg cpp/bug_i_793.cpp
-34003 nl_max_blank_in_func-1.cfg cpp/nl_max_blank_in_func.cpp
-34004 nl_max_blank_in_func-4.cfg cpp/nl_max_blank_in_func.cpp
-34005 empty.cfg cpp/nl_max_blank_in_func.cpp
-34006 empty.cfg cpp/bug_i_575.cpp
-34007 indent_with_tabs-0.cfg cpp/bug_i_928.cpp
-
-34100 empty.cfg cpp/bug_i_525.cpp
-34101 empty.cfg cpp/bug_i_646.cpp
-34105 bug_i_663.cfg cpp/bug_i_663.cpp
-34108 bug_i_666.cfg cpp/bug_i_666.cpp
-
-34112 sp_after_cast-r.cfg cpp/bug_i_889.cpp
-34113 nl_before_func_body_def-1.cfg cpp/bug_902.cpp
-34114 nl_before_func_body_def-2.cfg cpp/bug_902.cpp
-34115 nl_before_func_body_def-2.cfg cpp/nl_before_func_body_def.cpp
-34116 nl_before_func_body_def-2.cfg cpp/issue_2000.cpp
-34117 extern_func.cfg cpp/extern_func.cpp
-34118 Issue_2163.cfg cpp/Issue_2163.cpp
-
-34120 align_assign_span-1.cfg cpp/bug_i_999.cpp
-34121 bug_1717.cfg cpp/bug_1717.cpp
-34122 Issue_2440.cfg cpp/Issue_2440.cpp
-34123 Issue_2440_nl.cfg cpp/Issue_2440_nl.cpp
-
-34130 nl_brace_fparen-f.cfg cpp/bug_i_1000.cpp
-34131 nl_brace_fparen-r.cfg cpp/bug_i_1000.cpp
-34132 new_op_a.cfg cpp/new_op.cpp
-34133 new_op_f.cfg cpp/new_op.cpp
-34134 new_op_r.cfg cpp/new_op.cpp
-34135 new_op_paren_open_close.cfg cpp/new_op.cpp
-34136 sp_balance_nested_parens.cfg cpp/sp_balance_nested_parens.cpp
-
-34140 empty.cfg cpp/bug_1027.cpp
-34141 empty.cfg cpp/bug_1005.cpp
-34142 sp_before_byref-r.cfg cpp/I1112-1.cpp
-34143 I1112-2.cfg cpp/I1112-2.cpp
-34144 sp_before_ptr_star-r.cfg cpp/I1112-3.cpp
-34145 i683.cfg cpp/i683.cpp
-34146 sp_bool-f.cfg cpp/bug_1002.cpp
-34147 sp_bool-r.cfg cpp/bug_1002.cpp
-34148 nl_before_if_closing_paren-f.cfg cpp/bug_1139.cpp
-34149 nl_before_if_closing_paren-r.cfg cpp/bug_1139.cpp
-
-34150 empty.cfg cpp/bug_1032.cpp
-34151 indent_else_if-t.cfg cpp/bug_666.cpp
-34152 empty.cfg cpp/bug_1068.cpp
-34153 nl_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
-34154 nl_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
-34155 nl_type_brace_init_lst_open-f.cfg cpp/type_brace_init_lst.cpp
-34156 nl_type_brace_init_lst_open-r.cfg cpp/type_brace_init_lst.cpp
-34157 nl_type_brace_init_lst_close-f.cfg cpp/type_brace_init_lst.cpp
-34158 nl_type_brace_init_lst_close-r.cfg cpp/type_brace_init_lst.cpp
-34159 sp_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
-
-34160 sp_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
-34161 sp_inside_type_brace_init_lst-f.cfg cpp/type_brace_init_lst.cpp
-34162 sp_inside_type_brace_init_lst-r.cfg cpp/type_brace_init_lst.cpp
-34163 sp_after_type_brace_init_lst_open-f.cfg cpp/type_brace_init_lst.cpp
-34164 sp_after_type_brace_init_lst_open-r.cfg cpp/type_brace_init_lst.cpp
-34165 sp_before_type_brace_init_lst_close-f.cfg cpp/type_brace_init_lst.cpp
-34166 sp_before_type_brace_init_lst_close-r.cfg cpp/type_brace_init_lst.cpp
-34167 nl_func_call_args_multi_line_ignore_closures.cfg cpp/nl_func_call_args_multi_line_ignore_closures.cpp
-34168 nl_type_brace_init_lst-r.cfg cpp/Issue_2910.cpp
-34169 sp_inside_fparens-f.cfg cpp/init-list-call.cpp
-
-34170 empty.cfg cpp/i1082.cpp
-34171 empty.cfg cpp/i1181.cpp
-34172 space_indent_columns-4.cfg cpp/i1165.cpp
-34173 arith-vs-ptr.cfg cpp/i1464.cpp
-34174 arith-vs-ptr.cfg cpp/i1466.cpp
-34175 align_assign_span-1.cfg cpp/i1509.cpp
-34176 align_assign_span-1.cfg cpp/i1509_bug_1112_correction.cpp
-34177 sp_func_call_paren.cfg cpp/sp_func_call_paren.cpp
-
-34180 bug_1402.cfg cpp/bug_1402.cpp
-
-34190 bug_1003.cfg cpp/bug_1003.cpp
-34191 empty.cfg cpp/comment-align-multiline.cpp
-34192 mod_remove_extra_semicolon-t.cfg cpp/i1207.cpp
-34193 empty.cfg cpp/i1218.cpp
-34194 sp_arith_additive-f.cfg cpp/sp_arith_additive.cpp
-34195 sp_arith_additive-r.cfg cpp/sp_arith_additive.cpp
-34196 Issue_1460.cfg cpp/Issue_1460.h
-34197 bug_1161.cfg cpp/bug_1161.cpp
-34198 sp_dc.cfg cpp/bug_1249.cpp
-34199 empty.cfg cpp/not_lambda.cpp
-
-34200 i1536.cfg cpp/i1536.cpp
-34201 mod_add_long_namespace_closebrace_comment-1.cfg cpp/i1565.cpp
-34202 mod_add_long_namespace_closebrace_comment-1.cfg cpp/i1617.cpp
-34203 i1516.cfg cpp/i1516.cpp
-34204 align_func_params_span-1.cfg cpp/func_param_indent_leading_comma.cpp
-34205 bug_1395.cfg cpp/bug_1395.cpp
-34206 indent_semicolon_for_paren-t.cfg cpp/for_loop_head.cpp
-34207 indent_first_for_expr-t.cfg cpp/for_loop_head.cpp
-34208 nl_func_type_name-r.cfg cpp/conversion_operator.cpp
-34209 nl-brAfter-fcallParen.cfg cpp/lambda_selfcalling.cpp
-
-# TODO: Find relevant test cases for 'override'.
-34210 empty.cfg cpp/override_virtual.cpp
-34211 anonymous_enum.cfg cpp/anonymous_enum.cpp
-
-34250 empty.cfg cpp/bug_1607.cpp
-34251 bug_1649.cfg cpp/bug_1649.cpp
-34252 nl_after_func_proto_group-3.cfg cpp/issue_2001.cpp
-34253 nl_after_func_proto_group-3.cfg cpp/friends.cpp
-34254 issue_1985.cfg cpp/issue_1985.cpp
-34255 eat_blanks_after_codewidth.cfg cpp/eat_blanks_after_codewidth.cpp
-34256 Issue_2836.cfg cpp/Issue_2836.cpp
-
-34280 UNI-29935.cfg cpp/UNI-29935.cpp
-
-34290 sp_type_brace_init_lst-f.cfg cpp/brace_brace_init_lst.cpp
-34291 sp_type_brace_init_lst-r.cfg cpp/brace_brace_init_lst.cpp
-34292 sp_inside_type_brace_init_lst-f.cfg cpp/brace_brace_init_lst.cpp
-34293 sp_inside_type_brace_init_lst-r.cfg cpp/brace_brace_init_lst.cpp
-34294 sp_after_type_brace_init_lst_open-f.cfg cpp/brace_brace_init_lst.cpp
-34295 sp_after_type_brace_init_lst_open-r.cfg cpp/brace_brace_init_lst.cpp
-34296 i1768.cfg cpp/i1768.cpp
-34297 align_assign_decl_func-0.cfg cpp/align-assign-mixed.cpp
-34298 align_assign_decl_func-1.cfg cpp/align-assign-mixed.cpp
-34299 align_assign_decl_func-2.cfg cpp/align-assign-mixed.cpp
-
-# __asm__
-34300 bug_1236.cfg cpp/bug_1236.cpp
-34301 nl_fdef_brace_cond-f.cfg cpp/nl_fdef_brace_cond-f.cpp
-34302 nl_fdef_brace_cond-r.cfg cpp/nl_fdef_brace_cond-r.cpp
-34303 nl_fdef_brace_cond-fr.cfg cpp/nl_fdef_brace_cond-fr.cpp
-34304 nl_fdef_brace_cond-rf.cfg cpp/nl_fdef_brace_cond-rf.cpp
-34305 issue_2124-1.cfg cpp/issue_2124-1.cpp
-34306 issue_2124-2.cfg cpp/issue_2124-2.cpp
-34307 2203.cfg cpp/2203.cpp
-34308 enum_comment_wrap.cfg cpp/enum_comment_wrap.cpp
-34309 issue_2209.cfg cpp/issue_2209-1.cpp
-
-34310 issue_2209.cfg cpp/issue_2209-2.cpp
-34311 Issue_2250.cfg cpp/Issue_2250.cpp
-34312 Issue_2101.cfg cpp/Issue_2101.cpp
-34313 Issue_2437.cfg cpp/Issue_2437.cpp
-34314 Issue_2604.cfg cpp/Issue_2604.cpp
-34315 align_func_proto_thresh_1.cfg cpp/align_func_proto_thresh.cpp
-34316 align_func_proto_thresh_2.cfg cpp/align_func_proto_thresh.cpp
-34317 align_func_proto_thresh_3.cfg cpp/align_func_proto_thresh.cpp
-34318 align_assign_func_proto_1.cfg cpp/align_assign_func_proto.cpp
-34319 align_func_proto_thresh_4.cfg cpp/align_func_proto_thresh2.cpp
-
-34320 align_func_proto_thresh_5.cfg cpp/align_func_proto_thresh2.cpp
-34321 bug_2285.cfg cpp/bug_2285.cpp
-34322 issue_2623_1.cfg cpp/issue_2623.cpp
-34323 issue_2623_2.cfg cpp/issue_2623.cpp
-34324 issue_2623_3.cfg cpp/issue_2623.cpp
-34325 Issue_3025.cfg cpp/Issue_3025.cpp
-34326 Issue_3040.cfg cpp/Issue_3040.cpp
-34327 Issue_3044.cfg cpp/Issue_3044.cpp
-34328 Issue_3048.cfg cpp/Issue_3048.cpp
-
-34330 Issue_3061_0nl.cfg cpp/Issue_3061_0nl.cpp
-34331 Issue_3061_0nl.cfg cpp/Issue_3061_1nl.cpp
-34332 Issue_3061_0nl.cfg cpp/Issue_3061_2nl.cpp
-34333 Issue_3061_1nl.cfg cpp/Issue_3061_0nl.cpp
-34334 Issue_3061_1nl.cfg cpp/Issue_3061_1nl.cpp
-34335 Issue_3061_1nl.cfg cpp/Issue_3061_2nl.cpp
-34336 Issue_3061_2nl.cfg cpp/Issue_3061_0nl.cpp
-34337 Issue_3061_2nl.cfg cpp/Issue_3061_1nl.cpp
-34338 Issue_3061_2nl.cfg cpp/Issue_3061_2nl.cpp
-34339 Issue_3061_3nl.cfg cpp/Issue_3061_0nl.cpp
-34340 Issue_3061_3nl.cfg cpp/Issue_3061_1nl.cpp
-34341 Issue_3061_3nl.cfg cpp/Issue_3061_2nl.cpp
-
-34350 indent_comma_brace.cfg cpp/indent_comma_brace_glob.cpp
-34351 indent_comma_brace.cfg cpp/indent_comma_brace_func.cpp
-
-# Adopt some UT tests
-10000 empty.cfg cpp/621_this-spacing.cpp
-10001 empty.cfg cpp/622_ifdef-indentation.cpp
-10002 623_caret-spacing.cfg cpp/623_caret-spacing.cpp
-10003 633_decl-in-func-typedef.cfg cpp/633_decl-in-func-typedef.cpp
-10004 empty.cfg cpp/634_extern-c-no-block.cpp
-10005 Uncrustify.Cpp.cfg cpp/define-indentation.cpp
-10006 dont-detab-strings.cfg cpp/dont-detab-strings.cpp
-10007 dont-process-defines.cfg cpp/dont-process-defines.cpp
-10008 empty.cfg cpp/PR326_invalid-backslash-eol-csharp.cpp
-10009 STUCK_macro-difficulties.cfg cpp/STUCK_macro-difficulties.cpp
-
-10020 U02-Cpp.cfg cpp/macro_spaces.cpp
-10021 U03-Cpp.cfg cpp/braces_align.cpp
-10022 U04-Cpp.cfg cpp/foreach.cpp
-10023 U05-Cpp.cfg cpp/for_auto.cpp
-10024 U06-Cpp.cfg cpp/ifcomment.cpp
-10025 U07-Cpp.cfg cpp/qtargs.cpp
-10026 sp_before_ellipsis-r.cfg cpp/gcc_case_ellipsis.cpp
-10027 Issue_3058.cfg cpp/Issue_3058.cpp
-
-10047 U16-Cpp.cfg cpp/UNI-1334.cpp
-10048 empty.cfg cpp/UNI-1335.cpp
-
-10050 U18-Cpp.cfg cpp/UNI-1337.cpp
-10052 empty.cfg cpp/UNI-1339.cpp
-10053 UNI-1340.cfg cpp/UNI-1340.cpp
-10054 UNI-1344.cfg cpp/UNI-1344.cpp
-10056 UNI-1346.cfg cpp/UNI-1346.cpp
-10057 UNI-1347.cfg cpp/UNI-1347.cpp
-
-10060 UNI-1350.cfg cpp/UNI-1350.cpp
-10062 UNI-1356.cfg cpp/UNI-1356.cpp
-10063 UNI-1358.cfg cpp/UNI-1358.cpp
-10069 empty.cfg cpp/UNI-1980.cpp
-
-10070 U21-Cpp.cfg cpp/UNI-1981.cpp
-10071 empty.cfg cpp/UNI-1983.cpp
-10079 U23-Cpp.cfg cpp/UNI-9650.cpp
-
-10080 UNI-10496.cfg cpp/UNI-10496.cpp
-
-10100 issue_564.cfg cpp/issue_564.cpp
-10101 issue_574.cfg cpp/issue_574.cpp
-10102 issue_574-i-a.cfg cpp/issue_574.cpp
-10103 issue_574-i-b.cfg cpp/issue_574.cpp
-
-10566 empty.cfg cpp/issue_1752.cpp
-
-11000 UNI-12046.cfg cpp/UNI-12046.cpp
-
-20002 UNI-32657.cfg cpp/UNI-32657.cpp
-
-20011 empty.cfg cpp/UNI-38381.cpp
-
-60001 UNI-2650.cfg cpp/UNI-2650.cpp
-60002 U25-Cpp.cfg cpp/UNI-16283.cpp
-60003 U26-Cpp.cfg cpp/UNI-1288.cpp
-60006 UNI-2049.cfg cpp/UNI-2049.cpp
-60017 U27-Cpp.cfg cpp/UNI-2683.cpp
-
-60022 U28-Cpp.cfg cpp/UNI-18439.cpp
-60025 U29-Cpp.cfg cpp/UNI-19894.cpp
-60027 U30-Cpp.cfg cpp/UNI-21506.cpp
-60028 U31-Cpp.cfg cpp/UNI-21509.cpp
-60029 empty.cfg cpp/UNI-21510.cpp
-
-60030 U33-Cpp.cfg cpp/UNI-21727.cpp
-60031 empty.cfg cpp/UNI-21728.cpp
-60032 empty.cfg cpp/UNI-21729.cpp
-60036 UNI-2680.cfg cpp/UNI-2680.cpp
-60038 UNI-30088.cfg cpp/UNI-30088.cpp
-60039 U36-Cpp.cfg cpp/UNI-30628.cpp
-
-60042 UNI-18777.cfg cpp/UNI-18777.cpp
-60043 nl_remove_extra_newlines-1.cfg cpp/i2033.cpp
-60044 nl_fdef_brace-r__nl_collapse_empty_body-t.cfg cpp/i2116.cpp
-60045 align_asterisk_after_type_cast.cfg cpp/align_asterisk_after_type_cast.cpp
-60046 align_continuation_left_shift.cfg cpp/align_continuation_left_shift.cpp
-60047 align_default_after_override.cfg cpp/align_default_after_override.cpp
-60048 bug_2322.cfg cpp/bug_2322.cpp
-60049 bug_2402.cfg cpp/bug_2402.cpp
-
-60050 mod_remove_extra_semicolon-t.cfg cpp/semicolon-removal-after-ternary-operator.cpp
-60051 bug_2371.cfg cpp/bug_2371.cpp
-60052 bug_2433_1.cfg cpp/bug_2433_1.cpp
-60053 bug_2433_2.cfg cpp/bug_2433_2.cpp
-60054 interface-keyword-in-cpp.cfg cpp/interface-keyword-in-cpp.cpp
-60055 issue_3116.cfg cpp/issue_3116.cpp
-60056 issue_3116.cfg cpp/issue_3116-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/d.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/d.test
deleted file mode 100644
index 59322029..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/d.test
+++ /dev/null
@@ -1,68 +0,0 @@
-# d.test ===========
-#
-# Test cases specifically for the D language.
-#
-# Range: 40000 - 49999
-# test.name config.file input.file output.file
-
-40000 d.cfg d/HashMap.d
-40001 d.cfg d/imports.d
-40002 d.cfg d/volatile.d
-40003 d.cfg d/volatile-1.d
-40004 d.cfg d/volatile-2.d
-40005 d.cfg d/volatile-3.d
-40006 d.cfg d/Lexer.d
-40007 d2.cfg d/Lexer.d
-40010 d.cfg d/template.d
-40011 d2.cfg d/template.d
-40020 d.cfg d/funcfunc.d
-40021 d.cfg d/tst01.d
-40022 d-tst2.cfg d/tst02.d
-40023 d.cfg d/bug-indent.d
-40024 d3.cfg d/tst03.d
-40025 d3a.cfg d/tst03.d
-
-40026 empty.cfg d/wysiwyg_strings.d
-40027 empty.cfg d/static_if_in_struct.d
-
-40030 d.cfg d/delegate.d
-40035 d.cfg d/enum.d
-
-40040 sort_imports.cfg d/sort_import.d
-
-40050 d.cfg d/strings.d
-40051 d.cfg d/numbers.d
-40052 d2.cfg d/numbers.d
-
-40060 d.cfg d/casts.d
-40061 d.cfg d/const.d
-
-40070 d_sp_paren.cfg d/d_sp_paren.d
-
-40080 d.cfg d/static_if.d
-
-40090 libd.cfg d/square_indent_tab.d
-
-40100 1438.cfg d/1438.d
-
-40201 invariant.cfg d/invariant.d
-
-40300 d.cfg d/extern_.d
-
-40400 mod_full_brace_if_chain_only-t.cfg d/vbraces000.d
-40401 empty.cfg d/vbraces001.d
-40402 mod_full_brace_if_chain_only-t.cfg d/vbraces002.d
-
-40403 empty.cfg d/template_use.d
-
-40500 empty.cfg d/template_spacing000.d
-40501 sp_after_type-r.cfg d/template_spacing001.d
-40502 sp_after_type-f.cfg d/template_spacing001.d
-40503 sp_after_type-a.cfg d/template_spacing001.d
-40504 sp_after_type-r.cfg d/type_spacing000.d
-40505 sp_after_type-f.cfg d/type_spacing000.d
-40506 sp_after_type-a.cfg d/type_spacing000.d
-
-
-
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/ecma.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/ecma.test
deleted file mode 100644
index fdce3a7d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/ecma.test
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# Test cases specifically for the ECMA language.
-#
-# Range: 90000 - 99999
-# test.name config.file input.file
-
-90000 ben_098.cfg ecma/example-1.es
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00005-cmt-align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00005-cmt-align.c
deleted file mode 100644
index 0a9684c5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00005-cmt-align.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef HAVE_FOO
-void foo(void)
-{
- if (bar)
- {
- call_some_function(); /* call the function */
- return(foo); /* comment */
- } /* if (bar) */
-}
-#endif /* HAVE_FOO */
-#ifndef HAVE_BAR /* bar isn't available on all HW */
-void bar(void)
-{
- if (foo)
- {
- call_some_function(); /* call the function */
- return(foo); /* comment */
- } /* if (foo) */
-}
-#endif /* HAVE_BAR */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02000-i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02000-i2c-core.c
deleted file mode 100644
index cfe6b053..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02000-i2c-core.c
+++ /dev/null
@@ -1,1457 +0,0 @@
-/* i2c-core.c - a device driver for the iic-bus interface */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-99 Simon G. Vogl
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
- * All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
- * SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/i2c.h>
-#include <linux/init.h>
-#include <linux/idr.h>
-#include <linux/seq_file.h>
-#include <asm/uaccess.h>
-
-
-static LIST_HEAD(adapters);
-static LIST_HEAD(drivers);
-static DECLARE_MUTEX(core_lists);
-static DEFINE_IDR(i2c_adapter_idr);
-
-static int i2c_device_match(struct device *dev, struct device_driver *drv)
-{
- return(1);
-}
-
-static int i2c_bus_suspend(struct device *dev, pm_message_t state)
-{
- int rc = 0;
-
- if (dev->driver && dev->driver->suspend)
- {
- rc = dev->driver->suspend(dev, state, 0);
- }
- return(rc);
-}
-
-static int i2c_bus_resume(struct device *dev)
-{
- int rc = 0;
-
- if (dev->driver && dev->driver->resume)
- {
- rc = dev->driver->resume(dev, 0);
- }
- return(rc);
-}
-
-struct bus_type i2c_bus_type =
-{
- .name = "i2c",
- .match = i2c_device_match,
- .suspend = i2c_bus_suspend,
- .resume = i2c_bus_resume,
-};
-
-static int i2c_device_probe(struct device *dev)
-{
- return(-ENODEV);
-}
-
-static int i2c_device_remove(struct device *dev)
-{
- return(0);
-}
-
-void i2c_adapter_dev_release(struct device *dev)
-{
- struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
-
- complete(&adap->dev_released);
-}
-
-struct device_driver i2c_adapter_driver =
-{
- .name = "i2c_adapter",
- .bus = &i2c_bus_type,
- .probe = i2c_device_probe,
- .remove = i2c_device_remove,
-};
-
-static void i2c_adapter_class_dev_release(struct class_device *dev)
-{
- struct i2c_adapter *adap = class_dev_to_i2c_adapter(dev);
-
- complete(&adap->class_dev_released);
-}
-
-struct class i2c_adapter_class =
-{
- .name = "i2c-adapter",
- .release = &i2c_adapter_class_dev_release,
-};
-
-static ssize_t show_adapter_name(struct device *dev, struct device_attribute *attr, char *buf)
-{
- struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
-
- return(sprintf(buf, "%s\n", adap->name));
-}
-static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL);
-
-
-static void i2c_client_release(struct device *dev)
-{
- struct i2c_client *client = to_i2c_client(dev);
-
- complete(&client->released);
-}
-
-static ssize_t show_client_name(struct device *dev, struct device_attribute *attr, char *buf)
-{
- struct i2c_client *client = to_i2c_client(dev);
-
- return(sprintf(buf, "%s\n", client->name));
-}
-
-/*
- * We can't use the DEVICE_ATTR() macro here as we want the same filename for a
- * different type of a device. So beware if the DEVICE_ATTR() macro ever
- * changes, this definition will also have to change.
- */
-static struct device_attribute dev_attr_client_name =
-{
- .attr = { .name = "name", .mode = S_IRUGO, .owner = THIS_MODULE },
- .show = &show_client_name,
-};
-
-
-/* ---------------------------------------------------
- * registering functions
- * ---------------------------------------------------
- */
-
-/* -----
- * i2c_add_adapter is called from within the algorithm layer,
- * when a new hw adapter registers. A new device is register to be
- * available for clients.
- */
-int i2c_add_adapter(struct i2c_adapter *adap)
-{
- int id, res = 0;
- struct list_head *item;
- struct i2c_driver *driver;
-
- down(&core_lists);
-
- if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0)
- {
- res = -ENOMEM;
- goto out_unlock;
- }
-
- res = idr_get_new(&i2c_adapter_idr, adap, &id);
- if (res < 0)
- {
- if (res == -EAGAIN)
- {
- res = -ENOMEM;
- }
- goto out_unlock;
- }
-
- adap->nr = id & MAX_ID_MASK;
- init_MUTEX(&adap->bus_lock);
- init_MUTEX(&adap->clist_lock);
- list_add_tail(&adap->list, &adapters);
- INIT_LIST_HEAD(&adap->clients);
-
- /* Add the adapter to the driver core.
- * If the parent pointer is not set up,
- * we add this adapter to the host bus.
- */
- if (adap->dev.parent == NULL)
- {
- adap->dev.parent = &platform_bus;
- }
- sprintf(adap->dev.bus_id, "i2c-%d", adap->nr);
- adap->dev.driver = &i2c_adapter_driver;
- adap->dev.release = &i2c_adapter_dev_release;
- device_register(&adap->dev);
- device_create_file(&adap->dev, &dev_attr_name);
-
- /* Add this adapter to the i2c_adapter class */
- memset(&adap->class_dev, 0x00, sizeof(struct class_device));
- adap->class_dev.dev = &adap->dev;
- adap->class_dev.class = &i2c_adapter_class;
- strlcpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
- class_device_register(&adap->class_dev);
-
- dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
-
- /* inform drivers of new adapters */
- list_for_each(item, &drivers)
- {
- driver = list_entry(item, struct i2c_driver, list);
- if (driver->flags & I2C_DF_NOTIFY)
- {
- /* We ignore the return code; if it fails, too bad */
- driver->attach_adapter(adap);
- }
- }
-
- out_unlock:
- up(&core_lists);
- return(res);
-} /* i2c_add_adapter */
-
-
-int i2c_del_adapter(struct i2c_adapter *adap)
-{
- struct list_head *item, *_n;
- struct i2c_adapter *adap_from_list;
- struct i2c_driver *driver;
- struct i2c_client *client;
- int res = 0;
-
- down(&core_lists);
-
- /* First make sure that this adapter was ever added */
- list_for_each_entry(adap_from_list, &adapters, list)
- {
- if (adap_from_list == adap)
- {
- break;
- }
- }
- if (adap_from_list != adap)
- {
- pr_debug("i2c-core: attempting to delete unregistered "
- "adapter [%s]\n", adap->name);
- res = -EINVAL;
- goto out_unlock;
- }
-
- list_for_each(item, &drivers)
- {
- driver = list_entry(item, struct i2c_driver, list);
- if (driver->detach_adapter)
- {
- if ((res = driver->detach_adapter(adap)))
- {
- dev_err(&adap->dev, "detach_adapter failed "
- "for driver [%s]\n", driver->name);
- goto out_unlock;
- }
- }
- }
-
- /* detach any active clients. This must be done first, because
- * it can fail; in which case we give up. */
- list_for_each_safe(item, _n, &adap->clients)
- {
- client = list_entry(item, struct i2c_client, list);
-
- /* detaching devices is unconditional of the set notify
- * flag, as _all_ clients that reside on the adapter
- * must be deleted, as this would cause invalid states.
- */
- if ((res = client->driver->detach_client(client)))
- {
- dev_err(&adap->dev, "detach_client failed for client "
- "[%s] at address 0x%02x\n", client->name,
- client->addr);
- goto out_unlock;
- }
- }
-
- /* clean up the sysfs representation */
- init_completion(&adap->dev_released);
- init_completion(&adap->class_dev_released);
- class_device_unregister(&adap->class_dev);
- device_remove_file(&adap->dev, &dev_attr_name);
- device_unregister(&adap->dev);
- list_del(&adap->list);
-
- /* wait for sysfs to drop all references */
- wait_for_completion(&adap->dev_released);
- wait_for_completion(&adap->class_dev_released);
-
- /* free dynamically allocated bus id */
- idr_remove(&i2c_adapter_idr, adap->nr);
-
- dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name);
-
- out_unlock:
- up(&core_lists);
- return(res);
-} /* i2c_del_adapter */
-
-
-/* -----
- * What follows is the "upwards" interface: commands for talking to clients,
- * which implement the functions to access the physical information of the
- * chips.
- */
-
-int i2c_add_driver(struct i2c_driver *driver)
-{
- struct list_head *item;
- struct i2c_adapter *adapter;
- int res = 0;
-
- down(&core_lists);
-
- /* add the driver to the list of i2c drivers in the driver core */
- driver->driver.name = driver->name;
- driver->driver.bus = &i2c_bus_type;
- driver->driver.probe = i2c_device_probe;
- driver->driver.remove = i2c_device_remove;
-
- res = driver_register(&driver->driver);
- if (res)
- {
- goto out_unlock;
- }
-
- list_add_tail(&driver->list, &drivers);
- pr_debug("i2c-core: driver [%s] registered\n", driver->name);
-
- /* now look for instances of driver on our adapters */
- if (driver->flags & I2C_DF_NOTIFY)
- {
- list_for_each(item, &adapters)
- {
- adapter = list_entry(item, struct i2c_adapter, list);
- driver->attach_adapter(adapter);
- }
- }
-
- out_unlock:
- up(&core_lists);
- return(res);
-}
-
-int i2c_del_driver(struct i2c_driver *driver)
-{
- struct list_head *item1, *item2, *_n;
- struct i2c_client *client;
- struct i2c_adapter *adap;
-
- int res = 0;
-
- down(&core_lists);
-
- /* Have a look at each adapter, if clients of this driver are still
- * attached. If so, detach them to be able to kill the driver
- * afterwards.
- *
- * Removing clients does not depend on the notify flag, else
- * invalid operation might (will!) result, when using stale client
- * pointers.
- */
- list_for_each(item1, &adapters)
- {
- adap = list_entry(item1, struct i2c_adapter, list);
- if (driver->detach_adapter)
- {
- if ((res = driver->detach_adapter(adap)))
- {
- dev_err(&adap->dev, "detach_adapter failed "
- "for driver [%s]\n", driver->name);
- goto out_unlock;
- }
- }
- else
- {
- list_for_each_safe(item2, _n, &adap->clients)
- {
- client = list_entry(item2, struct i2c_client, list);
- if (client->driver != driver)
- {
- continue;
- }
- dev_dbg(&adap->dev, "detaching client [%s] "
- "at 0x%02x\n", client->name,
- client->addr);
- if ((res = driver->detach_client(client)))
- {
- dev_err(&adap->dev, "detach_client "
- "failed for client [%s] at "
- "0x%02x\n", client->name,
- client->addr);
- goto out_unlock;
- }
- }
- }
- }
-
- driver_unregister(&driver->driver);
- list_del(&driver->list);
- pr_debug("i2c-core: driver [%s] unregistered\n", driver->name);
-
- out_unlock:
- up(&core_lists);
- return(0);
-} /* i2c_del_driver */
-
-static int __i2c_check_addr(struct i2c_adapter *adapter, unsigned int addr)
-{
- struct list_head *item;
- struct i2c_client *client;
-
- list_for_each(item, &adapter->clients)
- {
- client = list_entry(item, struct i2c_client, list);
- if (client->addr == addr)
- {
- return(-EBUSY);
- }
- }
- return(0);
-}
-
-int i2c_check_addr(struct i2c_adapter *adapter, int addr)
-{
- int rval;
-
- down(&adapter->clist_lock);
- rval = __i2c_check_addr(adapter, addr);
- up(&adapter->clist_lock);
-
- return(rval);
-}
-
-int i2c_attach_client(struct i2c_client *client)
-{
- struct i2c_adapter *adapter = client->adapter;
-
- down(&adapter->clist_lock);
- if (__i2c_check_addr(client->adapter, client->addr))
- {
- up(&adapter->clist_lock);
- return(-EBUSY);
- }
- list_add_tail(&client->list, &adapter->clients);
- up(&adapter->clist_lock);
-
- if (adapter->client_register)
- {
- if (adapter->client_register(client))
- {
- dev_dbg(&adapter->dev, "client_register "
- "failed for client [%s] at 0x%02x\n",
- client->name, client->addr);
- }
- }
-
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- client->usage_count = 0;
- }
-
- client->dev.parent = &client->adapter->dev;
- client->dev.driver = &client->driver->driver;
- client->dev.bus = &i2c_bus_type;
- client->dev.release = &i2c_client_release;
-
- snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),
- "%d-%04x", i2c_adapter_id(adapter), client->addr);
- dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n",
- client->name, client->dev.bus_id);
- device_register(&client->dev);
- device_create_file(&client->dev, &dev_attr_client_name);
-
- return(0);
-} /* i2c_attach_client */
-
-
-int i2c_detach_client(struct i2c_client *client)
-{
- struct i2c_adapter *adapter = client->adapter;
- int res = 0;
-
- if ((client->flags & I2C_CLIENT_ALLOW_USE)
- && (client->usage_count > 0))
- {
- dev_warn(&client->dev, "Client [%s] still busy, "
- "can't detach\n", client->name);
- return(-EBUSY);
- }
-
- if (adapter->client_unregister)
- {
- res = adapter->client_unregister(client);
- if (res)
- {
- dev_err(&client->dev,
- "client_unregister [%s] failed, "
- "client not detached\n", client->name);
- goto out;
- }
- }
-
- down(&adapter->clist_lock);
- list_del(&client->list);
- init_completion(&client->released);
- device_remove_file(&client->dev, &dev_attr_client_name);
- device_unregister(&client->dev);
- up(&adapter->clist_lock);
- wait_for_completion(&client->released);
-
- out:
- return(res);
-}
-
-static int i2c_inc_use_client(struct i2c_client *client)
-{
- if (!try_module_get(client->driver->owner))
- {
- return(-ENODEV);
- }
- if (!try_module_get(client->adapter->owner))
- {
- module_put(client->driver->owner);
- return(-ENODEV);
- }
-
- return(0);
-}
-
-static void i2c_dec_use_client(struct i2c_client *client)
-{
- module_put(client->driver->owner);
- module_put(client->adapter->owner);
-}
-
-int i2c_use_client(struct i2c_client *client)
-{
- int ret;
-
- ret = i2c_inc_use_client(client);
- if (ret)
- {
- return(ret);
- }
-
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- if (client->flags & I2C_CLIENT_ALLOW_MULTIPLE_USE)
- {
- client->usage_count++;
- }
- else if (client->usage_count > 0)
- {
- goto busy;
- }
- else
- {
- client->usage_count++;
- }
- }
-
- return(0);
-
- busy:
- i2c_dec_use_client(client);
- return(-EBUSY);
-}
-
-int i2c_release_client(struct i2c_client *client)
-{
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- if (client->usage_count > 0)
- {
- client->usage_count--;
- }
- else
- {
- pr_debug("i2c-core: %s used one too many times\n",
- __FUNCTION__);
- return(-EPERM);
- }
- }
-
- i2c_dec_use_client(client);
-
- return(0);
-}
-
-void i2c_clients_command(struct i2c_adapter *adap, unsigned int cmd, void *arg)
-{
- struct list_head *item;
- struct i2c_client *client;
-
- down(&adap->clist_lock);
- list_for_each(item, &adap->clients)
- {
- client = list_entry(item, struct i2c_client, list);
- if (!try_module_get(client->driver->owner))
- {
- continue;
- }
- if (NULL != client->driver->command)
- {
- up(&adap->clist_lock);
- client->driver->command(client, cmd, arg);
- down(&adap->clist_lock);
- }
- module_put(client->driver->owner);
- }
- up(&adap->clist_lock);
-}
-
-static int __init i2c_init(void)
-{
- int retval;
-
- retval = bus_register(&i2c_bus_type);
- if (retval)
- {
- return(retval);
- }
- retval = driver_register(&i2c_adapter_driver);
- if (retval)
- {
- return(retval);
- }
- return(class_register(&i2c_adapter_class));
-}
-
-static void __exit i2c_exit(void)
-{
- class_unregister(&i2c_adapter_class);
- driver_unregister(&i2c_adapter_driver);
- bus_unregister(&i2c_bus_type);
-}
-
-subsys_initcall(i2c_init);
-module_exit(i2c_exit);
-
-/* ----------------------------------------------------
- * the functional interface to the i2c busses.
- * ----------------------------------------------------
- */
-
-int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
-{
- int ret;
-
- if (adap->algo->master_xfer)
- {
-#ifdef DEBUG
- for (ret = 0; ret < num; ret++)
- {
- dev_dbg(&adap->dev, "master_xfer[%d] %c, addr=0x%02x, "
- "len=%d\n", ret, msgs[ret].flags & I2C_M_RD ?
- 'R' : 'W', msgs[ret].addr, msgs[ret].len);
- }
-#endif
-
- down(&adap->bus_lock);
- ret = adap->algo->master_xfer(adap, msgs, num);
- up(&adap->bus_lock);
-
- return(ret);
- }
- else
- {
- dev_dbg(&adap->dev, "I2C level transfers not supported\n");
- return(-ENOSYS);
- }
-}
-
-int i2c_master_send(struct i2c_client *client, const char *buf, int count)
-{
- int ret;
- struct i2c_adapter *adap = client->adapter;
- struct i2c_msg msg;
-
- msg.addr = client->addr;
- msg.flags = client->flags & I2C_M_TEN;
- msg.len = count;
- msg.buf = (char *)buf;
-
- ret = i2c_transfer(adap, &msg, 1);
-
- /* If everything went ok (i.e. 1 msg transmitted), return #bytes
- * transmitted, else error code. */
- return((ret == 1) ? count : ret);
-}
-
-int i2c_master_recv(struct i2c_client *client, char *buf, int count)
-{
- struct i2c_adapter *adap = client->adapter;
- struct i2c_msg msg;
- int ret;
-
- msg.addr = client->addr;
- msg.flags = client->flags & I2C_M_TEN;
- msg.flags |= I2C_M_RD;
- msg.len = count;
- msg.buf = buf;
-
- ret = i2c_transfer(adap, &msg, 1);
-
- /* If everything went ok (i.e. 1 msg transmitted), return #bytes
- * transmitted, else error code. */
- return((ret == 1) ? count : ret);
-}
-
-
-int i2c_control(struct i2c_client *client,
- unsigned int cmd, unsigned long arg)
-{
- int ret = 0;
- struct i2c_adapter *adap = client->adapter;
-
- dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
- switch (cmd)
- {
- case I2C_RETRIES:
- adap->retries = arg;
- break;
-
- case I2C_TIMEOUT:
- adap->timeout = arg;
- break;
-
- default:
- if (adap->algo->algo_control != NULL)
- {
- ret = adap->algo->algo_control(adap, cmd, arg);
- }
- }
- return(ret);
-}
-
-/* ----------------------------------------------------
- * the i2c address scanning function
- * Will not work for 10-bit addresses!
- * ----------------------------------------------------
- */
-static int i2c_probe_address(struct i2c_adapter *adapter, int addr, int kind,
- int (*found_proc)(struct i2c_adapter *, int, int))
-{
- int err;
-
- /* Make sure the address is valid */
- if (addr < 0x03 || addr > 0x77)
- {
- dev_warn(&adapter->dev, "Invalid probe address 0x%02x\n",
- addr);
- return(-EINVAL);
- }
-
- /* Skip if already in use */
- if (i2c_check_addr(adapter, addr))
- {
- return(0);
- }
-
- /* Make sure there is something at this address, unless forced */
- if (kind < 0)
- {
- if (i2c_smbus_xfer(adapter, addr, 0, 0, 0,
- I2C_SMBUS_QUICK, NULL) < 0)
- {
- return(0);
- }
-
- /* prevent 24RF08 corruption */
- if ((addr & ~0x0f) == 0x50)
- {
- i2c_smbus_xfer(adapter, addr, 0, 0, 0,
- I2C_SMBUS_QUICK, NULL);
- }
- }
-
- /* Finally call the custom detection function */
- err = found_proc(adapter, addr, kind);
-
- /* -ENODEV can be returned if there is a chip at the given address
- * but it isn't supported by this chip driver. We catch it here as
- * this isn't an error. */
- return((err == -ENODEV) ? 0 : err);
-}
-
-int i2c_probe(struct i2c_adapter *adapter,
- struct i2c_client_address_data *address_data,
- int (*found_proc)(struct i2c_adapter *, int, int))
-{
- int i, err;
- int adap_id = i2c_adapter_id(adapter);
-
- /* Forget it if we can't probe using SMBUS_QUICK */
- if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK))
- {
- return(-1);
- }
-
- /* Force entries are done first, and are not affected by ignore
- * entries */
- if (address_data->forces)
- {
- unsigned short **forces = address_data->forces;
- int kind;
-
- for (kind = 0; forces[kind]; kind++)
- {
- for (i = 0; forces[kind][i] != I2C_CLIENT_END;
- i += 2)
- {
- if (forces[kind][i] == adap_id
- || forces[kind][i] == ANY_I2C_BUS)
- {
- dev_dbg(&adapter->dev, "found force "
- "parameter for adapter %d, "
- "addr 0x%02x, kind %d\n",
- adap_id, forces[kind][i + 1],
- kind);
- err = i2c_probe_address(adapter,
- forces[kind][i + 1],
- kind, found_proc);
- if (err)
- {
- return(err);
- }
- }
- }
- }
- }
-
- /* Probe entries are done second, and are not affected by ignore
- * entries either */
- for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2)
- {
- if (address_data->probe[i] == adap_id
- || address_data->probe[i] == ANY_I2C_BUS)
- {
- dev_dbg(&adapter->dev, "found probe parameter for "
- "adapter %d, addr 0x%02x\n", adap_id,
- address_data->probe[i + 1]);
- err = i2c_probe_address(adapter,
- address_data->probe[i + 1],
- -1, found_proc);
- if (err)
- {
- return(err);
- }
- }
- }
-
- /* Normal entries are done last, unless shadowed by an ignore entry */
- for (i = 0; address_data->normal_i2c[i] != I2C_CLIENT_END; i += 1)
- {
- int j, ignore;
-
- ignore = 0;
- for (j = 0; address_data->ignore[j] != I2C_CLIENT_END;
- j += 2)
- {
- if ((address_data->ignore[j] == adap_id ||
- address_data->ignore[j] == ANY_I2C_BUS)
- && address_data->ignore[j + 1]
- == address_data->normal_i2c[i])
- {
- dev_dbg(&adapter->dev, "found ignore "
- "parameter for adapter %d, "
- "addr 0x%02x\n", adap_id,
- address_data->ignore[j + 1]);
- }
- ignore = 1;
- break;
- }
- if (ignore)
- {
- continue;
- }
-
- dev_dbg(&adapter->dev, "found normal entry for adapter %d, "
- "addr 0x%02x\n", adap_id,
- address_data->normal_i2c[i]);
- err = i2c_probe_address(adapter, address_data->normal_i2c[i],
- -1, found_proc);
- if (err)
- {
- return(err);
- }
- }
-
- return(0);
-} /* i2c_probe */
-
-struct i2c_adapter *i2c_get_adapter(int id)
-{
- struct i2c_adapter *adapter;
-
- down(&core_lists);
- adapter = (struct i2c_adapter *)idr_find(&i2c_adapter_idr, id);
- if (adapter && !try_module_get(adapter->owner))
- {
- adapter = NULL;
- }
-
- up(&core_lists);
- return(adapter);
-}
-
-void i2c_put_adapter(struct i2c_adapter *adap)
-{
- module_put(adap->owner);
-}
-
-/* The SMBus parts */
-
-#define POLY (0x1070U << 3)
-static u8
-crc8(u16 data)
-{
- int i;
-
- for (i = 0; i < 8; i++)
- {
- if (data & 0x8000)
- {
- data = data ^ POLY;
- }
- data = data << 1;
- }
- return((u8)(data >> 8));
-}
-
-/* CRC over count bytes in the first array plus the bytes in the rest
- * array if it is non-null. rest[0] is the (length of rest) - 1
- * and is included. */
-static u8 i2c_smbus_partial_pec(u8 crc, int count, u8 *first, u8 *rest)
-{
- int i;
-
- for (i = 0; i < count; i++)
- {
- crc = crc8((crc ^ first[i]) << 8);
- }
- if (rest != NULL)
- {
- for (i = 0; i <= rest[0]; i++)
- {
- crc = crc8((crc ^ rest[i]) << 8);
- }
- }
- return(crc);
-}
-
-static u8 i2c_smbus_pec(int count, u8 *first, u8 *rest)
-{
- return(i2c_smbus_partial_pec(0, count, first, rest));
-}
-
-/* Returns new "size" (transaction type)
- * Note that we convert byte to byte_data and byte_data to word_data
- * rather than invent new xxx_PEC transactions. */
-static int i2c_smbus_add_pec(u16 addr, u8 command, int size,
- union i2c_smbus_data *data)
-{
- u8 buf[3];
-
- buf[0] = addr << 1;
- buf[1] = command;
- switch (size)
- {
- case I2C_SMBUS_BYTE:
- data->byte = i2c_smbus_pec(2, buf, NULL);
- size = I2C_SMBUS_BYTE_DATA;
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- buf[2] = data->byte;
- data->word = buf[2] ||
- (i2c_smbus_pec(3, buf, NULL) << 8);
- size = I2C_SMBUS_WORD_DATA;
- break;
-
- case I2C_SMBUS_WORD_DATA:
- /* unsupported */
- break;
-
- case I2C_SMBUS_BLOCK_DATA:
- data->block[data->block[0] + 1] =
- i2c_smbus_pec(2, buf, data->block);
- size = I2C_SMBUS_BLOCK_DATA_PEC;
- break;
- }
- return(size);
-}
-
-static int i2c_smbus_check_pec(u16 addr, u8 command, int size, u8 partial,
- union i2c_smbus_data *data)
-{
- u8 buf[3], rpec, cpec;
-
- buf[1] = command;
- switch (size)
- {
- case I2C_SMBUS_BYTE_DATA:
- buf[0] = (addr << 1) | 1;
- cpec = i2c_smbus_pec(2, buf, NULL);
- rpec = data->byte;
- break;
-
- case I2C_SMBUS_WORD_DATA:
- buf[0] = (addr << 1) | 1;
- buf[2] = data->word & 0xff;
- cpec = i2c_smbus_pec(3, buf, NULL);
- rpec = data->word >> 8;
- break;
-
- case I2C_SMBUS_WORD_DATA_PEC:
- /* unsupported */
- cpec = rpec = 0;
- break;
-
- case I2C_SMBUS_PROC_CALL_PEC:
- /* unsupported */
- cpec = rpec = 0;
- break;
-
- case I2C_SMBUS_BLOCK_DATA_PEC:
- buf[0] = (addr << 1);
- buf[2] = (addr << 1) | 1;
- cpec = i2c_smbus_pec(3, buf, data->block);
- rpec = data->block[data->block[0] + 1];
- break;
-
- case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
- buf[0] = (addr << 1) | 1;
- rpec = i2c_smbus_partial_pec(partial, 1,
- buf, data->block);
- cpec = data->block[data->block[0] + 1];
- break;
-
- default:
- cpec = rpec = 0;
- break;
- } /* switch */
- if (rpec != cpec)
- {
- pr_debug("i2c-core: Bad PEC 0x%02x vs. 0x%02x\n",
- rpec, cpec);
- return(-1);
- }
- return(0);
-} /* i2c_smbus_check_pec */
-
-s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value)
-{
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- value, 0, I2C_SMBUS_QUICK, NULL));
-}
-
-s32 i2c_smbus_read_byte(struct i2c_client *client)
-{
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, 0, I2C_SMBUS_BYTE, &data))
- {
- return(-1);
- }
- else
- {
- return(0x0FF & data.byte);
- }
-}
-
-s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value)
-{
- union i2c_smbus_data data; /* only for PEC */
-
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, &data));
-}
-
-s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command)
-{
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command, I2C_SMBUS_BYTE_DATA, &data))
- {
- return(-1);
- }
- else
- {
- return(0x0FF & data.byte);
- }
-}
-
-s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value)
-{
- union i2c_smbus_data data;
-
- data.byte = value;
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_BYTE_DATA, &data));
-}
-
-s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command)
-{
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command, I2C_SMBUS_WORD_DATA, &data))
- {
- return(-1);
- }
- else
- {
- return(0x0FFFF & data.word);
- }
-}
-
-s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value)
-{
- union i2c_smbus_data data;
-
- data.word = value;
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_WORD_DATA, &data));
-}
-
-s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command,
- u8 length, u8 *values)
-{
- union i2c_smbus_data data;
- int i;
-
- if (length > I2C_SMBUS_BLOCK_MAX)
- {
- length = I2C_SMBUS_BLOCK_MAX;
- }
- for (i = 1; i <= length; i++)
- {
- data.block[i] = values[i - 1];
- }
- data.block[0] = length;
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_BLOCK_DATA, &data));
-}
-
-/* Returns the number of read bytes */
-s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, u8 *values)
-{
- union i2c_smbus_data data;
- int i;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command,
- I2C_SMBUS_I2C_BLOCK_DATA, &data))
- {
- return(-1);
- }
- else
- {
- for (i = 1; i <= data.block[0]; i++)
- {
- values[i - 1] = data.block[i];
- }
- return(data.block[0]);
- }
-}
-
-/* Simulate a SMBus command using the i2c protocol
- * No checking of parameters is done! */
-static s32 i2c_smbus_xfer_emulated(struct i2c_adapter *adapter, u16 addr,
- unsigned short flags,
- char read_write, u8 command, int size,
- union i2c_smbus_data *data)
-{
- /* So we need to generate a series of msgs. In the case of writing, we
- * need to use only one message; when reading, we need two. We initialize
- * most things with sane defaults, to keep the code below somewhat
- * simpler. */
- unsigned char msgbuf0[34];
- unsigned char msgbuf1[34];
- int num = read_write == I2C_SMBUS_READ ? 2 : 1;
- struct i2c_msg msg[2] = { { addr, flags, 1, msgbuf0 },
- { addr, flags | I2C_M_RD, 0, msgbuf1 } };
- int i;
-
- msgbuf0[0] = command;
- switch (size)
- {
- case I2C_SMBUS_QUICK:
- msg[0].len = 0;
- /* Special case: The read/write field is used as data */
- msg[0].flags = flags | (read_write == I2C_SMBUS_READ) ? I2C_M_RD : 0;
- num = 1;
- break;
-
- case I2C_SMBUS_BYTE:
- if (read_write == I2C_SMBUS_READ)
- {
- /* Special case: only a read! */
- msg[0].flags = I2C_M_RD | flags;
- num = 1;
- }
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- if (read_write == I2C_SMBUS_READ)
- {
- msg[1].len = 1;
- }
- else
- {
- msg[0].len = 2;
- msgbuf0[1] = data->byte;
- }
- break;
-
- case I2C_SMBUS_WORD_DATA:
- if (read_write == I2C_SMBUS_READ)
- {
- msg[1].len = 2;
- }
- else
- {
- msg[0].len = 3;
- msgbuf0[1] = data->word & 0xff;
- msgbuf0[2] = (data->word >> 8) & 0xff;
- }
- break;
-
- case I2C_SMBUS_PROC_CALL:
- num = 2; /* Special case */
- read_write = I2C_SMBUS_READ;
- msg[0].len = 3;
- msg[1].len = 2;
- msgbuf0[1] = data->word & 0xff;
- msgbuf0[2] = (data->word >> 8) & 0xff;
- break;
-
- case I2C_SMBUS_BLOCK_DATA:
- case I2C_SMBUS_BLOCK_DATA_PEC:
- if (read_write == I2C_SMBUS_READ)
- {
- dev_err(&adapter->dev, "Block read not supported "
- "under I2C emulation!\n");
- return(-1);
- }
- else
- {
- msg[0].len = data->block[0] + 2;
- if (msg[0].len > I2C_SMBUS_BLOCK_MAX + 2)
- {
- dev_err(&adapter->dev, "smbus_access called with "
- "invalid block write size (%d)\n",
- data->block[0]);
- return(-1);
- }
- if (size == I2C_SMBUS_BLOCK_DATA_PEC)
- {
- (msg[0].len)++;
- }
- for (i = 1; i <= msg[0].len; i++)
- {
- msgbuf0[i] = data->block[i - 1];
- }
- }
- break;
-
- case I2C_SMBUS_BLOCK_PROC_CALL:
- case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
- dev_dbg(&adapter->dev, "Block process call not supported "
- "under I2C emulation!\n");
- return(-1);
-
- case I2C_SMBUS_I2C_BLOCK_DATA:
- if (read_write == I2C_SMBUS_READ)
- {
- msg[1].len = I2C_SMBUS_I2C_BLOCK_MAX;
- }
- else
- {
- msg[0].len = data->block[0] + 1;
- if (msg[0].len > I2C_SMBUS_I2C_BLOCK_MAX + 1)
- {
- dev_err(&adapter->dev, "i2c_smbus_xfer_emulated called with "
- "invalid block write size (%d)\n",
- data->block[0]);
- return(-1);
- }
- for (i = 1; i <= data->block[0]; i++)
- {
- msgbuf0[i] = data->block[i];
- }
- }
- break;
-
- default:
- dev_err(&adapter->dev, "smbus_access called with invalid size (%d)\n",
- size);
- return(-1);
- } /* switch */
-
- if (i2c_transfer(adapter, msg, num) < 0)
- {
- return(-1);
- }
-
- if (read_write == I2C_SMBUS_READ)
- {
- switch (size)
- {
- case I2C_SMBUS_BYTE:
- data->byte = msgbuf0[0];
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- data->byte = msgbuf1[0];
- break;
-
- case I2C_SMBUS_WORD_DATA:
- case I2C_SMBUS_PROC_CALL:
- data->word = msgbuf1[0] | (msgbuf1[1] << 8);
- break;
-
- case I2C_SMBUS_I2C_BLOCK_DATA:
- /* fixed at 32 for now */
- data->block[0] = I2C_SMBUS_I2C_BLOCK_MAX;
- for (i = 0; i < I2C_SMBUS_I2C_BLOCK_MAX; i++)
- {
- data->block[i + 1] = msgbuf1[i];
- }
- break;
- }
- }
- return(0);
-} /* i2c_smbus_xfer_emulated */
-
-
-s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, unsigned short flags,
- char read_write, u8 command, int size,
- union i2c_smbus_data *data)
-{
- s32 res;
- int swpec = 0;
- u8 partial = 0;
-
- flags &= I2C_M_TEN | I2C_CLIENT_PEC;
- if ((flags & I2C_CLIENT_PEC) &&
- !(i2c_check_functionality(adapter, I2C_FUNC_SMBUS_HWPEC_CALC)))
- {
- swpec = 1;
- if (read_write == I2C_SMBUS_READ &&
- size == I2C_SMBUS_BLOCK_DATA)
- {
- size = I2C_SMBUS_BLOCK_DATA_PEC;
- }
- else if (size == I2C_SMBUS_PROC_CALL)
- {
- size = I2C_SMBUS_PROC_CALL_PEC;
- }
- else if (size == I2C_SMBUS_BLOCK_PROC_CALL)
- {
- i2c_smbus_add_pec(addr, command,
- I2C_SMBUS_BLOCK_DATA, data);
- partial = data->block[data->block[0] + 1];
- size = I2C_SMBUS_BLOCK_PROC_CALL_PEC;
- }
- else if (read_write == I2C_SMBUS_WRITE &&
- size != I2C_SMBUS_QUICK &&
- size != I2C_SMBUS_I2C_BLOCK_DATA)
- {
- size = i2c_smbus_add_pec(addr, command, size, data);
- }
- }
-
- if (adapter->algo->smbus_xfer)
- {
- down(&adapter->bus_lock);
- res = adapter->algo->smbus_xfer(adapter, addr, flags, read_write,
- command, size, data);
- up(&adapter->bus_lock);
- }
- else
- {
- res = i2c_smbus_xfer_emulated(adapter, addr, flags, read_write,
- command, size, data);
- }
-
- if (res >= 0 && swpec &&
- size != I2C_SMBUS_QUICK && size != I2C_SMBUS_I2C_BLOCK_DATA &&
- (read_write == I2C_SMBUS_READ || size == I2C_SMBUS_PROC_CALL_PEC ||
- size == I2C_SMBUS_BLOCK_PROC_CALL_PEC))
- {
- if (i2c_smbus_check_pec(addr, command, size, partial, data))
- {
- return(-1);
- }
- }
- return(res);
-} /* i2c_smbus_xfer */
-
-
-/* Next four are needed by i2c-isa */
-EXPORT_SYMBOL_GPL(i2c_adapter_dev_release);
-EXPORT_SYMBOL_GPL(i2c_adapter_driver);
-EXPORT_SYMBOL_GPL(i2c_adapter_class);
-EXPORT_SYMBOL_GPL(i2c_bus_type);
-
-EXPORT_SYMBOL(i2c_add_adapter);
-EXPORT_SYMBOL(i2c_del_adapter);
-EXPORT_SYMBOL(i2c_add_driver);
-EXPORT_SYMBOL(i2c_del_driver);
-EXPORT_SYMBOL(i2c_attach_client);
-EXPORT_SYMBOL(i2c_detach_client);
-EXPORT_SYMBOL(i2c_use_client);
-EXPORT_SYMBOL(i2c_release_client);
-EXPORT_SYMBOL(i2c_clients_command);
-EXPORT_SYMBOL(i2c_check_addr);
-
-EXPORT_SYMBOL(i2c_master_send);
-EXPORT_SYMBOL(i2c_master_recv);
-EXPORT_SYMBOL(i2c_control);
-EXPORT_SYMBOL(i2c_transfer);
-EXPORT_SYMBOL(i2c_get_adapter);
-EXPORT_SYMBOL(i2c_put_adapter);
-EXPORT_SYMBOL(i2c_probe);
-
-EXPORT_SYMBOL(i2c_smbus_xfer);
-EXPORT_SYMBOL(i2c_smbus_write_quick);
-EXPORT_SYMBOL(i2c_smbus_read_byte);
-EXPORT_SYMBOL(i2c_smbus_write_byte);
-EXPORT_SYMBOL(i2c_smbus_read_byte_data);
-EXPORT_SYMBOL(i2c_smbus_write_byte_data);
-EXPORT_SYMBOL(i2c_smbus_read_word_data);
-EXPORT_SYMBOL(i2c_smbus_write_word_data);
-EXPORT_SYMBOL(i2c_smbus_write_block_data);
-EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data);
-
-MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
-MODULE_DESCRIPTION("I2C-Bus main module");
-MODULE_LICENSE("GPL");
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02002-i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02002-i2c-core.c
deleted file mode 100644
index 1acca5ab..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02002-i2c-core.c
+++ /dev/null
@@ -1,1457 +0,0 @@
-/* i2c-core.c - a device driver for the iic-bus interface */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-99 Simon G. Vogl
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
- * All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
- * SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/i2c.h>
-#include <linux/init.h>
-#include <linux/idr.h>
-#include <linux/seq_file.h>
-#include <asm/uaccess.h>
-
-
-static LIST_HEAD(adapters);
-static LIST_HEAD(drivers);
-static DECLARE_MUTEX(core_lists);
-static DEFINE_IDR(i2c_adapter_idr);
-
-static int i2c_device_match(struct device *dev, struct device_driver *drv)
-{
- return(1);
-}
-
-static int i2c_bus_suspend(struct device *dev, pm_message_t state)
-{
- int rc = 0;
-
- if (dev->driver && dev->driver->suspend)
- {
- rc = dev->driver->suspend(dev, state, 0);
- }
- return(rc);
-}
-
-static int i2c_bus_resume(struct device *dev)
-{
- int rc = 0;
-
- if (dev->driver && dev->driver->resume)
- {
- rc = dev->driver->resume(dev, 0);
- }
- return(rc);
-}
-
-struct bus_type i2c_bus_type =
-{
- .name = "i2c",
- .match = i2c_device_match,
- .suspend = i2c_bus_suspend,
- .resume = i2c_bus_resume,
-};
-
-static int i2c_device_probe(struct device *dev)
-{
- return(-ENODEV);
-}
-
-static int i2c_device_remove(struct device *dev)
-{
- return(0);
-}
-
-void i2c_adapter_dev_release(struct device *dev)
-{
- struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
-
- complete(&adap->dev_released);
-}
-
-struct device_driver i2c_adapter_driver =
-{
- .name = "i2c_adapter",
- .bus = &i2c_bus_type,
- .probe = i2c_device_probe,
- .remove = i2c_device_remove,
-};
-
-static void i2c_adapter_class_dev_release(struct class_device *dev)
-{
- struct i2c_adapter *adap = class_dev_to_i2c_adapter(dev);
-
- complete(&adap->class_dev_released);
-}
-
-struct class i2c_adapter_class =
-{
- .name = "i2c-adapter",
- .release = &i2c_adapter_class_dev_release,
-};
-
-static ssize_t show_adapter_name(struct device *dev, struct device_attribute *attr, char *buf)
-{
- struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
-
- return(sprintf(buf, "%s\n", adap->name));
-}
-static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL);
-
-
-static void i2c_client_release(struct device *dev)
-{
- struct i2c_client *client = to_i2c_client(dev);
-
- complete(&client->released);
-}
-
-static ssize_t show_client_name(struct device *dev, struct device_attribute *attr, char *buf)
-{
- struct i2c_client *client = to_i2c_client(dev);
-
- return(sprintf(buf, "%s\n", client->name));
-}
-
-/*
- * We can't use the DEVICE_ATTR() macro here as we want the same filename for a
- * different type of a device. So beware if the DEVICE_ATTR() macro ever
- * changes, this definition will also have to change.
- */
-static struct device_attribute dev_attr_client_name =
-{
- .attr = { .name = "name", .mode = S_IRUGO, .owner = THIS_MODULE },
- .show = &show_client_name,
-};
-
-
-/* ---------------------------------------------------
- * registering functions
- * ---------------------------------------------------
- */
-
-/* -----
- * i2c_add_adapter is called from within the algorithm layer,
- * when a new hw adapter registers. A new device is register to be
- * available for clients.
- */
-int i2c_add_adapter(struct i2c_adapter *adap)
-{
- int id, res = 0;
- struct list_head *item;
- struct i2c_driver *driver;
-
- down(&core_lists);
-
- if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0)
- {
- res = -ENOMEM;
- goto out_unlock;
- }
-
- res = idr_get_new(&i2c_adapter_idr, adap, &id);
- if (res < 0)
- {
- if (res == -EAGAIN)
- {
- res = -ENOMEM;
- }
- goto out_unlock;
- }
-
- adap->nr = id & MAX_ID_MASK;
- init_MUTEX(&adap->bus_lock);
- init_MUTEX(&adap->clist_lock);
- list_add_tail(&adap->list, &adapters);
- INIT_LIST_HEAD(&adap->clients);
-
- /* Add the adapter to the driver core.
- * If the parent pointer is not set up,
- * we add this adapter to the host bus.
- */
- if (adap->dev.parent == NULL)
- {
- adap->dev.parent = &platform_bus;
- }
- sprintf(adap->dev.bus_id, "i2c-%d", adap->nr);
- adap->dev.driver = &i2c_adapter_driver;
- adap->dev.release = &i2c_adapter_dev_release;
- device_register(&adap->dev);
- device_create_file(&adap->dev, &dev_attr_name);
-
- /* Add this adapter to the i2c_adapter class */
- memset(&adap->class_dev, 0x00, sizeof(struct class_device));
- adap->class_dev.dev = &adap->dev;
- adap->class_dev.class = &i2c_adapter_class;
- strlcpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
- class_device_register(&adap->class_dev);
-
- dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
-
- /* inform drivers of new adapters */
- list_for_each(item, &drivers)
- {
- driver = list_entry(item, struct i2c_driver, list);
- if (driver->flags & I2C_DF_NOTIFY)
- {
- /* We ignore the return code; if it fails, too bad */
- driver->attach_adapter(adap);
- }
- }
-
- out_unlock:
- up(&core_lists);
- return(res);
-} /* i2c_add_adapter */
-
-
-int i2c_del_adapter(struct i2c_adapter *adap)
-{
- struct list_head *item, *_n;
- struct i2c_adapter *adap_from_list;
- struct i2c_driver *driver;
- struct i2c_client *client;
- int res = 0;
-
- down(&core_lists);
-
- /* First make sure that this adapter was ever added */
- list_for_each_entry(adap_from_list, &adapters, list)
- {
- if (adap_from_list == adap)
- {
- break;
- }
- }
- if (adap_from_list != adap)
- {
- pr_debug("i2c-core: attempting to delete unregistered "
- "adapter [%s]\n", adap->name);
- res = -EINVAL;
- goto out_unlock;
- }
-
- list_for_each(item, &drivers)
- {
- driver = list_entry(item, struct i2c_driver, list);
- if (driver->detach_adapter)
- {
- if ((res = driver->detach_adapter(adap)))
- {
- dev_err(&adap->dev, "detach_adapter failed "
- "for driver [%s]\n", driver->name);
- goto out_unlock;
- }
- }
- }
-
- /* detach any active clients. This must be done first, because
- * it can fail; in which case we give up. */
- list_for_each_safe(item, _n, &adap->clients)
- {
- client = list_entry(item, struct i2c_client, list);
-
- /* detaching devices is unconditional of the set notify
- * flag, as _all_ clients that reside on the adapter
- * must be deleted, as this would cause invalid states.
- */
- if ((res = client->driver->detach_client(client)))
- {
- dev_err(&adap->dev, "detach_client failed for client "
- "[%s] at address 0x%02x\n", client->name,
- client->addr);
- goto out_unlock;
- }
- }
-
- /* clean up the sysfs representation */
- init_completion(&adap->dev_released);
- init_completion(&adap->class_dev_released);
- class_device_unregister(&adap->class_dev);
- device_remove_file(&adap->dev, &dev_attr_name);
- device_unregister(&adap->dev);
- list_del(&adap->list);
-
- /* wait for sysfs to drop all references */
- wait_for_completion(&adap->dev_released);
- wait_for_completion(&adap->class_dev_released);
-
- /* free dynamically allocated bus id */
- idr_remove(&i2c_adapter_idr, adap->nr);
-
- dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name);
-
- out_unlock:
- up(&core_lists);
- return(res);
-} /* i2c_del_adapter */
-
-
-/* -----
- * What follows is the "upwards" interface: commands for talking to clients,
- * which implement the functions to access the physical information of the
- * chips.
- */
-
-int i2c_add_driver(struct i2c_driver *driver)
-{
- struct list_head *item;
- struct i2c_adapter *adapter;
- int res = 0;
-
- down(&core_lists);
-
- /* add the driver to the list of i2c drivers in the driver core */
- driver->driver.name = driver->name;
- driver->driver.bus = &i2c_bus_type;
- driver->driver.probe = i2c_device_probe;
- driver->driver.remove = i2c_device_remove;
-
- res = driver_register(&driver->driver);
- if (res)
- {
- goto out_unlock;
- }
-
- list_add_tail(&driver->list, &drivers);
- pr_debug("i2c-core: driver [%s] registered\n", driver->name);
-
- /* now look for instances of driver on our adapters */
- if (driver->flags & I2C_DF_NOTIFY)
- {
- list_for_each(item, &adapters)
- {
- adapter = list_entry(item, struct i2c_adapter, list);
- driver->attach_adapter(adapter);
- }
- }
-
- out_unlock:
- up(&core_lists);
- return(res);
-}
-
-int i2c_del_driver(struct i2c_driver *driver)
-{
- struct list_head *item1, *item2, *_n;
- struct i2c_client *client;
- struct i2c_adapter *adap;
-
- int res = 0;
-
- down(&core_lists);
-
- /* Have a look at each adapter, if clients of this driver are still
- * attached. If so, detach them to be able to kill the driver
- * afterwards.
- *
- * Removing clients does not depend on the notify flag, else
- * invalid operation might (will!) result, when using stale client
- * pointers.
- */
- list_for_each(item1, &adapters)
- {
- adap = list_entry(item1, struct i2c_adapter, list);
- if (driver->detach_adapter)
- {
- if ((res = driver->detach_adapter(adap)))
- {
- dev_err(&adap->dev, "detach_adapter failed "
- "for driver [%s]\n", driver->name);
- goto out_unlock;
- }
- }
- else
- {
- list_for_each_safe(item2, _n, &adap->clients)
- {
- client = list_entry(item2, struct i2c_client, list);
- if (client->driver != driver)
- {
- continue;
- }
- dev_dbg(&adap->dev, "detaching client [%s] "
- "at 0x%02x\n", client->name,
- client->addr);
- if ((res = driver->detach_client(client)))
- {
- dev_err(&adap->dev, "detach_client "
- "failed for client [%s] at "
- "0x%02x\n", client->name,
- client->addr);
- goto out_unlock;
- }
- }
- }
- }
-
- driver_unregister(&driver->driver);
- list_del(&driver->list);
- pr_debug("i2c-core: driver [%s] unregistered\n", driver->name);
-
- out_unlock:
- up(&core_lists);
- return(0);
-} /* i2c_del_driver */
-
-static int __i2c_check_addr(struct i2c_adapter *adapter, unsigned int addr)
-{
- struct list_head *item;
- struct i2c_client *client;
-
- list_for_each(item, &adapter->clients)
- {
- client = list_entry(item, struct i2c_client, list);
- if (client->addr == addr)
- {
- return(-EBUSY);
- }
- }
- return(0);
-}
-
-int i2c_check_addr(struct i2c_adapter *adapter, int addr)
-{
- int rval;
-
- down(&adapter->clist_lock);
- rval = __i2c_check_addr(adapter, addr);
- up(&adapter->clist_lock);
-
- return(rval);
-}
-
-int i2c_attach_client(struct i2c_client *client)
-{
- struct i2c_adapter *adapter = client->adapter;
-
- down(&adapter->clist_lock);
- if (__i2c_check_addr(client->adapter, client->addr))
- {
- up(&adapter->clist_lock);
- return(-EBUSY);
- }
- list_add_tail(&client->list, &adapter->clients);
- up(&adapter->clist_lock);
-
- if (adapter->client_register)
- {
- if (adapter->client_register(client))
- {
- dev_dbg(&adapter->dev, "client_register "
- "failed for client [%s] at 0x%02x\n",
- client->name, client->addr);
- }
- }
-
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- client->usage_count = 0;
- }
-
- client->dev.parent = &client->adapter->dev;
- client->dev.driver = &client->driver->driver;
- client->dev.bus = &i2c_bus_type;
- client->dev.release = &i2c_client_release;
-
- snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),
- "%d-%04x", i2c_adapter_id(adapter), client->addr);
- dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n",
- client->name, client->dev.bus_id);
- device_register(&client->dev);
- device_create_file(&client->dev, &dev_attr_client_name);
-
- return(0);
-} /* i2c_attach_client */
-
-
-int i2c_detach_client(struct i2c_client *client)
-{
- struct i2c_adapter *adapter = client->adapter;
- int res = 0;
-
- if ((client->flags & I2C_CLIENT_ALLOW_USE)
- && (client->usage_count > 0))
- {
- dev_warn(&client->dev, "Client [%s] still busy, "
- "can't detach\n", client->name);
- return(-EBUSY);
- }
-
- if (adapter->client_unregister)
- {
- res = adapter->client_unregister(client);
- if (res)
- {
- dev_err(&client->dev,
- "client_unregister [%s] failed, "
- "client not detached\n", client->name);
- goto out;
- }
- }
-
- down(&adapter->clist_lock);
- list_del(&client->list);
- init_completion(&client->released);
- device_remove_file(&client->dev, &dev_attr_client_name);
- device_unregister(&client->dev);
- up(&adapter->clist_lock);
- wait_for_completion(&client->released);
-
- out:
- return(res);
-}
-
-static int i2c_inc_use_client(struct i2c_client *client)
-{
- if (!try_module_get(client->driver->owner))
- {
- return(-ENODEV);
- }
- if (!try_module_get(client->adapter->owner))
- {
- module_put(client->driver->owner);
- return(-ENODEV);
- }
-
- return(0);
-}
-
-static void i2c_dec_use_client(struct i2c_client *client)
-{
- module_put(client->driver->owner);
- module_put(client->adapter->owner);
-}
-
-int i2c_use_client(struct i2c_client *client)
-{
- int ret;
-
- ret = i2c_inc_use_client(client);
- if (ret)
- {
- return(ret);
- }
-
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- if (client->flags & I2C_CLIENT_ALLOW_MULTIPLE_USE)
- {
- client->usage_count++;
- }
- else if (client->usage_count > 0)
- {
- goto busy;
- }
- else
- {
- client->usage_count++;
- }
- }
-
- return(0);
-
- busy:
- i2c_dec_use_client(client);
- return(-EBUSY);
-}
-
-int i2c_release_client(struct i2c_client *client)
-{
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- if (client->usage_count > 0)
- {
- client->usage_count--;
- }
- else
- {
- pr_debug("i2c-core: %s used one too many times\n",
- __FUNCTION__);
- return(-EPERM);
- }
- }
-
- i2c_dec_use_client(client);
-
- return(0);
-}
-
-void i2c_clients_command(struct i2c_adapter *adap, unsigned int cmd, void *arg)
-{
- struct list_head *item;
- struct i2c_client *client;
-
- down(&adap->clist_lock);
- list_for_each(item, &adap->clients)
- {
- client = list_entry(item, struct i2c_client, list);
- if (!try_module_get(client->driver->owner))
- {
- continue;
- }
- if (NULL != client->driver->command)
- {
- up(&adap->clist_lock);
- client->driver->command(client, cmd, arg);
- down(&adap->clist_lock);
- }
- module_put(client->driver->owner);
- }
- up(&adap->clist_lock);
-}
-
-static int __init i2c_init(void)
-{
- int retval;
-
- retval = bus_register(&i2c_bus_type);
- if (retval)
- {
- return(retval);
- }
- retval = driver_register(&i2c_adapter_driver);
- if (retval)
- {
- return(retval);
- }
- return(class_register(&i2c_adapter_class));
-}
-
-static void __exit i2c_exit(void)
-{
- class_unregister(&i2c_adapter_class);
- driver_unregister(&i2c_adapter_driver);
- bus_unregister(&i2c_bus_type);
-}
-
-subsys_initcall(i2c_init);
-module_exit(i2c_exit);
-
-/* ----------------------------------------------------
- * the functional interface to the i2c busses.
- * ----------------------------------------------------
- */
-
-int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
-{
- int ret;
-
- if (adap->algo->master_xfer)
- {
-#ifdef DEBUG
- for (ret = 0; ret < num; ret++)
- {
- dev_dbg(&adap->dev, "master_xfer[%d] %c, addr=0x%02x, "
- "len=%d\n", ret, msgs[ret].flags & I2C_M_RD ?
- 'R' : 'W', msgs[ret].addr, msgs[ret].len);
- }
-#endif
-
- down(&adap->bus_lock);
- ret = adap->algo->master_xfer(adap, msgs, num);
- up(&adap->bus_lock);
-
- return(ret);
- }
- else
- {
- dev_dbg(&adap->dev, "I2C level transfers not supported\n");
- return(-ENOSYS);
- }
-}
-
-int i2c_master_send(struct i2c_client *client, const char *buf, int count)
-{
- int ret;
- struct i2c_adapter *adap = client->adapter;
- struct i2c_msg msg;
-
- msg.addr = client->addr;
- msg.flags = client->flags & I2C_M_TEN;
- msg.len = count;
- msg.buf = (char *)buf;
-
- ret = i2c_transfer(adap, &msg, 1);
-
- /* If everything went ok (i.e. 1 msg transmitted), return #bytes
- * transmitted, else error code. */
- return((ret == 1) ? count : ret);
-}
-
-int i2c_master_recv(struct i2c_client *client, char *buf, int count)
-{
- struct i2c_adapter *adap = client->adapter;
- struct i2c_msg msg;
- int ret;
-
- msg.addr = client->addr;
- msg.flags = client->flags & I2C_M_TEN;
- msg.flags |= I2C_M_RD;
- msg.len = count;
- msg.buf = buf;
-
- ret = i2c_transfer(adap, &msg, 1);
-
- /* If everything went ok (i.e. 1 msg transmitted), return #bytes
- * transmitted, else error code. */
- return((ret == 1) ? count : ret);
-}
-
-
-int i2c_control(struct i2c_client *client,
- unsigned int cmd, unsigned long arg)
-{
- int ret = 0;
- struct i2c_adapter *adap = client->adapter;
-
- dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
- switch (cmd)
- {
- case I2C_RETRIES:
- adap->retries = arg;
- break;
-
- case I2C_TIMEOUT:
- adap->timeout = arg;
- break;
-
- default:
- if (adap->algo->algo_control != NULL)
- {
- ret = adap->algo->algo_control(adap, cmd, arg);
- }
- }
- return(ret);
-}
-
-/* ----------------------------------------------------
- * the i2c address scanning function
- * Will not work for 10-bit addresses!
- * ----------------------------------------------------
- */
-static int i2c_probe_address(struct i2c_adapter *adapter, int addr, int kind,
- int (*found_proc)(struct i2c_adapter *, int, int))
-{
- int err;
-
- /* Make sure the address is valid */
- if (addr < 0x03 || addr > 0x77)
- {
- dev_warn(&adapter->dev, "Invalid probe address 0x%02x\n",
- addr);
- return(-EINVAL);
- }
-
- /* Skip if already in use */
- if (i2c_check_addr(adapter, addr))
- {
- return(0);
- }
-
- /* Make sure there is something at this address, unless forced */
- if (kind < 0)
- {
- if (i2c_smbus_xfer(adapter, addr, 0, 0, 0,
- I2C_SMBUS_QUICK, NULL) < 0)
- {
- return(0);
- }
-
- /* prevent 24RF08 corruption */
- if ((addr & ~0x0f) == 0x50)
- {
- i2c_smbus_xfer(adapter, addr, 0, 0, 0,
- I2C_SMBUS_QUICK, NULL);
- }
- }
-
- /* Finally call the custom detection function */
- err = found_proc(adapter, addr, kind);
-
- /* -ENODEV can be returned if there is a chip at the given address
- * but it isn't supported by this chip driver. We catch it here as
- * this isn't an error. */
- return((err == -ENODEV) ? 0 : err);
-}
-
-int i2c_probe(struct i2c_adapter *adapter,
- struct i2c_client_address_data *address_data,
- int (*found_proc)(struct i2c_adapter *, int, int))
-{
- int i, err;
- int adap_id = i2c_adapter_id(adapter);
-
- /* Forget it if we can't probe using SMBUS_QUICK */
- if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK))
- {
- return(-1);
- }
-
- /* Force entries are done first, and are not affected by ignore
- * entries */
- if (address_data->forces)
- {
- unsigned short **forces = address_data->forces;
- int kind;
-
- for (kind = 0; forces[kind]; kind++)
- {
- for (i = 0; forces[kind][i] != I2C_CLIENT_END;
- i += 2)
- {
- if (forces[kind][i] == adap_id
- || forces[kind][i] == ANY_I2C_BUS)
- {
- dev_dbg(&adapter->dev, "found force "
- "parameter for adapter %d, "
- "addr 0x%02x, kind %d\n",
- adap_id, forces[kind][i + 1],
- kind);
- err = i2c_probe_address(adapter,
- forces[kind][i + 1],
- kind, found_proc);
- if (err)
- {
- return(err);
- }
- }
- }
- }
- }
-
- /* Probe entries are done second, and are not affected by ignore
- * entries either */
- for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2)
- {
- if (address_data->probe[i] == adap_id
- || address_data->probe[i] == ANY_I2C_BUS)
- {
- dev_dbg(&adapter->dev, "found probe parameter for "
- "adapter %d, addr 0x%02x\n", adap_id,
- address_data->probe[i + 1]);
- err = i2c_probe_address(adapter,
- address_data->probe[i + 1],
- -1, found_proc);
- if (err)
- {
- return(err);
- }
- }
- }
-
- /* Normal entries are done last, unless shadowed by an ignore entry */
- for (i = 0; address_data->normal_i2c[i] != I2C_CLIENT_END; i += 1)
- {
- int j, ignore;
-
- ignore = 0;
- for (j = 0; address_data->ignore[j] != I2C_CLIENT_END;
- j += 2)
- {
- if ((address_data->ignore[j] == adap_id ||
- address_data->ignore[j] == ANY_I2C_BUS)
- && address_data->ignore[j + 1]
- == address_data->normal_i2c[i])
- {
- dev_dbg(&adapter->dev, "found ignore "
- "parameter for adapter %d, "
- "addr 0x%02x\n", adap_id,
- address_data->ignore[j + 1]);
- }
- ignore = 1;
- break;
- }
- if (ignore)
- {
- continue;
- }
-
- dev_dbg(&adapter->dev, "found normal entry for adapter %d, "
- "addr 0x%02x\n", adap_id,
- address_data->normal_i2c[i]);
- err = i2c_probe_address(adapter, address_data->normal_i2c[i],
- -1, found_proc);
- if (err)
- {
- return(err);
- }
- }
-
- return(0);
-} /* i2c_probe */
-
-struct i2c_adapter *i2c_get_adapter(int id)
-{
- struct i2c_adapter *adapter;
-
- down(&core_lists);
- adapter = (struct i2c_adapter *)idr_find(&i2c_adapter_idr, id);
- if (adapter && !try_module_get(adapter->owner))
- {
- adapter = NULL;
- }
-
- up(&core_lists);
- return(adapter);
-}
-
-void i2c_put_adapter(struct i2c_adapter *adap)
-{
- module_put(adap->owner);
-}
-
-/* The SMBus parts */
-
-#define POLY (0x1070U << 3)
-static u8
-crc8(u16 data)
-{
- int i;
-
- for (i = 0; i < 8; i++)
- {
- if (data & 0x8000)
- {
- data = data ^ POLY;
- }
- data = data << 1;
- }
- return((u8)(data >> 8));
-}
-
-/* CRC over count bytes in the first array plus the bytes in the rest
- * array if it is non-null. rest[0] is the (length of rest) - 1
- * and is included. */
-static u8 i2c_smbus_partial_pec(u8 crc, int count, u8 *first, u8 *rest)
-{
- int i;
-
- for (i = 0; i < count; i++)
- {
- crc = crc8((crc ^ first[i]) << 8);
- }
- if (rest != NULL)
- {
- for (i = 0; i <= rest[0]; i++)
- {
- crc = crc8((crc ^ rest[i]) << 8);
- }
- }
- return(crc);
-}
-
-static u8 i2c_smbus_pec(int count, u8 *first, u8 *rest)
-{
- return(i2c_smbus_partial_pec(0, count, first, rest));
-}
-
-/* Returns new "size" (transaction type)
- * Note that we convert byte to byte_data and byte_data to word_data
- * rather than invent new xxx_PEC transactions. */
-static int i2c_smbus_add_pec(u16 addr, u8 command, int size,
- union i2c_smbus_data *data)
-{
- u8 buf[3];
-
- buf[0] = addr << 1;
- buf[1] = command;
- switch (size)
- {
- case I2C_SMBUS_BYTE:
- data->byte = i2c_smbus_pec(2, buf, NULL);
- size = I2C_SMBUS_BYTE_DATA;
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- buf[2] = data->byte;
- data->word = buf[2] ||
- (i2c_smbus_pec(3, buf, NULL) << 8);
- size = I2C_SMBUS_WORD_DATA;
- break;
-
- case I2C_SMBUS_WORD_DATA:
- /* unsupported */
- break;
-
- case I2C_SMBUS_BLOCK_DATA:
- data->block[data->block[0] + 1] =
- i2c_smbus_pec(2, buf, data->block);
- size = I2C_SMBUS_BLOCK_DATA_PEC;
- break;
- }
- return(size);
-}
-
-static int i2c_smbus_check_pec(u16 addr, u8 command, int size, u8 partial,
- union i2c_smbus_data *data)
-{
- u8 buf[3], rpec, cpec;
-
- buf[1] = command;
- switch (size)
- {
- case I2C_SMBUS_BYTE_DATA:
- buf[0] = (addr << 1) | 1;
- cpec = i2c_smbus_pec(2, buf, NULL);
- rpec = data->byte;
- break;
-
- case I2C_SMBUS_WORD_DATA:
- buf[0] = (addr << 1) | 1;
- buf[2] = data->word & 0xff;
- cpec = i2c_smbus_pec(3, buf, NULL);
- rpec = data->word >> 8;
- break;
-
- case I2C_SMBUS_WORD_DATA_PEC:
- /* unsupported */
- cpec = rpec = 0;
- break;
-
- case I2C_SMBUS_PROC_CALL_PEC:
- /* unsupported */
- cpec = rpec = 0;
- break;
-
- case I2C_SMBUS_BLOCK_DATA_PEC:
- buf[0] = (addr << 1);
- buf[2] = (addr << 1) | 1;
- cpec = i2c_smbus_pec(3, buf, data->block);
- rpec = data->block[data->block[0] + 1];
- break;
-
- case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
- buf[0] = (addr << 1) | 1;
- rpec = i2c_smbus_partial_pec(partial, 1,
- buf, data->block);
- cpec = data->block[data->block[0] + 1];
- break;
-
- default:
- cpec = rpec = 0;
- break;
- } /* switch */
- if (rpec != cpec)
- {
- pr_debug("i2c-core: Bad PEC 0x%02x vs. 0x%02x\n",
- rpec, cpec);
- return(-1);
- }
- return(0);
-} /* i2c_smbus_check_pec */
-
-s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value)
-{
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- value, 0, I2C_SMBUS_QUICK, NULL));
-}
-
-s32 i2c_smbus_read_byte(struct i2c_client *client)
-{
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, 0, I2C_SMBUS_BYTE, &data))
- {
- return(-1);
- }
- else
- {
- return(0x0FF & data.byte);
- }
-}
-
-s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value)
-{
- union i2c_smbus_data data; /* only for PEC */
-
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, &data));
-}
-
-s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command)
-{
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command, I2C_SMBUS_BYTE_DATA, &data))
- {
- return(-1);
- }
- else
- {
- return(0x0FF & data.byte);
- }
-}
-
-s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value)
-{
- union i2c_smbus_data data;
-
- data.byte = value;
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_BYTE_DATA, &data));
-}
-
-s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command)
-{
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command, I2C_SMBUS_WORD_DATA, &data))
- {
- return(-1);
- }
- else
- {
- return(0x0FFFF & data.word);
- }
-}
-
-s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value)
-{
- union i2c_smbus_data data;
-
- data.word = value;
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_WORD_DATA, &data));
-}
-
-s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command,
- u8 length, u8 *values)
-{
- union i2c_smbus_data data;
- int i;
-
- if (length > I2C_SMBUS_BLOCK_MAX)
- {
- length = I2C_SMBUS_BLOCK_MAX;
- }
- for (i = 1; i <= length; i++)
- {
- data.block[i] = values[i - 1];
- }
- data.block[0] = length;
- return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_BLOCK_DATA, &data));
-}
-
-/* Returns the number of read bytes */
-s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, u8 *values)
-{
- union i2c_smbus_data data;
- int i;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command,
- I2C_SMBUS_I2C_BLOCK_DATA, &data))
- {
- return(-1);
- }
- else
- {
- for (i = 1; i <= data.block[0]; i++)
- {
- values[i - 1] = data.block[i];
- }
- return(data.block[0]);
- }
-}
-
-/* Simulate a SMBus command using the i2c protocol
- * No checking of parameters is done! */
-static s32 i2c_smbus_xfer_emulated(struct i2c_adapter *adapter, u16 addr,
- unsigned short flags,
- char read_write, u8 command, int size,
- union i2c_smbus_data *data)
-{
- /* So we need to generate a series of msgs. In the case of writing, we
- * need to use only one message; when reading, we need two. We initialize
- * most things with sane defaults, to keep the code below somewhat
- * simpler. */
- unsigned char msgbuf0[34];
- unsigned char msgbuf1[34];
- int num = read_write == I2C_SMBUS_READ ? 2 : 1;
- struct i2c_msg msg[2] = { { addr, flags, 1, msgbuf0 },
- { addr, flags | I2C_M_RD, 0, msgbuf1 } };
- int i;
-
- msgbuf0[0] = command;
- switch (size)
- {
- case I2C_SMBUS_QUICK:
- msg[0].len = 0;
- /* Special case: The read/write field is used as data */
- msg[0].flags = flags | (read_write == I2C_SMBUS_READ) ? I2C_M_RD : 0;
- num = 1;
- break;
-
- case I2C_SMBUS_BYTE:
- if (read_write == I2C_SMBUS_READ)
- {
- /* Special case: only a read! */
- msg[0].flags = I2C_M_RD | flags;
- num = 1;
- }
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- if (read_write == I2C_SMBUS_READ)
- {
- msg[1].len = 1;
- }
- else
- {
- msg[0].len = 2;
- msgbuf0[1] = data->byte;
- }
- break;
-
- case I2C_SMBUS_WORD_DATA:
- if (read_write == I2C_SMBUS_READ)
- {
- msg[1].len = 2;
- }
- else
- {
- msg[0].len = 3;
- msgbuf0[1] = data->word & 0xff;
- msgbuf0[2] = (data->word >> 8) & 0xff;
- }
- break;
-
- case I2C_SMBUS_PROC_CALL:
- num = 2; /* Special case */
- read_write = I2C_SMBUS_READ;
- msg[0].len = 3;
- msg[1].len = 2;
- msgbuf0[1] = data->word & 0xff;
- msgbuf0[2] = (data->word >> 8) & 0xff;
- break;
-
- case I2C_SMBUS_BLOCK_DATA:
- case I2C_SMBUS_BLOCK_DATA_PEC:
- if (read_write == I2C_SMBUS_READ)
- {
- dev_err(&adapter->dev, "Block read not supported "
- "under I2C emulation!\n");
- return(-1);
- }
- else
- {
- msg[0].len = data->block[0] + 2;
- if (msg[0].len > I2C_SMBUS_BLOCK_MAX + 2)
- {
- dev_err(&adapter->dev, "smbus_access called with "
- "invalid block write size (%d)\n",
- data->block[0]);
- return(-1);
- }
- if (size == I2C_SMBUS_BLOCK_DATA_PEC)
- {
- (msg[0].len)++;
- }
- for (i = 1; i <= msg[0].len; i++)
- {
- msgbuf0[i] = data->block[i - 1];
- }
- }
- break;
-
- case I2C_SMBUS_BLOCK_PROC_CALL:
- case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
- dev_dbg(&adapter->dev, "Block process call not supported "
- "under I2C emulation!\n");
- return(-1);
-
- case I2C_SMBUS_I2C_BLOCK_DATA:
- if (read_write == I2C_SMBUS_READ)
- {
- msg[1].len = I2C_SMBUS_I2C_BLOCK_MAX;
- }
- else
- {
- msg[0].len = data->block[0] + 1;
- if (msg[0].len > I2C_SMBUS_I2C_BLOCK_MAX + 1)
- {
- dev_err(&adapter->dev, "i2c_smbus_xfer_emulated called with "
- "invalid block write size (%d)\n",
- data->block[0]);
- return(-1);
- }
- for (i = 1; i <= data->block[0]; i++)
- {
- msgbuf0[i] = data->block[i];
- }
- }
- break;
-
- default:
- dev_err(&adapter->dev, "smbus_access called with invalid size (%d)\n",
- size);
- return(-1);
- } /* switch */
-
- if (i2c_transfer(adapter, msg, num) < 0)
- {
- return(-1);
- }
-
- if (read_write == I2C_SMBUS_READ)
- {
- switch (size)
- {
- case I2C_SMBUS_BYTE:
- data->byte = msgbuf0[0];
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- data->byte = msgbuf1[0];
- break;
-
- case I2C_SMBUS_WORD_DATA:
- case I2C_SMBUS_PROC_CALL:
- data->word = msgbuf1[0] | (msgbuf1[1] << 8);
- break;
-
- case I2C_SMBUS_I2C_BLOCK_DATA:
- /* fixed at 32 for now */
- data->block[0] = I2C_SMBUS_I2C_BLOCK_MAX;
- for (i = 0; i < I2C_SMBUS_I2C_BLOCK_MAX; i++)
- {
- data->block[i + 1] = msgbuf1[i];
- }
- break;
- }
- }
- return(0);
-} /* i2c_smbus_xfer_emulated */
-
-
-s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, unsigned short flags,
- char read_write, u8 command, int size,
- union i2c_smbus_data *data)
-{
- s32 res;
- int swpec = 0;
- u8 partial = 0;
-
- flags &= I2C_M_TEN | I2C_CLIENT_PEC;
- if ((flags & I2C_CLIENT_PEC) &&
- !(i2c_check_functionality(adapter, I2C_FUNC_SMBUS_HWPEC_CALC)))
- {
- swpec = 1;
- if (read_write == I2C_SMBUS_READ &&
- size == I2C_SMBUS_BLOCK_DATA)
- {
- size = I2C_SMBUS_BLOCK_DATA_PEC;
- }
- else if (size == I2C_SMBUS_PROC_CALL)
- {
- size = I2C_SMBUS_PROC_CALL_PEC;
- }
- else if (size == I2C_SMBUS_BLOCK_PROC_CALL)
- {
- i2c_smbus_add_pec(addr, command,
- I2C_SMBUS_BLOCK_DATA, data);
- partial = data->block[data->block[0] + 1];
- size = I2C_SMBUS_BLOCK_PROC_CALL_PEC;
- }
- else if (read_write == I2C_SMBUS_WRITE &&
- size != I2C_SMBUS_QUICK &&
- size != I2C_SMBUS_I2C_BLOCK_DATA)
- {
- size = i2c_smbus_add_pec(addr, command, size, data);
- }
- }
-
- if (adapter->algo->smbus_xfer)
- {
- down(&adapter->bus_lock);
- res = adapter->algo->smbus_xfer(adapter, addr, flags, read_write,
- command, size, data);
- up(&adapter->bus_lock);
- }
- else
- {
- res = i2c_smbus_xfer_emulated(adapter, addr, flags, read_write,
- command, size, data);
- }
-
- if (res >= 0 && swpec &&
- size != I2C_SMBUS_QUICK && size != I2C_SMBUS_I2C_BLOCK_DATA &&
- (read_write == I2C_SMBUS_READ || size == I2C_SMBUS_PROC_CALL_PEC ||
- size == I2C_SMBUS_BLOCK_PROC_CALL_PEC))
- {
- if (i2c_smbus_check_pec(addr, command, size, partial, data))
- {
- return(-1);
- }
- }
- return(res);
-} /* i2c_smbus_xfer */
-
-
-/* Next four are needed by i2c-isa */
-EXPORT_SYMBOL_GPL(i2c_adapter_dev_release);
-EXPORT_SYMBOL_GPL(i2c_adapter_driver);
-EXPORT_SYMBOL_GPL(i2c_adapter_class);
-EXPORT_SYMBOL_GPL(i2c_bus_type);
-
-EXPORT_SYMBOL(i2c_add_adapter);
-EXPORT_SYMBOL(i2c_del_adapter);
-EXPORT_SYMBOL(i2c_add_driver);
-EXPORT_SYMBOL(i2c_del_driver);
-EXPORT_SYMBOL(i2c_attach_client);
-EXPORT_SYMBOL(i2c_detach_client);
-EXPORT_SYMBOL(i2c_use_client);
-EXPORT_SYMBOL(i2c_release_client);
-EXPORT_SYMBOL(i2c_clients_command);
-EXPORT_SYMBOL(i2c_check_addr);
-
-EXPORT_SYMBOL(i2c_master_send);
-EXPORT_SYMBOL(i2c_master_recv);
-EXPORT_SYMBOL(i2c_control);
-EXPORT_SYMBOL(i2c_transfer);
-EXPORT_SYMBOL(i2c_get_adapter);
-EXPORT_SYMBOL(i2c_put_adapter);
-EXPORT_SYMBOL(i2c_probe);
-
-EXPORT_SYMBOL(i2c_smbus_xfer);
-EXPORT_SYMBOL(i2c_smbus_write_quick);
-EXPORT_SYMBOL(i2c_smbus_read_byte);
-EXPORT_SYMBOL(i2c_smbus_write_byte);
-EXPORT_SYMBOL(i2c_smbus_read_byte_data);
-EXPORT_SYMBOL(i2c_smbus_write_byte_data);
-EXPORT_SYMBOL(i2c_smbus_read_word_data);
-EXPORT_SYMBOL(i2c_smbus_write_word_data);
-EXPORT_SYMBOL(i2c_smbus_write_block_data);
-EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data);
-
-MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
-MODULE_DESCRIPTION("I2C-Bus main module");
-MODULE_LICENSE("GPL");
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02100-i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02100-i2c-core.c
deleted file mode 100644
index 899b0dd9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02100-i2c-core.c
+++ /dev/null
@@ -1,1393 +0,0 @@
-/* i2c-core.c - a device driver for the iic-bus interface */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-99 Simon G. Vogl
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
- All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
- SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <linux/i2c.h>
-#include <linux/init.h>
-#include <linux/idr.h>
-#include <linux/seq_file.h>
-#include <asm/uaccess.h>
-
-
-static LIST_HEAD(adapters);
-static LIST_HEAD(drivers);
-static DECLARE_MUTEX(core_lists);
-static DEFINE_IDR(i2c_adapter_idr);
-
-static int i2c_device_match(struct device *dev, struct device_driver *drv)
- {
- return 1;
- }
-
-static int i2c_bus_suspend(struct device * dev, pm_message_t state)
- {
- int rc = 0;
-
- if (dev->driver && dev->driver->suspend)
- rc = dev->driver->suspend(dev, state, 0);
-
- return rc;
- }
-
-static int i2c_bus_resume(struct device * dev)
- {
- int rc = 0;
-
- if (dev->driver && dev->driver->resume)
- rc = dev->driver->resume(dev, 0);
-
- return rc;
- }
-
-struct bus_type i2c_bus_type = {
- .name = "i2c",
- .match = i2c_device_match,
- .suspend = i2c_bus_suspend,
- .resume = i2c_bus_resume,
- };
-
-static int i2c_device_probe(struct device *dev)
- {
- return -ENODEV;
- }
-
-static int i2c_device_remove(struct device *dev)
- {
- return 0;
- }
-
-void i2c_adapter_dev_release(struct device *dev)
- {
- struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
-
- complete(&adap->dev_released);
- }
-
-struct device_driver i2c_adapter_driver = {
- .name = "i2c_adapter",
- .bus = &i2c_bus_type,
- .probe = i2c_device_probe,
- .remove = i2c_device_remove,
- };
-
-static void i2c_adapter_class_dev_release(struct class_device *dev)
- {
- struct i2c_adapter *adap = class_dev_to_i2c_adapter(dev);
-
- complete(&adap->class_dev_released);
- }
-
-struct class i2c_adapter_class = {
- .name = "i2c-adapter",
- .release = &i2c_adapter_class_dev_release,
- };
-
-static ssize_t show_adapter_name(struct device *dev, struct device_attribute *attr, char *buf)
- {
- struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
-
- return sprintf(buf, "%s\n", adap->name);
- }
-
-static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL);
-
-
-static void i2c_client_release(struct device *dev)
- {
- struct i2c_client *client = to_i2c_client(dev);
-
- complete(&client->released);
- }
-
-static ssize_t show_client_name(struct device *dev, struct device_attribute *attr, char *buf)
- {
- struct i2c_client *client = to_i2c_client(dev);
-
- return sprintf(buf, "%s\n", client->name);
- }
-
-/*
- * We can't use the DEVICE_ATTR() macro here as we want the same filename for a
- * different type of a device. So beware if the DEVICE_ATTR() macro ever
- * changes, this definition will also have to change.
- */
-static struct device_attribute dev_attr_client_name = {
- .attr = { .name = "name", .mode = S_IRUGO, .owner = THIS_MODULE },
- .show = &show_client_name,
- };
-
-
-/* ---------------------------------------------------
- * registering functions
- * ---------------------------------------------------
- */
-
-/* -----
- * i2c_add_adapter is called from within the algorithm layer,
- * when a new hw adapter registers. A new device is register to be
- * available for clients.
- */
-int i2c_add_adapter(struct i2c_adapter *adap)
- {
- int id, res = 0;
- struct list_head *item;
- struct i2c_driver *driver;
-
- down(&core_lists);
-
- if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0)
- {
- res = -ENOMEM;
- goto out_unlock;
- }
-
- res = idr_get_new(&i2c_adapter_idr, adap, &id);
-
- if (res < 0)
- {
- if (res == -EAGAIN)
- res = -ENOMEM;
-
- goto out_unlock;
- }
-
- adap->nr = id & MAX_ID_MASK;
- init_MUTEX(&adap->bus_lock);
- init_MUTEX(&adap->clist_lock);
- list_add_tail(&adap->list, &adapters);
- INIT_LIST_HEAD(&adap->clients);
-
- /* Add the adapter to the driver core.
- * If the parent pointer is not set up,
- * we add this adapter to the host bus.
- */
- if (adap->dev.parent == NULL)
- adap->dev.parent = &platform_bus;
-
- sprintf(adap->dev.bus_id, "i2c-%d", adap->nr);
- adap->dev.driver = &i2c_adapter_driver;
- adap->dev.release = &i2c_adapter_dev_release;
- device_register(&adap->dev);
- device_create_file(&adap->dev, &dev_attr_name);
-
- /* Add this adapter to the i2c_adapter class */
- memset(&adap->class_dev, 0x00, sizeof(struct class_device));
- adap->class_dev.dev = &adap->dev;
- adap->class_dev.class = &i2c_adapter_class;
- strlcpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
- class_device_register(&adap->class_dev);
-
- dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
-
- /* inform drivers of new adapters */
- list_for_each(item, &drivers) {
- driver = list_entry(item, struct i2c_driver, list);
-
- if (driver->flags & I2C_DF_NOTIFY)
- /* We ignore the return code; if it fails, too bad */
- driver->attach_adapter(adap);
- }
-
-out_unlock:
- up(&core_lists);
- return res;
- }
-
-int i2c_del_adapter(struct i2c_adapter *adap)
- {
- struct list_head *item, *_n;
- struct i2c_adapter *adap_from_list;
- struct i2c_driver *driver;
- struct i2c_client *client;
- int res = 0;
-
- down(&core_lists);
-
- /* First make sure that this adapter was ever added */
- list_for_each_entry(adap_from_list, &adapters, list) {
- if (adap_from_list == adap)
- break;
- }
-
- if (adap_from_list != adap)
- {
- pr_debug("i2c-core: attempting to delete unregistered "
- "adapter [%s]\n", adap->name);
- res = -EINVAL;
- goto out_unlock;
- }
-
- list_for_each(item, &drivers) {
- driver = list_entry(item, struct i2c_driver, list);
-
- if (driver->detach_adapter)
- if ((res = driver->detach_adapter(adap)))
- {
- dev_err(&adap->dev, "detach_adapter failed "
- "for driver [%s]\n", driver->name);
- goto out_unlock;
- }
- }
-
- /* detach any active clients. This must be done first, because
- * it can fail; in which case we give up. */
- list_for_each_safe(item, _n, &adap->clients) {
- client = list_entry(item, struct i2c_client, list);
-
- /* detaching devices is unconditional of the set notify
- * flag, as _all_ clients that reside on the adapter
- * must be deleted, as this would cause invalid states.
- */
- if ((res = client->driver->detach_client(client)))
- {
- dev_err(&adap->dev, "detach_client failed for client "
- "[%s] at address 0x%02x\n", client->name,
- client->addr);
- goto out_unlock;
- }
- }
-
- /* clean up the sysfs representation */
- init_completion(&adap->dev_released);
- init_completion(&adap->class_dev_released);
- class_device_unregister(&adap->class_dev);
- device_remove_file(&adap->dev, &dev_attr_name);
- device_unregister(&adap->dev);
- list_del(&adap->list);
-
- /* wait for sysfs to drop all references */
- wait_for_completion(&adap->dev_released);
- wait_for_completion(&adap->class_dev_released);
-
- /* free dynamically allocated bus id */
- idr_remove(&i2c_adapter_idr, adap->nr);
-
- dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name);
-
-out_unlock:
- up(&core_lists);
- return res;
- }
-
-/* -----
- * What follows is the "upwards" interface: commands for talking to clients,
- * which implement the functions to access the physical information of the
- * chips.
- */
-
-int i2c_add_driver(struct i2c_driver *driver)
- {
- struct list_head *item;
- struct i2c_adapter *adapter;
- int res = 0;
-
- down(&core_lists);
-
- /* add the driver to the list of i2c drivers in the driver core */
- driver->driver.name = driver->name;
- driver->driver.bus = &i2c_bus_type;
- driver->driver.probe = i2c_device_probe;
- driver->driver.remove = i2c_device_remove;
-
- res = driver_register(&driver->driver);
-
- if (res)
- goto out_unlock;
-
- list_add_tail(&driver->list, &drivers);
- pr_debug("i2c-core: driver [%s] registered\n", driver->name);
-
- /* now look for instances of driver on our adapters */
- if (driver->flags & I2C_DF_NOTIFY)
- {
- list_for_each(item, &adapters) {
- adapter = list_entry(item, struct i2c_adapter, list);
- driver->attach_adapter(adapter);
- }
- }
-
-out_unlock:
- up(&core_lists);
- return res;
- }
-
-int i2c_del_driver(struct i2c_driver *driver)
- {
- struct list_head *item1, *item2, *_n;
- struct i2c_client *client;
- struct i2c_adapter *adap;
-
- int res = 0;
-
- down(&core_lists);
-
- /* Have a look at each adapter, if clients of this driver are still
- * attached. If so, detach them to be able to kill the driver
- * afterwards.
- *
- * Removing clients does not depend on the notify flag, else
- * invalid operation might (will!) result, when using stale client
- * pointers.
- */
- list_for_each(item1, &adapters) {
- adap = list_entry(item1, struct i2c_adapter, list);
-
- if (driver->detach_adapter)
- {
- if ((res = driver->detach_adapter(adap)))
- {
- dev_err(&adap->dev, "detach_adapter failed "
- "for driver [%s]\n", driver->name);
- goto out_unlock;
- }
- }
- else
- {
- list_for_each_safe(item2, _n, &adap->clients) {
- client = list_entry(item2, struct i2c_client, list);
-
- if (client->driver != driver)
- continue;
-
- dev_dbg(&adap->dev, "detaching client [%s] "
- "at 0x%02x\n", client->name,
- client->addr);
-
- if ((res = driver->detach_client(client)))
- {
- dev_err(&adap->dev, "detach_client "
- "failed for client [%s] at "
- "0x%02x\n", client->name,
- client->addr);
- goto out_unlock;
- }
- }
- }
- }
-
- driver_unregister(&driver->driver);
- list_del(&driver->list);
- pr_debug("i2c-core: driver [%s] unregistered\n", driver->name);
-
-out_unlock:
- up(&core_lists);
- return 0;
- }
-
-static int __i2c_check_addr(struct i2c_adapter *adapter, unsigned int addr)
- {
- struct list_head *item;
- struct i2c_client *client;
-
- list_for_each(item, &adapter->clients) {
- client = list_entry(item, struct i2c_client, list);
-
- if (client->addr == addr)
- return -EBUSY;
- }
- return 0;
- }
-
-int i2c_check_addr(struct i2c_adapter *adapter, int addr)
- {
- int rval;
-
- down(&adapter->clist_lock);
- rval = __i2c_check_addr(adapter, addr);
- up(&adapter->clist_lock);
-
- return rval;
- }
-
-int i2c_attach_client(struct i2c_client *client)
- {
- struct i2c_adapter *adapter = client->adapter;
-
- down(&adapter->clist_lock);
-
- if (__i2c_check_addr(client->adapter, client->addr))
- {
- up(&adapter->clist_lock);
- return -EBUSY;
- }
-
- list_add_tail(&client->list, &adapter->clients);
- up(&adapter->clist_lock);
-
- if (adapter->client_register)
- {
- if (adapter->client_register(client))
- {
- dev_dbg(&adapter->dev, "client_register "
- "failed for client [%s] at 0x%02x\n",
- client->name, client->addr);
- }
- }
-
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- client->usage_count = 0;
-
- client->dev.parent = &client->adapter->dev;
- client->dev.driver = &client->driver->driver;
- client->dev.bus = &i2c_bus_type;
- client->dev.release = &i2c_client_release;
-
- snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),
- "%d-%04x", i2c_adapter_id(adapter), client->addr);
- dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n",
- client->name, client->dev.bus_id);
- device_register(&client->dev);
- device_create_file(&client->dev, &dev_attr_client_name);
-
- return 0;
- }
-
-int i2c_detach_client(struct i2c_client *client)
- {
- struct i2c_adapter *adapter = client->adapter;
- int res = 0;
-
- if ((client->flags & I2C_CLIENT_ALLOW_USE)
- && (client->usage_count > 0))
- {
- dev_warn(&client->dev, "Client [%s] still busy, "
- "can't detach\n", client->name);
- return -EBUSY;
- }
-
- if (adapter->client_unregister)
- {
- res = adapter->client_unregister(client);
-
- if (res)
- {
- dev_err(&client->dev,
- "client_unregister [%s] failed, "
- "client not detached\n", client->name);
- goto out;
- }
- }
-
- down(&adapter->clist_lock);
- list_del(&client->list);
- init_completion(&client->released);
- device_remove_file(&client->dev, &dev_attr_client_name);
- device_unregister(&client->dev);
- up(&adapter->clist_lock);
- wait_for_completion(&client->released);
-
-out:
- return res;
- }
-
-static int i2c_inc_use_client(struct i2c_client *client)
- {
-
- if (!try_module_get(client->driver->owner))
- return -ENODEV;
-
- if (!try_module_get(client->adapter->owner))
- {
- module_put(client->driver->owner);
- return -ENODEV;
- }
-
- return 0;
- }
-
-static void i2c_dec_use_client(struct i2c_client *client)
- {
- module_put(client->driver->owner);
- module_put(client->adapter->owner);
- }
-
-int i2c_use_client(struct i2c_client *client)
- {
- int ret;
-
- ret = i2c_inc_use_client(client);
-
- if (ret)
- return ret;
-
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- if (client->flags & I2C_CLIENT_ALLOW_MULTIPLE_USE)
- client->usage_count++;
- else if (client->usage_count > 0)
- goto busy;
- else
- client->usage_count++;
- }
-
- return 0;
-busy:
- i2c_dec_use_client(client);
- return -EBUSY;
- }
-
-int i2c_release_client(struct i2c_client *client)
- {
- if (client->flags & I2C_CLIENT_ALLOW_USE)
- {
- if (client->usage_count > 0)
- client->usage_count--;
- else
- {
- pr_debug("i2c-core: %s used one too many times\n",
- __FUNCTION__);
- return -EPERM;
- }
- }
-
- i2c_dec_use_client(client);
-
- return 0;
- }
-
-void i2c_clients_command(struct i2c_adapter *adap, unsigned int cmd, void *arg)
- {
- struct list_head *item;
- struct i2c_client *client;
-
- down(&adap->clist_lock);
- list_for_each(item, &adap->clients) {
- client = list_entry(item, struct i2c_client, list);
-
- if (!try_module_get(client->driver->owner))
- continue;
-
- if (NULL != client->driver->command)
- {
- up(&adap->clist_lock);
- client->driver->command(client, cmd, arg);
- down(&adap->clist_lock);
- }
-
- module_put(client->driver->owner);
- }
- up(&adap->clist_lock);
- }
-
-static int __init i2c_init(void)
- {
- int retval;
-
- retval = bus_register(&i2c_bus_type);
-
- if (retval)
- return retval;
-
- retval = driver_register(&i2c_adapter_driver);
-
- if (retval)
- return retval;
-
- return class_register(&i2c_adapter_class);
- }
-
-static void __exit i2c_exit(void)
- {
- class_unregister(&i2c_adapter_class);
- driver_unregister(&i2c_adapter_driver);
- bus_unregister(&i2c_bus_type);
- }
-
-subsys_initcall(i2c_init);
-module_exit(i2c_exit);
-
-/* ----------------------------------------------------
- * the functional interface to the i2c busses.
- * ----------------------------------------------------
- */
-
-int i2c_transfer(struct i2c_adapter * adap, struct i2c_msg *msgs, int num)
- {
- int ret;
-
- if (adap->algo->master_xfer)
- {
-#ifdef DEBUG
-
- for (ret = 0; ret < num; ret++)
- {
- dev_dbg(&adap->dev, "master_xfer[%d] %c, addr=0x%02x, "
- "len=%d\n", ret, msgs[ret].flags & I2C_M_RD ?
- 'R' : 'W', msgs[ret].addr, msgs[ret].len);
- }
-
-#endif
-
- down(&adap->bus_lock);
- ret = adap->algo->master_xfer(adap, msgs, num);
- up(&adap->bus_lock);
-
- return ret;
- }
- else
- {
- dev_dbg(&adap->dev, "I2C level transfers not supported\n");
- return -ENOSYS;
- }
- }
-
-int i2c_master_send(struct i2c_client *client, const char *buf, int count)
- {
- int ret;
- struct i2c_adapter *adap = client->adapter;
- struct i2c_msg msg;
-
- msg.addr = client->addr;
- msg.flags = client->flags & I2C_M_TEN;
- msg.len = count;
- msg.buf = (char *)buf;
-
- ret = i2c_transfer(adap, &msg, 1);
-
- /* If everything went ok (i.e. 1 msg transmitted), return #bytes
- transmitted, else error code. */
- return (ret == 1) ? count : ret;
- }
-
-int i2c_master_recv(struct i2c_client *client, char *buf, int count)
- {
- struct i2c_adapter *adap = client->adapter;
- struct i2c_msg msg;
- int ret;
-
- msg.addr = client->addr;
- msg.flags = client->flags & I2C_M_TEN;
- msg.flags |= I2C_M_RD;
- msg.len = count;
- msg.buf = buf;
-
- ret = i2c_transfer(adap, &msg, 1);
-
- /* If everything went ok (i.e. 1 msg transmitted), return #bytes
- transmitted, else error code. */
- return (ret == 1) ? count : ret;
- }
-
-int i2c_control(struct i2c_client *client,
- unsigned int cmd, unsigned long arg)
- {
- int ret = 0;
- struct i2c_adapter *adap = client->adapter;
-
- dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
-
- switch (cmd)
- {
- case I2C_RETRIES:
- adap->retries = arg;
- break;
-
- case I2C_TIMEOUT:
- adap->timeout = arg;
- break;
-
- default:
-
- if (adap->algo->algo_control != NULL)
- ret = adap->algo->algo_control(adap, cmd, arg);
- }
-
- return ret;
- }
-
-/* ----------------------------------------------------
- * the i2c address scanning function
- * Will not work for 10-bit addresses!
- * ----------------------------------------------------
- */
-static int i2c_probe_address(struct i2c_adapter *adapter, int addr, int kind,
- int (*found_proc)(struct i2c_adapter *, int, int))
- {
- int err;
-
- /* Make sure the address is valid */
- if (addr < 0x03 || addr > 0x77)
- {
- dev_warn(&adapter->dev, "Invalid probe address 0x%02x\n",
- addr);
- return -EINVAL;
- }
-
- /* Skip if already in use */
- if (i2c_check_addr(adapter, addr))
- return 0;
-
- /* Make sure there is something at this address, unless forced */
- if (kind < 0)
- {
- if (i2c_smbus_xfer(adapter, addr, 0, 0, 0,
- I2C_SMBUS_QUICK, NULL) < 0)
- return 0;
-
- /* prevent 24RF08 corruption */
- if ((addr & ~0x0f) == 0x50)
- i2c_smbus_xfer(adapter, addr, 0, 0, 0,
- I2C_SMBUS_QUICK, NULL);
- }
-
- /* Finally call the custom detection function */
- err = found_proc(adapter, addr, kind);
-
- /* -ENODEV can be returned if there is a chip at the given address
- but it isn't supported by this chip driver. We catch it here as
- this isn't an error. */
- return (err == -ENODEV) ? 0 : err;
- }
-
-int i2c_probe(struct i2c_adapter *adapter,
- struct i2c_client_address_data *address_data,
- int (*found_proc)(struct i2c_adapter *, int, int))
- {
- int i, err;
- int adap_id = i2c_adapter_id(adapter);
-
- /* Forget it if we can't probe using SMBUS_QUICK */
- if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK))
- return -1;
-
- /* Force entries are done first, and are not affected by ignore
- entries */
- if (address_data->forces)
- {
- unsigned short **forces = address_data->forces;
- int kind;
-
- for (kind = 0; forces[kind]; kind++)
- {
- for (i = 0; forces[kind][i] != I2C_CLIENT_END;
- i += 2)
- {
- if (forces[kind][i] == adap_id
- || forces[kind][i] == ANY_I2C_BUS)
- {
- dev_dbg(&adapter->dev, "found force "
- "parameter for adapter %d, "
- "addr 0x%02x, kind %d\n",
- adap_id, forces[kind][i + 1],
- kind);
- err = i2c_probe_address(adapter,
- forces[kind][i + 1],
- kind, found_proc);
-
- if (err)
- return err;
- }
- }
- }
- }
-
- /* Probe entries are done second, and are not affected by ignore
- entries either */
- for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2)
- {
- if (address_data->probe[i] == adap_id
- || address_data->probe[i] == ANY_I2C_BUS)
- {
- dev_dbg(&adapter->dev, "found probe parameter for "
- "adapter %d, addr 0x%02x\n", adap_id,
- address_data->probe[i + 1]);
- err = i2c_probe_address(adapter,
- address_data->probe[i + 1],
- -1, found_proc);
-
- if (err)
- return err;
- }
- }
-
- /* Normal entries are done last, unless shadowed by an ignore entry */
- for (i = 0; address_data->normal_i2c[i] != I2C_CLIENT_END; i += 1)
- {
- int j, ignore;
-
- ignore = 0;
-
- for (j = 0; address_data->ignore[j] != I2C_CLIENT_END;
- j += 2)
- {
- if ((address_data->ignore[j] == adap_id ||
- address_data->ignore[j] == ANY_I2C_BUS)
- && address_data->ignore[j + 1]
- == address_data->normal_i2c[i])
- {
- dev_dbg(&adapter->dev, "found ignore "
- "parameter for adapter %d, "
- "addr 0x%02x\n", adap_id,
- address_data->ignore[j + 1]);
- }
-
- ignore = 1;
- break;
- }
-
- if (ignore)
- continue;
-
- dev_dbg(&adapter->dev, "found normal entry for adapter %d, "
- "addr 0x%02x\n", adap_id,
- address_data->normal_i2c[i]);
- err = i2c_probe_address(adapter, address_data->normal_i2c[i],
- -1, found_proc);
-
- if (err)
- return err;
- }
-
- return 0;
- }
-
-struct i2c_adapter* i2c_get_adapter(int id)
- {
- struct i2c_adapter *adapter;
-
- down(&core_lists);
- adapter = (struct i2c_adapter *)idr_find(&i2c_adapter_idr, id);
-
- if (adapter && !try_module_get(adapter->owner))
- adapter = NULL;
-
- up(&core_lists);
- return adapter;
- }
-
-void i2c_put_adapter(struct i2c_adapter *adap)
- {
- module_put(adap->owner);
- }
-
-/* The SMBus parts */
-
-#define POLY (0x1070U << 3)
-static u8
-crc8(u16 data)
- {
- int i;
-
- for (i = 0; i < 8; i++)
- {
- if (data & 0x8000)
- data = data ^ POLY;
-
- data = data << 1;
- }
-
- return (u8)(data >> 8);
- }
-
-/* CRC over count bytes in the first array plus the bytes in the rest
- array if it is non-null. rest[0] is the (length of rest) - 1
- and is included. */
-static u8 i2c_smbus_partial_pec(u8 crc, int count, u8 *first, u8 *rest)
- {
- int i;
-
- for (i = 0; i < count; i++)
- crc = crc8((crc ^ first[i]) << 8);
-
- if (rest != NULL)
- for (i = 0; i <= rest[0]; i++)
- crc = crc8((crc ^ rest[i]) << 8);
-
- return crc;
- }
-
-static u8 i2c_smbus_pec(int count, u8 *first, u8 *rest)
- {
- return i2c_smbus_partial_pec(0, count, first, rest);
- }
-
-/* Returns new "size" (transaction type)
- Note that we convert byte to byte_data and byte_data to word_data
- rather than invent new xxx_PEC transactions. */
-static int i2c_smbus_add_pec(u16 addr, u8 command, int size,
- union i2c_smbus_data *data)
- {
- u8 buf[3];
-
- buf[0] = addr << 1;
- buf[1] = command;
-
- switch (size)
- {
- case I2C_SMBUS_BYTE:
- data->byte = i2c_smbus_pec(2, buf, NULL);
- size = I2C_SMBUS_BYTE_DATA;
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- buf[2] = data->byte;
- data->word = buf[2] ||
- (i2c_smbus_pec(3, buf, NULL) << 8);
- size = I2C_SMBUS_WORD_DATA;
- break;
-
- case I2C_SMBUS_WORD_DATA:
- /* unsupported */
- break;
-
- case I2C_SMBUS_BLOCK_DATA:
- data->block[data->block[0] + 1] =
- i2c_smbus_pec(2, buf, data->block);
- size = I2C_SMBUS_BLOCK_DATA_PEC;
- break;
- }
-
- return size;
- }
-
-static int i2c_smbus_check_pec(u16 addr, u8 command, int size, u8 partial,
- union i2c_smbus_data *data)
- {
- u8 buf[3], rpec, cpec;
-
- buf[1] = command;
-
- switch (size)
- {
- case I2C_SMBUS_BYTE_DATA:
- buf[0] = (addr << 1) | 1;
- cpec = i2c_smbus_pec(2, buf, NULL);
- rpec = data->byte;
- break;
-
- case I2C_SMBUS_WORD_DATA:
- buf[0] = (addr << 1) | 1;
- buf[2] = data->word & 0xff;
- cpec = i2c_smbus_pec(3, buf, NULL);
- rpec = data->word >> 8;
- break;
-
- case I2C_SMBUS_WORD_DATA_PEC:
- /* unsupported */
- cpec = rpec = 0;
- break;
-
- case I2C_SMBUS_PROC_CALL_PEC:
- /* unsupported */
- cpec = rpec = 0;
- break;
-
- case I2C_SMBUS_BLOCK_DATA_PEC:
- buf[0] = (addr << 1);
- buf[2] = (addr << 1) | 1;
- cpec = i2c_smbus_pec(3, buf, data->block);
- rpec = data->block[data->block[0] + 1];
- break;
-
- case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
- buf[0] = (addr << 1) | 1;
- rpec = i2c_smbus_partial_pec(partial, 1,
- buf, data->block);
- cpec = data->block[data->block[0] + 1];
- break;
-
- default:
- cpec = rpec = 0;
- break;
- }
-
- if (rpec != cpec)
- {
- pr_debug("i2c-core: Bad PEC 0x%02x vs. 0x%02x\n",
- rpec, cpec);
- return -1;
- }
-
- return 0;
- }
-
-s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value)
- {
- return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- value, 0, I2C_SMBUS_QUICK, NULL);
- }
-
-s32 i2c_smbus_read_byte(struct i2c_client *client)
- {
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, 0, I2C_SMBUS_BYTE, &data))
- return -1;
- else
- return 0x0FF & data.byte;
- }
-
-s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value)
- {
- union i2c_smbus_data data; /* only for PEC */
-
- return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, &data);
- }
-
-s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command)
- {
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command, I2C_SMBUS_BYTE_DATA, &data))
- return -1;
- else
- return 0x0FF & data.byte;
- }
-
-s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value)
- {
- union i2c_smbus_data data;
-
- data.byte = value;
- return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_BYTE_DATA, &data);
- }
-
-s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command)
- {
- union i2c_smbus_data data;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command, I2C_SMBUS_WORD_DATA, &data))
- return -1;
- else
- return 0x0FFFF & data.word;
- }
-
-s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value)
- {
- union i2c_smbus_data data;
-
- data.word = value;
- return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_WORD_DATA, &data);
- }
-
-s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command,
- u8 length, u8 *values)
- {
- union i2c_smbus_data data;
- int i;
-
- if (length > I2C_SMBUS_BLOCK_MAX)
- length = I2C_SMBUS_BLOCK_MAX;
-
- for (i = 1; i <= length; i++)
- data.block[i] = values[i - 1];
-
- data.block[0] = length;
- return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_WRITE, command,
- I2C_SMBUS_BLOCK_DATA, &data);
- }
-
-/* Returns the number of read bytes */
-s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, u8 *values)
- {
- union i2c_smbus_data data;
- int i;
-
- if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
- I2C_SMBUS_READ, command,
- I2C_SMBUS_I2C_BLOCK_DATA, &data))
- return -1;
- else
- {
- for (i = 1; i <= data.block[0]; i++)
- values[i - 1] = data.block[i];
-
- return data.block[0];
- }
- }
-
-/* Simulate a SMBus command using the i2c protocol
- No checking of parameters is done! */
-static s32 i2c_smbus_xfer_emulated(struct i2c_adapter * adapter, u16 addr,
- unsigned short flags,
- char read_write, u8 command, int size,
- union i2c_smbus_data * data)
- {
- /* So we need to generate a series of msgs. In the case of writing, we
- need to use only one message; when reading, we need two. We initialize
- most things with sane defaults, to keep the code below somewhat
- simpler. */
- unsigned char msgbuf0[34];
- unsigned char msgbuf1[34];
- int num = read_write == I2C_SMBUS_READ ? 2 : 1;
- struct i2c_msg msg[2] = { { addr, flags, 1, msgbuf0 },
- { addr, flags | I2C_M_RD, 0, msgbuf1 } };
- int i;
-
- msgbuf0[0] = command;
-
- switch (size)
- {
- case I2C_SMBUS_QUICK:
- msg[0].len = 0;
- /* Special case: The read/write field is used as data */
- msg[0].flags = flags | (read_write == I2C_SMBUS_READ) ? I2C_M_RD : 0;
- num = 1;
- break;
-
- case I2C_SMBUS_BYTE:
-
- if (read_write == I2C_SMBUS_READ)
- {
- /* Special case: only a read! */
- msg[0].flags = I2C_M_RD | flags;
- num = 1;
- }
-
- break;
-
- case I2C_SMBUS_BYTE_DATA:
-
- if (read_write == I2C_SMBUS_READ)
- msg[1].len = 1;
- else
- {
- msg[0].len = 2;
- msgbuf0[1] = data->byte;
- }
-
- break;
-
- case I2C_SMBUS_WORD_DATA:
-
- if (read_write == I2C_SMBUS_READ)
- msg[1].len = 2;
- else
- {
- msg[0].len = 3;
- msgbuf0[1] = data->word & 0xff;
- msgbuf0[2] = (data->word >> 8) & 0xff;
- }
-
- break;
-
- case I2C_SMBUS_PROC_CALL:
- num = 2; /* Special case */
- read_write = I2C_SMBUS_READ;
- msg[0].len = 3;
- msg[1].len = 2;
- msgbuf0[1] = data->word & 0xff;
- msgbuf0[2] = (data->word >> 8) & 0xff;
- break;
-
- case I2C_SMBUS_BLOCK_DATA:
- case I2C_SMBUS_BLOCK_DATA_PEC:
-
- if (read_write == I2C_SMBUS_READ)
- {
- dev_err(&adapter->dev, "Block read not supported "
- "under I2C emulation!\n");
- return -1;
- }
- else
- {
- msg[0].len = data->block[0] + 2;
-
- if (msg[0].len > I2C_SMBUS_BLOCK_MAX + 2)
- {
- dev_err(&adapter->dev, "smbus_access called with "
- "invalid block write size (%d)\n",
- data->block[0]);
- return -1;
- }
-
- if (size == I2C_SMBUS_BLOCK_DATA_PEC)
- (msg[0].len)++;
-
- for (i = 1; i <= msg[0].len; i++)
- msgbuf0[i] = data->block[i - 1];
- }
-
- break;
-
- case I2C_SMBUS_BLOCK_PROC_CALL:
- case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
- dev_dbg(&adapter->dev, "Block process call not supported "
- "under I2C emulation!\n");
- return -1;
-
- case I2C_SMBUS_I2C_BLOCK_DATA:
-
- if (read_write == I2C_SMBUS_READ)
- msg[1].len = I2C_SMBUS_I2C_BLOCK_MAX;
- else
- {
- msg[0].len = data->block[0] + 1;
-
- if (msg[0].len > I2C_SMBUS_I2C_BLOCK_MAX + 1)
- {
- dev_err(&adapter->dev, "i2c_smbus_xfer_emulated called with "
- "invalid block write size (%d)\n",
- data->block[0]);
- return -1;
- }
-
- for (i = 1; i <= data->block[0]; i++)
- msgbuf0[i] = data->block[i];
- }
-
- break;
-
- default:
- dev_err(&adapter->dev, "smbus_access called with invalid size (%d)\n",
- size);
- return -1;
- }
-
- if (i2c_transfer(adapter, msg, num) < 0)
- return -1;
-
- if (read_write == I2C_SMBUS_READ)
- switch (size)
- {
- case I2C_SMBUS_BYTE:
- data->byte = msgbuf0[0];
- break;
-
- case I2C_SMBUS_BYTE_DATA:
- data->byte = msgbuf1[0];
- break;
-
- case I2C_SMBUS_WORD_DATA:
- case I2C_SMBUS_PROC_CALL:
- data->word = msgbuf1[0] | (msgbuf1[1] << 8);
- break;
-
- case I2C_SMBUS_I2C_BLOCK_DATA:
- /* fixed at 32 for now */
- data->block[0] = I2C_SMBUS_I2C_BLOCK_MAX;
-
- for (i = 0; i < I2C_SMBUS_I2C_BLOCK_MAX; i++)
- data->block[i + 1] = msgbuf1[i];
-
- break;
- }
-
- return 0;
- }
-
-s32 i2c_smbus_xfer(struct i2c_adapter * adapter, u16 addr, unsigned short flags,
- char read_write, u8 command, int size,
- union i2c_smbus_data * data)
- {
- s32 res;
- int swpec = 0;
- u8 partial = 0;
-
- flags &= I2C_M_TEN | I2C_CLIENT_PEC;
-
- if ((flags & I2C_CLIENT_PEC) &&
- !(i2c_check_functionality(adapter, I2C_FUNC_SMBUS_HWPEC_CALC)))
- {
- swpec = 1;
-
- if (read_write == I2C_SMBUS_READ &&
- size == I2C_SMBUS_BLOCK_DATA)
- size = I2C_SMBUS_BLOCK_DATA_PEC;
- else if (size == I2C_SMBUS_PROC_CALL)
- size = I2C_SMBUS_PROC_CALL_PEC;
- else if (size == I2C_SMBUS_BLOCK_PROC_CALL)
- {
- i2c_smbus_add_pec(addr, command,
- I2C_SMBUS_BLOCK_DATA, data);
- partial = data->block[data->block[0] + 1];
- size = I2C_SMBUS_BLOCK_PROC_CALL_PEC;
- }
- else if (read_write == I2C_SMBUS_WRITE &&
- size != I2C_SMBUS_QUICK &&
- size != I2C_SMBUS_I2C_BLOCK_DATA)
- size = i2c_smbus_add_pec(addr, command, size, data);
- }
-
- if (adapter->algo->smbus_xfer)
- {
- down(&adapter->bus_lock);
- res = adapter->algo->smbus_xfer(adapter, addr, flags, read_write,
- command, size, data);
- up(&adapter->bus_lock);
- }
- else
- res = i2c_smbus_xfer_emulated(adapter, addr, flags, read_write,
- command, size, data);
-
- if (res >= 0 && swpec &&
- size != I2C_SMBUS_QUICK && size != I2C_SMBUS_I2C_BLOCK_DATA &&
- (read_write == I2C_SMBUS_READ || size == I2C_SMBUS_PROC_CALL_PEC ||
- size == I2C_SMBUS_BLOCK_PROC_CALL_PEC))
- if (i2c_smbus_check_pec(addr, command, size, partial, data))
- return -1;
-
- return res;
- }
-
-/* Next four are needed by i2c-isa */
-EXPORT_SYMBOL_GPL(i2c_adapter_dev_release);
-EXPORT_SYMBOL_GPL(i2c_adapter_driver);
-EXPORT_SYMBOL_GPL(i2c_adapter_class);
-EXPORT_SYMBOL_GPL(i2c_bus_type);
-
-EXPORT_SYMBOL(i2c_add_adapter);
-EXPORT_SYMBOL(i2c_del_adapter);
-EXPORT_SYMBOL(i2c_add_driver);
-EXPORT_SYMBOL(i2c_del_driver);
-EXPORT_SYMBOL(i2c_attach_client);
-EXPORT_SYMBOL(i2c_detach_client);
-EXPORT_SYMBOL(i2c_use_client);
-EXPORT_SYMBOL(i2c_release_client);
-EXPORT_SYMBOL(i2c_clients_command);
-EXPORT_SYMBOL(i2c_check_addr);
-
-EXPORT_SYMBOL(i2c_master_send);
-EXPORT_SYMBOL(i2c_master_recv);
-EXPORT_SYMBOL(i2c_control);
-EXPORT_SYMBOL(i2c_transfer);
-EXPORT_SYMBOL(i2c_get_adapter);
-EXPORT_SYMBOL(i2c_put_adapter);
-EXPORT_SYMBOL(i2c_probe);
-
-EXPORT_SYMBOL(i2c_smbus_xfer);
-EXPORT_SYMBOL(i2c_smbus_write_quick);
-EXPORT_SYMBOL(i2c_smbus_read_byte);
-EXPORT_SYMBOL(i2c_smbus_write_byte);
-EXPORT_SYMBOL(i2c_smbus_read_byte_data);
-EXPORT_SYMBOL(i2c_smbus_write_byte_data);
-EXPORT_SYMBOL(i2c_smbus_read_word_data);
-EXPORT_SYMBOL(i2c_smbus_write_word_data);
-EXPORT_SYMBOL(i2c_smbus_write_block_data);
-EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data);
-
-MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
-MODULE_DESCRIPTION("I2C-Bus main module");
-MODULE_LICENSE("GPL");
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02503-pp_concat_asn1.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02503-pp_concat_asn1.h
deleted file mode 100644
index babfa69d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02503-pp_concat_asn1.h
+++ /dev/null
@@ -1,298 +0,0 @@
-#ifndef HEADER_ASN1_H
-#define HEADER_ASN1_H
-
-#define V_ASN1_UNIVERSAL 0x00
-#define V_ASN1_APPLICATION 0x40
-#define V_ASN1_CONTEXT_SPECIFIC 0x80
-#define V_ASN1_PRIVATE 0xc0
-
-#define V_ASN1_CONSTRUCTED 0x20
-#define V_ASN1_PRIMITIVE_TAG 0x1f
-#define V_ASN1_PRIMATIVE_TAG 0x1f
-
-#define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */
-#define V_ASN1_OTHER -3 /* used in ASN1_TYPE */
-#define V_ASN1_ANY -4 /* used in ASN1 template code */
-
-#define V_ASN1_NEG 0x100 /* negative flag */
-
-#define V_ASN1_UNDEF -1
-#define V_ASN1_EOC 0
-#define V_ASN1_BOOLEAN 1 /**/
-#define V_ASN1_INTEGER 2
-#define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG)
-#define V_ASN1_BIT_STRING 3
-#define V_ASN1_OCTET_STRING 4
-#define V_ASN1_NULL 5
-#define V_ASN1_OBJECT 6 /* object identifier */
-#define V_ASN1_OBJECT_DESCRIPTOR 7
-#define V_ASN1_EXTERNAL 8 /* external / instance of */
-#define V_ASN1_REAL 9
-#define V_ASN1_ENUMERATED 10
-#define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG)
-#define V_ASN1_EMBEDDED_PDV 11
-#define V_ASN1_UTF8STRING 12
-#define V_ASN1_SEQUENCE 16
-#define V_ASN1_SET 17
-#define V_ASN1_NUMERICSTRING 18 /**/
-#define V_ASN1_PRINTABLESTRING 19
-#define V_ASN1_T61STRING 20
-#define V_ASN1_TELETEXSTRING 20 /* alias */
-#define V_ASN1_VIDEOTEXSTRING 21 /**/
-#define V_ASN1_IA5STRING 22
-#define V_ASN1_UTCTIME 23
-#define V_ASN1_GENERALIZEDTIME 24 /**/
-#define V_ASN1_GRAPHICSTRING 25 /**/
-#define V_ASN1_ISO64STRING 26 /**/
-#define V_ASN1_VISIBLESTRING 26 /* alias */
-#define V_ASN1_GENERALSTRING 27 /**/
-#define V_ASN1_UNIVERSALSTRING 28 /**/
-#define V_ASN1_BMPSTRING 30
-
-/* For use with d2i_ASN1_type_bytes() */
-#define B_ASN1_NUMERICSTRING 0x0001
-#define B_ASN1_PRINTABLESTRING 0x0002
-#define B_ASN1_T61STRING 0x0004
-#define B_ASN1_TELETEXSTRING 0x0004
-#define B_ASN1_VIDEOTEXSTRING 0x0008
-#define B_ASN1_IA5STRING 0x0010
-#define B_ASN1_GRAPHICSTRING 0x0020
-#define B_ASN1_ISO64STRING 0x0040
-#define B_ASN1_VISIBLESTRING 0x0040
-#define B_ASN1_GENERALSTRING 0x0080
-#define B_ASN1_UNIVERSALSTRING 0x0100
-#define B_ASN1_OCTET_STRING 0x0200
-#define B_ASN1_BIT_STRING 0x0400
-#define B_ASN1_BMPSTRING 0x0800
-#define B_ASN1_UNKNOWN 0x1000
-#define B_ASN1_UTF8STRING 0x2000
-#define B_ASN1_UTCTIME 0x4000
-#define B_ASN1_GENERALIZEDTIME 0x8000
-#define B_ASN1_SEQUENCE 0x10000
-
-/* For use with ASN1_mbstring_copy() */
-#define MBSTRING_FLAG 0x1000
-#define MBSTRING_UTF8 (MBSTRING_FLAG)
-#define MBSTRING_ASC (MBSTRING_FLAG | 1)
-#define MBSTRING_BMP (MBSTRING_FLAG | 2)
-#define MBSTRING_UNIV (MBSTRING_FLAG | 4)
-
-#define SMIME_OLDMIME 0x400
-#define SMIME_CRLFEOL 0x800
-#define SMIME_STREAM 0x1000
-
-struct X509_algor_st;
-DECLARE_STACK_OF(X509_ALGOR);
-
-#define DECLARE_ASN1_SET_OF(type) /* filled in by mkstack.pl */
-#define IMPLEMENT_ASN1_SET_OF(type) /* nothing, no longer needed */
-
-/* We MUST make sure that, except for constness, asn1_ctx_st and
- * asn1_const_ctx are exactly the same. Fortunately, as soon as
- * the old ASN1 parsing macros are gone, we can throw this away
- * as well... */
-typedef struct asn1_ctx_st
-{
- unsigned char *p; /* work char pointer */
- int eos; /* end of sequence read for indefinite encoding */
- int error; /* error code to use when returning an error */
- int inf; /* constructed if 0x20, indefinite is 0x21 */
- int tag; /* tag from last 'get object' */
- int xclass; /* class from last 'get object' */
- size_t slen; /* length of last 'get object' */
- unsigned char * max; /* largest value of p allowed */
- unsigned char * q; /* temporary variable */
- unsigned char **pp; /* variable */
- int line; /* used in error processing */
-} ASN1_CTX;
-
-typedef struct asn1_const_ctx_st
-{
- const unsigned char *p; /* work char pointer */
- int eos; /* end of sequence read for indefinite encoding */
- int error; /* error code to use when returning an error */
- int inf; /* constructed if 0x20, indefinite is 0x21 */
- int tag; /* tag from last 'get object' */
- int xclass; /* class from last 'get object' */
- size_t slen; /* length of last 'get object' */
- const unsigned char * max; /* largest value of p allowed */
- const unsigned char * q; /* temporary variable */
- const unsigned char **pp; /* variable */
- int line; /* used in error processing */
-} ASN1_const_CTX;
-
-/* These are used internally in the ASN1_OBJECT to keep track of
- * whether the names and data need to be free()ed */
-#define ASN1_OBJECT_FLAG_DYNAMIC 0x01 /* internal use */
-#define ASN1_OBJECT_FLAG_CRITICAL 0x02 /* critical x509v3 object id */
-#define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04 /* internal use */
-#define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08 /* internal use */
-typedef struct asn1_object_st
-{
- const char *sn, *ln;
- int nid;
- size_t length;
- const unsigned char *data; /* data remains const after init */
- int flags; /* Should we free this one */
-} ASN1_OBJECT;
-
-#define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */
-/* This indicates that the ASN1_STRING is not a real value but just a place
- * holder for the location where indefinite length constructed data should
- * be inserted in the memory buffer
- */
-#define ASN1_STRING_FLAG_NDEF 0x010
-
-/* This flag is used by the CMS code to indicate that a string is not
- * complete and is a place holder for content when it had all been
- * accessed. The flag will be reset when content has been written to it.
- */
-
-#define ASN1_STRING_FLAG_CONT 0x020
-
-/* This is the base type that holds just about everything :-) */
-typedef struct asn1_string_st
-{
- size_t length;
- int type;
- unsigned char *data;
-
- /* The value of the following field depends on the type being
- * held. It is mostly being used for BIT_STRING so if the
- * input data has a non-zero 'unused bits' value, it will be
- * handled correctly */
- long flags;
-} ASN1_STRING;
-
-/* ASN1_ENCODING structure: this is used to save the received
- * encoding of an ASN1 type. This is useful to get round
- * problems with invalid encodings which can break signatures.
- */
-
-typedef struct ASN1_ENCODING_st
-{
- unsigned char *enc; /* DER encoding */
- size_t len; /* Length of encoding */
- int modified; /* set to 1 if 'enc' is invalid */
-} ASN1_ENCODING;
-
-/* Used with ASN1 LONG type: if a long is set to this it is omitted */
-#define ASN1_LONG_UNDEF 0x7fffffffL
-
-#define STABLE_FLAGS_MALLOC 0x01
-#define STABLE_NO_MASK 0x02
-#define DIRSTRING_TYPE \
- (B_ASN1_PRINTABLESTRING | B_ASN1_T61STRING | B_ASN1_BMPSTRING | B_ASN1_UTF8STRING)
-#define PKCS9STRING_TYPE (DIRSTRING_TYPE | B_ASN1_IA5STRING)
-
-/* Declarations for template structures: for full definitions
- * see asn1t.h
- */
-typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE;
-typedef struct ASN1_ITEM_st ASN1_ITEM;
-typedef struct ASN1_TLC_st ASN1_TLC;
-/* This is just an opaque pointer */
-typedef struct ASN1_VALUE_st ASN1_VALUE;
-
-/* Declare ASN1 functions: the implement macro in in asn1t.h */
-
-#define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type)
-
-#define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \
- DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type)
-
-#define DECLARE_ASN1_FUNCTIONS_name(type, name) \
- DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name); \
- DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name)
-
-#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \
- DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name); \
- DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)
-
-#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \
- type *d2i_##name(type **a, const unsigned char **in, size_t len); \
- int i2d_##name(const type *a, unsigned char **out); \
- DECLARE_ASN1_ITEM(itname)
-
-#define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \
- type *d2i_##name(type **a, const unsigned char **in, size_t len); \
- int i2d_##name(const type *a, unsigned char **out); \
- DECLARE_ASN1_ITEM(name)
-
-#define DECLARE_ASN1_NDEF_FUNCTION(name) \
- int i2d_##name##_NDEF(const name * a, unsigned char **out)
-
-#define DECLARE_ASN1_FUNCTIONS_const(name) \
- DECLARE_ASN1_ALLOC_FUNCTIONS(name); \
- DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name)
-
-#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \
- type *name##_new(void); \
- void name##_free(type *a)
-
-#define DECLARE_ASN1_PRINT_FUNCTION(stname) \
- DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname)
-
-#define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \
- int fname##_print_ctx(BIO *out, const stname *x, int indent, \
- const ASN1_PCTX * pctx)
-
-
-/*
- * WARNING WARNING WARNING
- *
- * uncrustify still introduces whitespace in here at some spots, but then
- * one might ask how crazy we want to go regarding ## encumbered parsing?
- * There's always the copout of INDENT-OFF markers for files like these,
- * once you've got them 95% right through uncrustify and that extra 5%
- * by hand ;-)
- */
-#define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type (type **, const unsigned char **, size_t)
-#define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type (type *, unsigned char **)
-#define TYPEDEF_I2D_OF_CONST(type) typedef int i2d_of_const_##type (const type *, unsigned char **) /* [i_a] */
-#define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type); TYPEDEF_I2D_OF_CONST(type) /* [i_a] */
-
-
-/* Macro to include ASN1_ITEM pointer from base type */
-#define ASN1_ITEM_ref(iptr) (&(iptr##_it))
-
-#define ASN1_ITEM_rptr(ref) (&(ref##_it))
-
-#define DECLARE_ASN1_ITEM(name) \
- extern const ASN1_ITEM name##_it;
-
-
-#define ASN1_STRFLGS_RFC2253 \
- (ASN1_STRFLGS_ESC_2253 | \
- ASN1_STRFLGS_ESC_CTRL | \
- ASN1_STRFLGS_ESC_MSB | \
- ASN1_STRFLGS_UTF8_CONVERT | \
- ASN1_STRFLGS_DUMP_UNKNOWN | \
- ASN1_STRFLGS_DUMP_DER)
-
-DECLARE_STACK_OF(ASN1_INTEGER);
-DECLARE_ASN1_SET_OF(ASN1_INTEGER);
-
-DECLARE_STACK_OF(ASN1_GENERALSTRING);
-
-typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;
-
-DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY);
-DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY);
-
-
-#define B_ASN1_DIRECTORYSTRING \
- B_ASN1_PRINTABLESTRING | \
- B_ASN1_TELETEXSTRING | \
- B_ASN1_BMPSTRING | \
- B_ASN1_UNIVERSALSTRING | \
- B_ASN1_UTF8STRING
-
-#define B_ASN1_DISPLAYTEXT \
- B_ASN1_IA5STRING | \
- B_ASN1_VISIBLESTRING | \
- B_ASN1_BMPSTRING | \
- B_ASN1_UTF8STRING
-
-#endif // ifndef HEADER_ASN1_H
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10003-bug_i_222.c b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10003-bug_i_222.c
deleted file mode 100644
index 4f0ded31..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10003-bug_i_222.c
+++ /dev/null
@@ -1,6 +0,0 @@
-whatever *find_node_for_address(whatever2 *foo,
- thingy *bar,
- whatever3 *(func_ptr)(
- whatever4 *foo2,
- thingy2 *bar2));
-//3456789=123456789=123456789=123456789=123456789=12
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/0044-i2116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/0044-i2116.cpp
deleted file mode 100644
index af664cd9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/0044-i2116.cpp
+++ /dev/null
@@ -1 +0,0 @@
-void f(){}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp
deleted file mode 100644
index b188c210..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-void f(int i)
-{
- switch(i)
- {
- case 1 ... 2:
- {
- break;
- }
- case 3 ... 5:
- break;
-
- default:
- break
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10101-issue_574.cpp-a b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10101-issue_574.cpp-a
deleted file mode 100644
index a1065b4e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10101-issue_574.cpp-a
+++ /dev/null
@@ -1,13 +0,0 @@
-class A
-{
-// crash (two parameter, 2nd string parameter has space)
- void check(const QObject *object, const QStringList &strList = QStringList(QString(QLatin1String("one two"))));
-// no crash (two parameter, 2nd string parameter has no space)
- void check(const QObject *object, const QStringList &strList = QStringList(QString(QLatin1String("one"))));
-// no crash (removed QLatin1String)
- void check(const QObject *object, const QStringList &strList = QStringList(QString(("one two"))));
-// no crash (removed QString(QLatin1String))
- void check(const QObject *object, const QStringList &strList = QStringList());
-// no crash (removed 1st parameter only)
- void check(const QStringList &strList = QStringList(QString(QLatin1String("one two"))));
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30023-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30023-templates.cpp
deleted file mode 100644
index 239d6865..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30023-templates.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-#include <list>
-#include <map>
-#include <vector>
-
-#define MACRO(T) f<T>()
-
-class MyClass
-{
- public:
- std::map<int, bool> someData;
- std::map<int, std::list<bool> > otherData;
-};
-
-void foo()
-{
- List<byte> bob = new List<byte>();
-}
-
-A<B> foo;
-A<B, C> bar;
-A<B *> baz;
-A<B<C> > bay;
-
-void asd(void)
-{
- A<B> foo;
- A<B, C> bar;
- A<B *> baz;
- A<B<C> > bay;
-
- if (a < b && b > c)
- {
- a = b < c > 0;
- }
- if (a<bar()> c)
- {
- }
- a < up_lim() ? do_hi() : do_low;
- a[a<b> c] = d;
-}
-
-template<typename T> class MyClass
-{
-}
-
-template<typename T>
-class MyClass
-{
-}
-
-template<typename A, typename B, typename C> class MyClass : myvar(0),
- myvar2(0)
-{
-}
-
-template<typename A, typename B, typename C> class MyClass
- : myvar(0),
- myvar2(0)
-{
-}
-
-
-static int max_value()
-{
- return((std::numeric_limits<int>::max)());
-}
-
-template<class Config_>
-priority_queue<Config_>::~priority_queue ()
-{
-}
-
-template<class T>
-T test(T a)
-{
- return(a);
-}
-
-int main()
-{
- int k, j;
- h g<int>;
-
- k = test<int>(j);
- return(0);
-}
-
-template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass>
-class RotationMatrix
- : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
-{
- public:
- RotationMatrix()
- : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
- {
- // do some initialization
- }
-
- void assign(const OtherClass<T, 3, 3>& other)
- {
- // do something
- }
-};
-
-int main()
-{
- MyClass<double, 3, 3, MyStorage> foo;
-}
-
-template<typename CharT, int N, typename Traits>
-inline std::basic_ostream<CharT, Traits>& FWStreamOut(std::basic_ostream<CharT, Traits>&os,
- const W::S<CharT, N, Traits>&s)
-{
- return(operator<<<CharT, N, Traits, char, std::char_traits<char> >(os, s));
-}
-
-struct foo
-{
- type1<int&> bar;
-};
-struct foo
-{
- type1<int const> bar;
-};
-
-
-template<int i> void f();
-template<int i> void g()
-{
- f<i - 1>();
- f<i>();
- f<i + 1>();
- f<bar()>();
-}
-void h()
-{
- g<42>();
-}
-
-#include <vector>
-std::vector<int> A(2);
-std::vector<int> B;
-std::vector<int> C(2);
-std::vector<int> D;
-
-template<class T> struct X
-{
- template<class U> void operator()(U);
-};
-
-template<class T> class Y {
- template<class V> void f(V);
-};
-
-void (*foobar)(void) = NULL;
-std::vector<void (*)(void)> functions;
-
-#define MACRO(a) a
-template<typename = int> class X;
-MACRO(void f(X<>& x));
-void g(X<>& x);
-
-#include <vector>
-typedef std::vector<std::vector<int> > Table; // OK
-typedef std::vector<std::vector<bool> > Flags; // Error
-
-void func(List<B> =default_val1);
-void func(List<List<B> > =default_val2);
-
-BLAH<(3.14 >= 42)> blah;
-bool X = j<3> > 1;
-
-void foo()
-{
- A<(X > Y)> a;
-
- a = static_cast<List<B> >(ld);
-}
-
-template<int i> class X { /* ... */
-};
-X < 1 > 2 > x1; // Syntax error.
-X<(1 > 2)> x2; // Okay.
-
-template<class T> class Y { /* ... */
-};
-Y<X<1> > x3; // Okay, same as "Y<X<1> > x3;".
-Y<X<(6 >> 1)> > x4;
-
-
-template<typename T>
-int
-myFunc1(typename T::Subtype val);
-
-int
-myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30098-Issue_2692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30098-Issue_2692.cpp
deleted file mode 100644
index c54e5461..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30098-Issue_2692.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-class Class
-{
-
-std::mutex* a;
-int* b;
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30100-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30100-templates.cpp
deleted file mode 100644
index 6874e3dd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30100-templates.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-#include <list>
-#include <map>
-#include <vector>
-
-#define MACRO(T) f<T>()
-
-class MyClass
-{
-public:
- std::map < int, bool > someData;
- std::map < int, std::list < bool > > otherData;
-};
-
-void foo()
-{
- List < byte > bob = new List<byte>();
-
-}
-
-A<B> foo;
-A<B,C> bar;
-A<B*> baz;
-A<B<C> > bay;
-
-void asd(void)
-{
- A<B> foo;
- A<B,C> bar;
- A<B*> baz;
- A<B<C> > bay;
- if (a < b && b > c)
- {
- a = b < c > 0;
- }
- if (a < bar() > c)
- {
- }
- a < up_lim() ? do_hi() : do_low;
- a[ a<b> c] = d;
-}
-
-template<typename T>
-class MyClass
-{
-
-}
-
-template<typename T>
-class MyClass
-{
-}
-
-template<typename A, typename B, typename C>
-class MyClass : myvar(0),
- myvar2(0)
-{
-
-}
-
-template<typename A, typename B, typename C>
-class MyClass
- : myvar(0),
- myvar2(0)
-{
-
-}
-
-
-static int max_value()
-{
- return (std :: numeric_limits <int >:: max )();
-}
-
-template < class Config_ >
-priority_queue < Config_ > :: ~priority_queue () {
-
-}
-
-template<class T>
-T test(T a) {
- return a;
-}
-
-int main() {
- int k,j;
- h g<int>;
- k=test<int>(j);
- return 0;
-}
-
-template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass>
-class RotationMatrix
- : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
-{
-
-public:
-
- RotationMatrix()
- : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
- {
- // do some initialization
- }
-
- void assign(const OtherClass<T, 3, 3 >& other)
- {
- // do something
- }
-
-};
-
-int main()
-{
- MyClass<double, 3, 3, MyStorage> foo;
-}
-
-template< typename CharT, int N, typename Traits >
-inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits>& os,
- const W::S<CharT,N,Traits>& s)
-{
- return operator << <CharT, N, Traits, char, std::char_traits<char> >( os, s );
-}
-
-struct foo {
- type1 < int& > bar;
-};
-struct foo {
- type1 < int const > bar;
-};
-
-
-template <int i>
-void f();
-template <int i>
-void g() {
- f<i - 1>();
- f< i >();
- f<i + 1>();
- f<bar()>();
-}
-void h() {
- g<42>();
-}
-
-#include <vector>
-std::vector<int> A(2);
-std::vector<int> B;
-std::vector<int> C(2);
-std::vector<int> D;
-
-template<class T>
-struct X { template<class U>
- void operator ()(U); };
-
-template<class T>
-class Y { template<class V>
- void f(V); };
-
-void (* foobar)(void) = NULL;
-std::vector<void (*)(void)> functions;
-
-#define MACRO( a ) a
-template < typename = int >
-class X;
-MACRO ( void f( X < >& x ) );
-void g( X < >& x );
-
-#include <vector>
-typedef std::vector<std::vector<int> > Table; // OK
-typedef std::vector<std::vector<bool> > Flags; // Error
-
-void func(List<B> = default_val1);
-void func(List<List<B> > = default_val2);
-
-BLAH<(3.14 >= 42)> blah;
-bool X = j<3> > 1;
-
-void foo()
-{
- A<(X > Y)> a;
- a = static_cast<List<B> >(ld);
-}
-
-template<int i>
-class X { /* ... */ };
-X < 1 > 2 > x1; // Syntax error.
-X<(1 > 2)> x2; // Okay.
-
-template<class T>
-class Y { /* ... */ };
-Y<X<1> > x3; // Okay, same as "Y<X<1> > x3;".
-Y<X<(6 >> 1)> > x4;
-
-
-template <typename T>
-int
-myFunc1(typename T::Subtype val);
-
-int
-myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30101-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30101-templates.cpp
deleted file mode 100644
index 1de728b9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30101-templates.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-#include <list>
-#include <map>
-#include <vector>
-
-#define MACRO(T) f<T>()
-
-class MyClass
-{
-public:
- std::map < int, bool > someData;
- std::map < int, std::list < bool > > otherData;
-};
-
-void foo()
-{
- List < byte > bob = new List<byte>();
-
-}
-
-A<B> foo;
-A<B,C> bar;
-A<B*> baz;
-A<B<C> > bay;
-
-void asd(void)
-{
- A<B> foo;
- A<B,C> bar;
- A<B*> baz;
- A<B<C> > bay;
- if (a < b && b > c)
- {
- a = b < c > 0;
- }
- if (a < bar() > c)
- {
- }
- a < up_lim() ? do_hi() : do_low;
- a[ a<b> c] = d;
-}
-
-template<typename T> class MyClass
-{
-
-}
-
-template<typename T> class MyClass
-{
-}
-
-template<typename A, typename B, typename C> class MyClass : myvar(0),
- myvar2(0)
-{
-
-}
-
-template<typename A, typename B, typename C> class MyClass
- : myvar(0),
- myvar2(0)
-{
-
-}
-
-
-static int max_value()
-{
- return (std :: numeric_limits <int >:: max )();
-}
-
-template < class Config_ > priority_queue < Config_ > :: ~priority_queue () {
-
-}
-
-template<class T> T test(T a) {
- return a;
-}
-
-int main() {
- int k,j;
- h g<int>;
- k=test<int>(j);
- return 0;
-}
-
-template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass> class RotationMatrix
- : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
-{
-
-public:
-
- RotationMatrix()
- : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
- {
- // do some initialization
- }
-
- void assign(const OtherClass<T, 3, 3 >& other)
- {
- // do something
- }
-
-};
-
-int main()
-{
- MyClass<double, 3, 3, MyStorage> foo;
-}
-
-template< typename CharT, int N, typename Traits > inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits>& os,
- const W::S<CharT,N,Traits>& s)
-{
- return operator << <CharT, N, Traits, char, std::char_traits<char> >( os, s );
-}
-
-struct foo {
- type1 < int& > bar;
-};
-struct foo {
- type1 < int const > bar;
-};
-
-
-template <int i> void f();
-template <int i> void g() {
- f<i - 1>();
- f< i >();
- f<i + 1>();
- f<bar()>();
-}
-void h() {
- g<42>();
-}
-
-#include <vector>
-std::vector<int> A(2);
-std::vector<int> B;
-std::vector<int> C(2);
-std::vector<int> D;
-
-template<class T> struct X { template<class U> void operator ()(U); };
-
-template<class T> class Y { template<class V> void f(V); };
-
-void (* foobar)(void) = NULL;
-std::vector<void (*)(void)> functions;
-
-#define MACRO( a ) a
-template < typename = int > class X;
-MACRO ( void f( X < >& x ) );
-void g( X < >& x );
-
-#include <vector>
-typedef std::vector<std::vector<int> > Table; // OK
-typedef std::vector<std::vector<bool> > Flags; // Error
-
-void func(List<B> = default_val1);
-void func(List<List<B> > = default_val2);
-
-BLAH<(3.14 >= 42)> blah;
-bool X = j<3> > 1;
-
-void foo()
-{
- A<(X > Y)> a;
- a = static_cast<List<B> >(ld);
-}
-
-template<int i> class X { /* ... */ };
-X < 1 > 2 > x1; // Syntax error.
-X<(1 > 2)> x2; // Okay.
-
-template<class T> class Y { /* ... */ };
-Y<X<1> > x3; // Okay, same as "Y<X<1> > x3;".
-Y<X<(6 >> 1)> > x4;
-
-
-template <typename T> int
-myFunc1(typename T::Subtype val);
-
-int
-myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30102-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30102-templates.cpp
deleted file mode 100644
index 54b403fe..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30102-templates.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-#include <list>
-#include <map>
-#include <vector>
-
-#define MACRO(T) f < T > ()
-
-class MyClass
-{
-public:
- std::map < int, bool > someData;
- std::map < int, std::list < bool > > otherData;
-};
-
-void foo()
-{
- List < byte > bob = new List < byte > ();
-
-}
-
-A < B > foo;
-A < B,C > bar;
-A < B* > baz;
-A < B < C > > bay;
-
-void asd(void)
-{
- A < B > foo;
- A < B,C > bar;
- A < B* > baz;
- A < B < C > > bay;
- if (a<b && b>c)
- {
- a = b<c>0;
- }
- if (a < bar() > c)
- {
- }
- a<up_lim() ? do_hi() : do_low;
- a[ a < b > c] = d;
-}
-
-template< typename T > class MyClass
-{
-
-}
-
-template< typename T >
-class MyClass
-{
-}
-
-template< typename A, typename B, typename C > class MyClass : myvar(0),
- myvar2(0)
-{
-
-}
-
-template< typename A, typename B, typename C > class MyClass
- : myvar(0),
- myvar2(0)
-{
-
-}
-
-
-static int max_value()
-{
- return (std :: numeric_limits < int >:: max )();
-}
-
-template< class Config_ >
-priority_queue < Config_ > :: ~priority_queue () {
-
-}
-
-template< class T >
-T test(T a) {
- return a;
-}
-
-int main() {
- int k,j;
- h g < int >;
- k=test < int > (j);
- return 0;
-}
-
-template< typename T, template< typename, unsigned int, unsigned int > class ConcreteStorageClass >
-class RotationMatrix
- : public StaticBaseMatrix < T, 3, 3, ConcreteStorageClass >
-{
-
-public:
-
- RotationMatrix()
- : StaticBaseMatrix < T, 3, 3, ConcreteStorageClass > ()
- {
- // do some initialization
- }
-
- void assign(const OtherClass < T, 3, 3 >& other)
- {
- // do something
- }
-
-};
-
-int main()
-{
- MyClass < double, 3, 3, MyStorage > foo;
-}
-
-template< typename CharT, int N, typename Traits >
-inline std::basic_ostream < CharT,Traits >& FWStreamOut(std::basic_ostream < CharT,Traits >& os,
- const W::S < CharT,N,Traits >& s)
-{
- return operator << < CharT, N, Traits, char, std::char_traits < char > > ( os, s );
-}
-
-struct foo {
- type1 < int& > bar;
-};
-struct foo {
- type1 < int const > bar;
-};
-
-
-template< int i > void f();
-template< int i > void g() {
- f < i - 1 > ();
- f < i > ();
- f < i + 1 > ();
- f < bar() > ();
-}
-void h() {
- g < 42 > ();
-}
-
-#include <vector>
-std::vector < int > A(2);
-std::vector < int > B;
-std::vector < int > C(2);
-std::vector < int > D;
-
-template< class T > struct X { template< class U > void operator ()(U); };
-
-template< class T > class Y { template< class V > void f(V); };
-
-void (* foobar)(void) = NULL;
-std::vector < void (*)(void) > functions;
-
-#define MACRO( a ) a
-template< typename = int > class X;
-MACRO ( void f( X < >& x ) );
-void g( X < >& x );
-
-#include <vector>
-typedef std::vector < std::vector < int > > Table; // OK
-typedef std::vector < std::vector < bool > > Flags; // Error
-
-void func(List < B > = default_val1);
-void func(List < List < B > > = default_val2);
-
-BLAH < (3.14>=42) > blah;
-bool X = j < 3 > >1;
-
-void foo()
-{
- A < (X>Y) > a;
- a = static_cast < List < B > > (ld);
-}
-
-template< int i > class X { /* ... */ };
-X<1>2>x1; // Syntax error.
-X < (1>2) > x2; // Okay.
-
-template< class T > class Y { /* ... */ };
-Y < X < 1 > > x3; // Okay, same as "Y<X<1> > x3;".
-Y < X < (6 >> 1) > > x4;
-
-
-template< typename T >
-int
-myFunc1(typename T::Subtype val);
-
-int
-myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30103-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30103-templates.cpp
deleted file mode 100644
index 19d12ef7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30103-templates.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-#include <list>
-#include <map>
-#include <vector>
-
-#define MACRO(T) f<T>()
-
-class MyClass
-{
-public:
- std::map<int, bool>someData;
- std::map<int, std::list<bool> >otherData;
-};
-
-void foo()
-{
- List<byte>bob = new List<byte>();
-
-}
-
-A<B>foo;
-A<B,C>bar;
-A<B*>baz;
-A<B<C> >bay;
-
-void asd(void)
-{
- A<B>foo;
- A<B,C>bar;
- A<B*>baz;
- A<B<C> >bay;
- if (a < b && b > c)
- {
- a = b < c > 0;
- }
- if (a<bar()>c)
- {
- }
- a < up_lim() ? do_hi() : do_low;
- a[ a<b>c] = d;
-}
-
-template<typename T>class MyClass
-{
-
-}
-
-template<typename T>
-class MyClass
-{
-}
-
-template<typename A, typename B, typename C>class MyClass : myvar(0),
- myvar2(0)
-{
-
-}
-
-template<typename A, typename B, typename C>class MyClass
- : myvar(0),
- myvar2(0)
-{
-
-}
-
-
-static int max_value()
-{
- return (std :: numeric_limits<int>:: max )();
-}
-
-template<class Config_>
-priority_queue<Config_> :: ~priority_queue () {
-
-}
-
-template<class T>
-T test(T a) {
- return a;
-}
-
-int main() {
- int k,j;
- h g<int>;
- k=test<int>(j);
- return 0;
-}
-
-template<typename T, template<typename, unsigned int, unsigned int>class ConcreteStorageClass>
-class RotationMatrix
- : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
-{
-
-public:
-
- RotationMatrix()
- : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
- {
- // do some initialization
- }
-
- void assign(const OtherClass<T, 3, 3>& other)
- {
- // do something
- }
-
-};
-
-int main()
-{
- MyClass<double, 3, 3, MyStorage>foo;
-}
-
-template<typename CharT, int N, typename Traits>
-inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits>& os,
- const W::S<CharT,N,Traits>& s)
-{
- return operator<<<CharT, N, Traits, char, std::char_traits<char> >( os, s );
-}
-
-struct foo {
- type1<int&>bar;
-};
-struct foo {
- type1<int const>bar;
-};
-
-
-template<int i>void f();
-template<int i>void g() {
- f<i - 1>();
- f<i>();
- f<i + 1>();
- f<bar()>();
-}
-void h() {
- g<42>();
-}
-
-#include <vector>
-std::vector<int>A(2);
-std::vector<int>B;
-std::vector<int>C(2);
-std::vector<int>D;
-
-template<class T>struct X { template<class U>void operator()(U); };
-
-template<class T>class Y { template<class V>void f(V); };
-
-void (* foobar)(void) = NULL;
-std::vector<void (*)(void)>functions;
-
-#define MACRO( a ) a
-template<typename = int>class X;
-MACRO( void f( X<>& x ) );
-void g( X<>& x );
-
-#include <vector>
-typedef std::vector<std::vector<int> >Table; // OK
-typedef std::vector<std::vector<bool> >Flags; // Error
-
-void func(List<B> = default_val1);
-void func(List<List<B> > = default_val2);
-
-BLAH<(3.14 >= 42)>blah;
-bool X = j<3> > 1;
-
-void foo()
-{
- A<(X > Y)>a;
- a = static_cast<List<B> >(ld);
-}
-
-template<int i>class X { /* ... */ };
-X < 1 > 2 > x1; // Syntax error.
-X<(1 > 2)>x2; // Okay.
-
-template<class T>class Y { /* ... */ };
-Y<X<1> >x3; // Okay, same as "Y<X<1> > x3;".
-Y<X<(6 >> 1)> >x4;
-
-
-template<typename T>
-int
-myFunc1(typename T::Subtype val);
-
-int
-myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30122-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30122-sp_after_angle.cpp
deleted file mode 100644
index 8514bccb..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30122-sp_after_angle.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <typename T>
-struct foo {};
-
-Q_DECLARE_METATYPE( foo<int> )
-
-int bar( foo<int> );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30123-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30123-sp_after_angle.cpp
deleted file mode 100644
index 2da08a67..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30123-sp_after_angle.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <typename T>
-struct foo {};
-
-Q_DECLARE_METATYPE(foo<int>)
-
-int bar(foo<int>);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30124-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30124-sp_after_angle.cpp
deleted file mode 100644
index 88e659cd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30124-sp_after_angle.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <typename T>
-struct foo {};
-
-Q_DECLARE_METATYPE(foo<int> )
-
-int bar(foo<int> );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30125-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30125-sp_after_angle.cpp
deleted file mode 100644
index 2da08a67..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30125-sp_after_angle.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <typename T>
-struct foo {};
-
-Q_DECLARE_METATYPE(foo<int>)
-
-int bar(foo<int>);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30126-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30126-sp_after_angle.cpp
deleted file mode 100644
index 7710171e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30126-sp_after_angle.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <typename T>
-struct foo {};
-
-Q_DECLARE_METATYPE(foo<int> )
-
-int bar(foo<int> );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp
deleted file mode 100644
index bc25f6b4..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-// First comment
-// Second comment
-
-// First comment
-// Second comment
-
-// Issue #1134
-class MyClass : public BaseClass
-{
- //@{ BaseClass interface
-#if VERY_LONG_AND_COMPLICATED_DEFINE
- void foo();
-#endif // VERY_LONG_AND_COMPLICATED_DEFINE
- //@}
-};
-
-// Issue #1287
-void foo()
-{
-#if defined(SUPPORT_FEATURE)
- bar();
-#endif // SUPPORT_FEATURE
- // Handle error
- if (error != 0)
- {
- }
-
-#if defined(SUPPORT_FEATURE)
- bar();
-#endif // SUPPORT_FEATURE
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-
-# if defined(SUPPORT_FEATURE)
- bar();
-# endif // SUPPORT_FEATURE
- // SUPPORT_FEATURE
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-
-# if defined(SUPPORT_FEATURE)
- bar();
-# endif // SUPPORT_FEATURE
- // SUPPORT_FEATURE
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-
- #if defined(SUPPORT_FEATURE)
- bar();
- #endif /* SUPPORT_FEATURE
- SUPPORT_FEATURE */
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-}
-
-// ----- Some namespace scope --------------------------------------------------
-// ----- FooNamespace scope ----------------------------------------------------
-namespace FooNamespace
-{
-// ----- Some classes scope ----------------------------------------------------
-// ----- FooClass scope --------------------------------------------------------
-class FooClass
-{
- using FooUsing = FooTemplate<
- param1,
- param2
- >; // FooTemplate
- // Foo description
- void foo()
- {
- if (a == b)
- {
-// Col1 comment
-// Col1 comment
-// Col1 comment
- // Baz description
- baz(); // Baz trailing comment begin
- // Baz trailing comment ...
- // Baz trailing comment end
- } // if (a == b)
- // Bar description begin
- // Bar description ...
- // Bar description end
- bar(
- a,
- b
- ); // bar trailing comment begin
- // bar trailing comment ...
- // Baz trailing comment end
- /*! Baz description begin
- * Baz description ...
- * Baz description end */
- baz(a,
- b); /* Baz trailing comment begin
- Baz trailing comment ...
- Baz trailing comment end */
- // Bar description
- bar(); // bar trailing comment begin
- // bar trailing comment ...
- // Baz trailing comment end
-
- // Baz description
- baz();
- }
- void bar();
- // Many methods
- void baz();
-}; // FooClass
-// ----- FooClass scope --------------------------------------------------------
-
-// Many classes
-// Many classes
-// Many classes
-
-class BazClass
-{
- void foo();
-
-// Many methods
-// Many methods
-// Many methods
-
-// Overrides
-// Overrides
-//Overrides
-protected:
- // Bar description
- void baz();
- //Overrides
-}; // BazClass trailing comment begin
- // BazClass trailing comment ...
- // BazClass trailing comment end
-// ----- Some classes scope ----------------------------------------------------
-} // FooNamespace trailing comment begin
- // FooNamespace trailing comment end
-// ----- FooNamespace scope ----------------------------------------------------
-// BarNamespace description
-namespace BarNamespace
-{
-} // namespace BarNamespace
-// ----- Some namespace scope --------------------------------------------------
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp
deleted file mode 100644
index abddd42e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-// First comment
-// Second comment
-
-// First comment
-// Second comment
-
-// Issue #1134
-class MyClass : public BaseClass
-{
- //@{ BaseClass interface
-#if VERY_LONG_AND_COMPLICATED_DEFINE
- void foo();
-#endif // VERY_LONG_AND_COMPLICATED_DEFINE
- //@}
-};
-
-// Issue #1287
-void foo()
-{
-#if defined(SUPPORT_FEATURE)
- bar();
-#endif // SUPPORT_FEATURE
- // Handle error
- if (error != 0)
- {
- }
-
-#if defined(SUPPORT_FEATURE)
- bar();
-#endif // SUPPORT_FEATURE
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-
-# if defined(SUPPORT_FEATURE)
- bar();
-# endif // SUPPORT_FEATURE
- // SUPPORT_FEATURE
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-
-# if defined(SUPPORT_FEATURE)
- bar();
-# endif // SUPPORT_FEATURE
- // SUPPORT_FEATURE
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-
- #if defined(SUPPORT_FEATURE)
- bar();
- #endif /* SUPPORT_FEATURE
- SUPPORT_FEATURE */
- // Handle error
- // Handle error
- if (error != 0)
- {
- }
-}
-
-// ----- Some namespace scope --------------------------------------------------
-// ----- FooNamespace scope ----------------------------------------------------
-namespace FooNamespace
-{
-// ----- Some classes scope ----------------------------------------------------
-// ----- FooClass scope --------------------------------------------------------
-class FooClass
-{
- using FooUsing = FooTemplate<
- param1,
- param2
- >; // FooTemplate
- // Foo description
- void foo()
- {
- if (a == b)
- {
- // Col1 comment
- // Col1 comment
- // Col1 comment
- // Baz description
- baz(); // Baz trailing comment begin
- // Baz trailing comment ...
- // Baz trailing comment end
- } // if (a == b)
- // Bar description begin
- // Bar description ...
- // Bar description end
- bar(
- a,
- b
- ); // bar trailing comment begin
- // bar trailing comment ...
- // Baz trailing comment end
- /*! Baz description begin
- * Baz description ...
- * Baz description end */
- baz(a,
- b); /* Baz trailing comment begin
- Baz trailing comment ...
- Baz trailing comment end */
- // Bar description
- bar(); // bar trailing comment begin
- // bar trailing comment ...
- // Baz trailing comment end
-
- // Baz description
- baz();
- }
- void bar();
- // Many methods
- void baz();
-}; // FooClass
-// ----- FooClass scope --------------------------------------------------------
-
-// Many classes
-// Many classes
-// Many classes
-
-class BazClass
-{
- void foo();
-
- // Many methods
- // Many methods
- // Many methods
-
- // Overrides
- // Overrides
- //Overrides
-protected:
- // Bar description
- void baz();
- //Overrides
-}; // BazClass trailing comment begin
- // BazClass trailing comment ...
- // BazClass trailing comment end
-// ----- Some classes scope ----------------------------------------------------
-} // FooNamespace trailing comment begin
- // FooNamespace trailing comment end
-// ----- FooNamespace scope ----------------------------------------------------
-// BarNamespace description
-namespace BarNamespace
-{
-} // namespace BarNamespace
-// ----- Some namespace scope --------------------------------------------------
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30320-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30320-returns.cpp
deleted file mode 100644
index 1999355b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30320-returns.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#define foo1(x) { return x; }
-#define foo2(x) { return(x); }
-#define foo3(x) { return(x); }
-#define foo4(x) { return{x}; }
-#define foo5(x) { return {x}; }
-
-#define case1(x) return x
-#define case2(x) return(x)
-#define case3(x) return(x)
-#define case4(x) return{x}
-#define case5(x) return {x}
-
-void foo(int x)
-{
- switch (x)
- {
- case 1:
- return 1;
- case 2:
- return(2);
- case 3:
- return(3);
- case 4:
- return{4};
- case 5:
- return {5};
- default:
- return;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30321-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30321-returns.cpp
deleted file mode 100644
index 5dcdfafd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30321-returns.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#define foo1(x) { return x; }
-#define foo2(x) { return (x); }
-#define foo3(x) { return (x); }
-#define foo4(x) { return{x}; }
-#define foo5(x) { return {x}; }
-
-#define case1(x) return x
-#define case2(x) return (x)
-#define case3(x) return (x)
-#define case4(x) return{x}
-#define case5(x) return {x}
-
-void foo(int x)
-{
- switch (x)
- {
- case 1:
- return 1;
- case 2:
- return (2);
- case 3:
- return (3);
- case 4:
- return{4};
- case 5:
- return {5};
- default:
- return;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30322-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30322-returns.cpp
deleted file mode 100644
index 68218f60..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30322-returns.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#define foo1(x) { return x; }
-#define foo2(x) { return(x); }
-#define foo3(x) { return (x); }
-#define foo4(x) { return{x}; }
-#define foo5(x) { return{x}; }
-
-#define case1(x) return x
-#define case2(x) return(x)
-#define case3(x) return (x)
-#define case4(x) return{x}
-#define case5(x) return{x}
-
-void foo(int x)
-{
- switch (x)
- {
- case 1:
- return 1;
- case 2:
- return(2);
- case 3:
- return (3);
- case 4:
- return{4};
- case 5:
- return{5};
- default:
- return;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30323-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30323-returns.cpp
deleted file mode 100644
index 3360b493..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30323-returns.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#define foo1(x) { return x; }
-#define foo2(x) { return(x); }
-#define foo3(x) { return (x); }
-#define foo4(x) { return {x}; }
-#define foo5(x) { return {x}; }
-
-#define case1(x) return x
-#define case2(x) return(x)
-#define case3(x) return (x)
-#define case4(x) return {x}
-#define case5(x) return {x}
-
-void foo(int x)
-{
- switch (x)
- {
- case 1:
- return 1;
- case 2:
- return(2);
- case 3:
- return (3);
- case 4:
- return {4};
- case 5:
- return {5};
- default:
- return;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30324-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30324-returns.cpp
deleted file mode 100644
index d1fa77be..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30324-returns.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#define foo1(x) { return (x); }
-#define foo2(x) { return(x); }
-#define foo3(x) { return (x); }
-#define foo4(x) { return{x}; }
-#define foo5(x) { return {x}; }
-
-#define case1(x) return (x)
-#define case2(x) return(x)
-#define case3(x) return (x)
-#define case4(x) return{x}
-#define case5(x) return {x}
-
-void foo(int x)
-{
- switch (x)
- {
- case 1:
- return (1);
- case 2:
- return(2);
- case 3:
- return (3);
- case 4:
- return{4};
- case 5:
- return {5};
- default:
- return;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30325-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30325-returns.cpp
deleted file mode 100644
index 95e4f22c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30325-returns.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#define foo1(x) { return x; }
-#define foo2(x) { return x; }
-#define foo3(x) { return x; }
-#define foo4(x) { return{x}; }
-#define foo5(x) { return {x}; }
-
-#define case1(x) return x
-#define case2(x) return x
-#define case3(x) return x
-#define case4(x) return{x}
-#define case5(x) return {x}
-
-void foo(int x)
-{
- switch (x)
- {
- case 1:
- return 1;
- case 2:
- return 2;
- case 3:
- return 3;
- case 4:
- return{4};
- case 5:
- return {5};
- default:
- return;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30744-Issue_2170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30744-Issue_2170.cpp
deleted file mode 100644
index f1edafd8..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30744-Issue_2170.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-class Foo
-{
-public:
-Foo( int bar = 1 );
-Foo( const Foo & ) = delete;
-Foo &operator= ( const Foo & ) = delete;
-~Foo();
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30750-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30750-lambda.cpp
deleted file mode 100644
index 84bafe26..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30751-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30751-lambda.cpp
deleted file mode 100644
index be202237..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30770-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30770-lambda.cpp
deleted file mode 100644
index 44f277c0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30771-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30771-lambda.cpp
deleted file mode 100644
index 49c4d96f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30772-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30772-lambda.cpp
deleted file mode 100644
index 0c834f22..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30773-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30773-lambda.cpp
deleted file mode 100644
index 5389b7ec..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30774-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30774-lambda.cpp
deleted file mode 100644
index f91770c2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30775-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30775-lambda.cpp
deleted file mode 100644
index 9847c201..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/expected/cpp/30804-block_pointer.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30804-block_pointer.cpp
deleted file mode 100644
index fc44e403..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30804-block_pointer.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-__block __weak void (^weak_recurseTreeNodes)(int a);
-void (^strong_recurseTreeNodes)(int a) = ^(int a) {
-};
-
-the result file:
-Foo^ foo = dynamic_cast<Bar^>(bar);
-Foo* foo = dynamic_cast<Bar*>(bar);
-x = a ^ b;
-int main(Platform::Array<Platform::String^>^ /*args*/)
-{
-}
-
-void (*fun_ptr)(int) = &fun;
-
-typedef void (*foo)(void);
-void (*foo)(void);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30806-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30806-ptr-star.cpp
deleted file mode 100644
index 1a7586cc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30806-ptr-star.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-int dx = m_ClipBox.GetWidth() * GetZoom();
-
-m_ClipBox.m_Pos.y = PaintClipBox.y * GetZoom();
-
-int *i;
-char *i;
-
-int MyFunc(std::string &s, char *) {
- char *c = const_cast<char *>(s.c_str());
-}
-
-int YerFunc(std::string &s, char **) {
- char **c;
- int a = b[0] * c;
-}
-
-int *X(int *i, int *);
-
-int *i = &a;
-int *i = *b;
-int *i = &*c;
-
-int *Aclass::X(int *i, int *);
-
-class Aclass {
-int *X(int *i, int *);
-}
-extern "C" {
-int foo1(int *a);
-int foo2(sometype *a);
-}
-int bar1(int *a);
-int bar2(sometype *a);
-
-struct X
-{
- int *a; // 3:5
-
- int f()
- {
- return *b; // 7:8
- }
- int g()
- {
- return *c; // 11:8
- }
-};
-
-int *const i;
-int *static i;
-
-static auto Func1(Model *model) -> Color *;
-static auto Func1(Model *model) -> Color * {
- return nullptr;
-}
-
-auto Func2(Model *model) -> Color *const;
-auto Func2(Model *model) -> Color *const {
- return nullptr;
-}
-
-auto Func3(Model *model) -> Color **;
-auto Func3(Model *model) -> Color ** {
- return nullptr;
-}
-
-auto Func4(Model *model) -> Color**const;
-auto Func4(Model *model) -> Color **const {
- return nullptr;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30807-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30807-ptr-star.cpp
deleted file mode 100644
index f7ee88f7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30807-ptr-star.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-int dx = m_ClipBox.GetWidth() * GetZoom();
-
-m_ClipBox.m_Pos.y = PaintClipBox.y * GetZoom();
-
-int *i;
-char *i;
-
-int MyFunc(std::string& s, char*) {
- char *c = const_cast<char*>(s.c_str());
-}
-
-int YerFunc(std::string& s, char**) {
- char **c;
- int a = b[0] * c;
-}
-
-int* X(int *i, int*);
-
-int *i = &a;
-int *i = *b;
-int *i = &*c;
-
-int* Aclass::X(int *i, int*);
-
-class Aclass {
-int* X(int *i, int*);
-}
-extern "C" {
-int foo1(int *a);
-int foo2(sometype *a);
-}
-int bar1(int *a);
-int bar2(sometype *a);
-
-struct X
-{
- int *a; // 3:5
-
- int f()
- {
- return *b; // 7:8
- }
- int g()
- {
- return *c; // 11:8
- }
-};
-
-int*const i;
-int*static i;
-
-static auto Func1(Model *model) -> Color*;
-static auto Func1(Model *model) -> Color* {
- return nullptr;
-}
-
-auto Func2(Model *model) -> Color*const;
-auto Func2(Model *model) -> Color* const {
- return nullptr;
-}
-
-auto Func3(Model *model) -> Color**;
-auto Func3(Model *model) -> Color** {
- return nullptr;
-}
-
-auto Func4(Model *model) -> Color**const;
-auto Func4(Model *model) -> Color** const {
- return nullptr;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30810-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30810-ptr-star.cpp
deleted file mode 100644
index 1309beec..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30810-ptr-star.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-int dx = m_ClipBox.GetWidth() * GetZoom();
-
-m_ClipBox.m_Pos.y = PaintClipBox.y * GetZoom();
-
-int *i;
-char *i;
-
-int MyFunc(std::string& s, char *)
-{
- char *c = const_cast<char *>(s.c_str());
-}
-
-int YerFunc(std::string& s, char **)
-{
- char **c;
- int a = b[0] * c;
-}
-
-int *X(int *i, int *);
-
-int *i = &a;
-int *i = *b;
-int *i = &*c;
-
-int *Aclass::X(int *i, int *);
-
-class Aclass {
- int *X(int *i, int *);
-}
-extern "C" {
-int foo1(int *a);
-int foo2(sometype *a);
-}
-int bar1(int *a);
-int bar2(sometype *a);
-
-struct X
-{
- int *a; // 3:5
-
- int f()
- {
- return (*b); // 7:8
- }
- int g()
- {
- return (*c); // 11:8
- }
-};
-
-int *const i;
-int *static i;
-
-static auto Func1(Model *model) -> Color *;
-static auto Func1(Model *model) -> Color *
-{
- return(nullptr);
-}
-
-auto Func2(Model *model) -> Color *const;
-auto Func2(Model *model) -> Color *const
-{
- return(nullptr);
-}
-
-auto Func3(Model *model) -> Color **;
-auto Func3(Model *model) -> Color **
-{
- return(nullptr);
-}
-
-auto Func4(Model *model) -> Color**const;
-auto Func4(Model *model) -> Color **const
-{
- return(nullptr);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30811-misc3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30811-misc3.cpp
deleted file mode 100644
index 68375327..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30811-misc3.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// When constructing an object there should not be any space between the & and the variable name:
-
-MyClass my1(foo, &bar);
-MyClass my2(foo, bar);
-MyClass my3(foo, bar + 3);
-MyClass my4(42);
-MyClass my5(foo(), bar);
-MyClass my6(int foo, int& bar);
-MyClass my7(const int foo, int& bar);
-
-
-//When using references inside of casts there is also an additional space after the &:
-
-MyClass& myInst = static_cast<MyClass&>(otherInst);
-
-
-// When using the qt-specific signals and slots the pointer star is separated from the type with a space:
-
-connect(&mapper, SIGNAL(mapped(QWidget*)), this, SLOT(onSomeEvent(QWidget*)));
-
-extern int select(int __nfds, fd_set* __restrict __readfds, fd_set* __restrict __writefds, fd_set* __restrict __exceptfds, struct timeval* __restrict __timeout);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30922-variadic-template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30922-variadic-template.h
deleted file mode 100644
index cf213653..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30922-variadic-template.h
+++ /dev/null
@@ -1,10 +0,0 @@
-template<int __i, int... _Indexes, typename _IdxHolder, typename ...
- _Elements>
-struct __index_holder_impl<__i, __index_holder<_Indexes...>,
- _IdxHolder, _Elements...>
-{
- typedef typename __index_holder_impl<__i + 1,
- __index_holder<_Indexes...,
- __i>,
- _Elements...>::type type;
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30944-sp_paren_comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30944-sp_paren_comma.cpp
deleted file mode 100644
index 0cec2022..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30944-sp_paren_comma.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-a(, 1);
-typedef SLIST_HEAD(, foo) foo_list_t;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31600-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31600-parameter-packs.cpp
deleted file mode 100644
index 73940d29..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31600-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A)+B) ...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X) ...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31601-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31601-parameter-packs.cpp
deleted file mode 100644
index 6153026f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31601-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A)+B)...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B )... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X )...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31602-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31602-parameter-packs.cpp
deleted file mode 100644
index 4fceb423..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31602-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof ...(A)+B)...>
-{
- foo1() {
- int x = sizeof ...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof ...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31603-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31603-parameter-packs.cpp
deleted file mode 100644
index 8de4cbfe..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31603-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A)+B)...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31604-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31604-parameter-packs.cpp
deleted file mode 100644
index a55fb45a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31604-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A)+B)...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31605-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31605-parameter-packs.cpp
deleted file mode 100644
index 544d9aa6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31605-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A)+B)...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31606-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31606-parameter-packs.cpp
deleted file mode 100644
index ae0537ca..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31606-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int ... B>
-struct foo1 : foo1<A ..., (sizeof...(A)+B)...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int ... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args ...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args* ...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&& ...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args ...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args* ...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&& ...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31607-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31607-parameter-packs.cpp
deleted file mode 100644
index ce549a69..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31607-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A)+B)...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int... B >
-struct foo2 : foo2 < A..., ( sizeof ... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args *... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args &&... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args *... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args &&... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31608-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31608-parameter-packs.cpp
deleted file mode 100644
index 0f55018c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31608-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof... (A)+B)...>
-{
- foo1() {
- int x = sizeof... (A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof... (X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ... ( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ... ( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31609-parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31609-parameter-packs.cpp
deleted file mode 100644
index cd8a5614..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31609-parameter-packs.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-template<typename ... A, int... B>
-struct foo1 : foo1<A..., (sizeof...(A)+B)...>
-{
- foo1() {
- int x = sizeof...(A);
- }
-};
-
-template<int... X> int bar1()
-{
- auto s = sizeof...(X);
- chomp(X)...;
- return X+...;
-}
-
-template<class R, typename ... Args>
-void call1v(R (*fp)(Args...));
-
-template<class R, typename ... Args>
-void call1p(R (*fp)(Args*...));
-
-template<class R, typename ... Args>
-void call1r(R (*fp)(Args&&...));
-
-template<class R, typename ... Args>
-struct invoke1v : invoke<R (*)(Args...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1p : invoke<R (*)(Args*...)>
-{
-};
-
-template<class R, typename ... Args>
-struct invoke1r : invoke<R (*)(Args&&...)>
-{
-};
-
-template < typename ... A, int ... B >
-struct foo2 : foo2 < A ..., ( sizeof ...( A ) + B ) ... >
-{
- foo2() {
- int x = sizeof ...( A );
- }
-};
-
-template < int ... X > int bar2()
-{
- auto s = sizeof ...( X );
- chomp( X ) ...;
- return X + ...;
-}
-
-template < class R, typename ... Args >
-void call2v( R ( *fp )( Args ... ) );
-
-template < class R, typename ... Args >
-void call2p( R ( *fp )( Args * ... ) );
-
-template < class R, typename ... Args >
-void call2r( R ( *fp )( Args && ... ) );
-
-template < class R, typename ... Args >
-struct invoke2v : invoke < R ( * )( Args ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2p : invoke < R ( * )( Args * ... ) >
-{
-};
-
-template < class R, typename ... Args >
-struct invoke2r : invoke < R ( * )( Args && ... ) >
-{
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31661-Issue_3097.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31661-Issue_3097.cpp
deleted file mode 100644
index 336f8eaf..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31661-Issue_3097.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-void foo()
-{
- for( unsigned p = 0; p < np;
- ++p )
- {
-
- double* o = bar[p];
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33018-byref-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33018-byref-2.cpp
deleted file mode 100644
index 665cc749..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33018-byref-2.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-int & aa(int & x,int & b); // Sp Before Byref Func, Sp After Byref Func, Sp Before Byref, Sp After Byref
-int aa(int & x,int &) // Sp Before Byref, Sp Before Unnamed Byref, Sp After Byref
-{
- b = aa(x,b);
- c = aa(& y,& d); // Sp Addr
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33058-stdcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33058-stdcall.cpp
deleted file mode 100644
index a2353599..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33058-stdcall.cpp
+++ /dev/null
@@ -1,3 +0,0 @@
-// test for bug # 633
-typedef void (*func)();
-typedef void (__stdcall *func)();
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33081-namespace_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33081-namespace_namespace.cpp
deleted file mode 100644
index cf6f921e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33081-namespace_namespace.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace hw { namespace stm32 {
-
-class RTC {
-};
-
-}} // namespace hw::stm32
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33093-bug_i_322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33093-bug_i_322.cpp
deleted file mode 100644
index 773f909e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33093-bug_i_322.cpp
+++ /dev/null
@@ -1 +0,0 @@
-STDMETHOD(GetValues)(BSTR bsName, REFDATA** pData);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33203-bug_1288.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33203-bug_1288.cpp
deleted file mode 100644
index 94444cf9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33203-bug_1288.cpp
+++ /dev/null
@@ -1 +0,0 @@
-friend std::ostream& operator<<(std::ostream& os, const ScriptingObjectPtr& o);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34167-nl_func_call_args_multi_line_ignore_closures.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34167-nl_func_call_args_multi_line_ignore_closures.cpp
deleted file mode 100644
index 4363833f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34167-nl_func_call_args_multi_line_ignore_closures.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-methodCall([] {
- Log();
-});
-
-funcCall(
- match ( [ & ]( const ContentProps &props) {
- return PairingCmpnt()
-})
- );
-
-match( [ & ]( const ContentProps &props) {
- return PairingCmpnt()
-});
-
-
-outerMethodCall(
- methodCall(^{
- // action
-}, x)
- );
-
-outerMethodCall(
- x,
- methodCall(^{
- // action
-}, y)
- );
-
-options({
- .cornerRadius = CGFLOAT_MAX,
-});
-
-mapToPtr([&](const LeftAddOn::Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr(x, [&](const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr([&](const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-methodCall(
- arg1,
- arg2,
- arg3
- );
-
-methodCall(arg1, arg2, arg3);
-
-methodCall(
- arg1, []{
- variant.action.send(Cmpnt);
-}, arg3
- );
-
-methodCall(
- arg1, {
- .x = 10,
-},
- arg3
- );
-
-methodCall({
- .x = 10,
-},
- arg3);
-
-methodCall(
- arg1, {
- .x = 10,
-}
- );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34203-i1516.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34203-i1516.cpp
deleted file mode 100644
index d415b945..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34203-i1516.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-void myClass::foo() {
-
- int bar;
- std::string str;
-
-
- DbConfig::configuredDatabase()->apply(db);
-
- std::string str2;
-
- std::string str2;
-
-
- f();
- DbConfig::configuredDatabase()->apply(db);
-
- int bar;
- std::string str;
-
- std::string str2;
-
-
- f();
-} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34209-lambda_selfcalling.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34209-lambda_selfcalling.cpp
deleted file mode 100644
index e37674a1..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34209-lambda_selfcalling.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-void f(){
- int i = 0;
- const auto j = [](int k){
- return k+2;
- } (i);
-
- const auto l = ([](int k){
- return k+2;
- })(i);
-} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34280-UNI-29935.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34280-UNI-29935.cpp
deleted file mode 100644
index 8b13bd9c..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34280-UNI-29935.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-void Foo1(BarType& x, void BarFunc());
-
-void Bar()
-{
- void BarFunc2(BarType& x);
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp
deleted file mode 100644
index 272865bc..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-int main()
-{
- int a0[][] = {{ 1 }};
- unknown_type b0 = {{ 2 }};
- auto c0 = unknown_type {{ 3 }};
- auto d0 = func( {{ 3 }} );
- auto e0 = func( unknown_type {{ 3 }} );
-
- int a1[][] = { {1} };
- unknown_type b1 = { {2} };
- auto c1 = unknown_type { {3} };
- auto d1 = func({ {3} });
- auto e1 = func(unknown_type { {3} });
-
- int a2[][] = {{1}};
- unknown_type b2 = {{2}};
- auto c2 = unknown_type {{3}};
- auto d2 = func({{3}});
- auto e2 = func(unknown_type {{3}});
-
- return 1;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp
deleted file mode 100644
index 395906c7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-int main()
-{
- int a0[][] = {{ 1 }};
- unknown_type b0 = {{ 2 }};
- auto c0 = unknown_type{{ 3 }};
- auto d0 = func( {{ 3 }} );
- auto e0 = func( unknown_type{{ 3 }} );
-
- int a1[][] = { {1} };
- unknown_type b1 = { {2} };
- auto c1 = unknown_type{ {3} };
- auto d1 = func({ {3} });
- auto e1 = func(unknown_type{ {3} });
-
- int a2[][] = {{1}};
- unknown_type b2 = {{2}};
- auto c2 = unknown_type{{3}};
- auto d2 = func({{3}});
- auto e2 = func(unknown_type{{3}});
-
- return 1;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp
deleted file mode 100644
index 7d3ae3a2..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-int main()
-{
- int a0[][] = { { 1 }};
- unknown_type b0 = { { 2 }};
- auto c0 = unknown_type { { 3 }};
- auto d0 = func( { { 3 }} );
- auto e0 = func( unknown_type { { 3 }} );
-
- int a1[][] = { { 1} };
- unknown_type b1 = { { 2} };
- auto c1 = unknown_type{ { 3} };
- auto d1 = func({ { 3} });
- auto e1 = func(unknown_type{ { 3} });
-
- int a2[][] = { { 1}};
- unknown_type b2 = { { 2}};
- auto c2 = unknown_type{ { 3}};
- auto d2 = func({ { 3}});
- auto e2 = func(unknown_type{ { 3}});
-
- return 1;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp
deleted file mode 100644
index 92204813..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-int main()
-{
- int a0[][] = {{1 }};
- unknown_type b0 = {{2 }};
- auto c0 = unknown_type {{3 }};
- auto d0 = func( {{3 }} );
- auto e0 = func( unknown_type {{3 }} );
-
- int a1[][] = {{1} };
- unknown_type b1 = {{2} };
- auto c1 = unknown_type{{3} };
- auto d1 = func({{3} });
- auto e1 = func(unknown_type{{3} });
-
- int a2[][] = {{1}};
- unknown_type b2 = {{2}};
- auto c2 = unknown_type{{3}};
- auto d2 = func({{3}});
- auto e2 = func(unknown_type{{3}});
-
- return 1;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/39001-GH-2091.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/39001-GH-2091.cpp
deleted file mode 100644
index 6e32d683..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/39001-GH-2091.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <AClass.h>
-#include <SomeClass.h>
-#include <TheClass.h>
-#include <iostream>
-#include <vector>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60006-UNI-2049.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60006-UNI-2049.cpp
deleted file mode 100644
index 4609fbea..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60006-UNI-2049.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// Pointer mark should be formatted (WINAPI* SetXX)
-typedef DWORD (WINAPI* SetDllDirectory)(LPCSTR);
-// Pointer mark should be formatted (EXCEPTION_POINTERS* pExt)
-static LONG WINAPI CustomUnhandledExceptionFilter(EXCEPTION_POINTERS* pExInfo)
-{
- if (EXCEPTION_BREAKPOINT == pExInfo->ExceptionRecord->ExceptionCode) // Breakpoint. Don't treat this as a normal crash.
- return EXCEPTION_CONTINUE_SEARCH;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10013-620_getset-brace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10013-620_getset-brace.cs
deleted file mode 100644
index d4652c5f..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10013-620_getset-brace.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-class C
-{
- float V
- {
- get
- {
- return _v;
- }
- set { _v = value; } }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60043-UNI-36862.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60043-UNI-36862.cs
deleted file mode 100644
index cb3cb448..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60043-UNI-36862.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-public unsafe struct QueryKeyNameCommand : IInputDeviceCommandInfo
-{
- public string ReadKeyName()
- {
- fixed(QueryKeyNameCommand* thisPtr = &this)
- {
- return StringHelpers.ReadStringFromBuffer(new IntPtr(thisPtr->nameBuffer), kMaxNameLength);
- }
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40010-template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40010-template.d
deleted file mode 100644
index 33a4155b..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40010-template.d
+++ /dev/null
@@ -1,30 +0,0 @@
-
-template Foo(T, U)
-{
- class Bar { }
-
- T foo(T t, U u)
- {
- }
-
- T abc;
-
- typedef T *FooType;
- typedef Tte **FooType0;
- typedef int *FooType1;
- typedef const char FooType2;
-}
-
-alias Foo!(int, char) f;
-f.Bar b;
-f.foo(1, 2);
-f.abc = 3;
-
-to!string(10.0);
-TFoo!int.t x;
-
-class Abc(T)
-{
- T t;
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50035-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50035-sort_import.m
deleted file mode 100644
index f8a42242..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50035-sort_import.m
+++ /dev/null
@@ -1,32 +0,0 @@
-// should be ddd, eee, fff
-#import "ddd"
-#import "eee"
-#import "fff"
-
-#import "aaa"
-#import "ccc"
-// should be just bbb
-#import "bbb"
-
-#import "sort_import+internal.h"
-#import "sort_import+public.h"
-#import "sort_import.h"
-
-#import <UIKit/UIKit.h>
-#import "Action+Internal.h"
-#import "Action+Public.h"
-#import "Action.h"
-
-#include "Test+Internal.h"
-#include "Test.h"
-
-#import "Something.h"
-#import "Something_Internal.h"
-#import "Something_Public.h"
-
-#import <KKK>
-#import "AAA"
-#import "BBB.h"
-#include "CCC.h"
-#include "DDD"
-#import "EEE.h"
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50070-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50070-blocks.m
deleted file mode 100644
index 5b8e5d35..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50070-blocks.m
+++ /dev/null
@@ -1,15 +0,0 @@
-int *(^blkReturningPointer)(int) = ^int *(int a) {
- return a + 1;
-};
-
-void (^blk2)(int *) = ^(int *b) {
- *b = 1;
-};
-
-
-int (^oneFrom)(int) = ^(int anInt) {
- return anInt - 1;
-};
-
-// this should not be flagged as OC_BLOCK_CARET
-int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50071-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50071-blocks.m
deleted file mode 100644
index 5b8e5d35..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50071-blocks.m
+++ /dev/null
@@ -1,15 +0,0 @@
-int *(^blkReturningPointer)(int) = ^int *(int a) {
- return a + 1;
-};
-
-void (^blk2)(int *) = ^(int *b) {
- *b = 1;
-};
-
-
-int (^oneFrom)(int) = ^(int anInt) {
- return anInt - 1;
-};
-
-// this should not be flagged as OC_BLOCK_CARET
-int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50072-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50072-blocks.m
deleted file mode 100644
index 5b8e5d35..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50072-blocks.m
+++ /dev/null
@@ -1,15 +0,0 @@
-int *(^blkReturningPointer)(int) = ^int *(int a) {
- return a + 1;
-};
-
-void (^blk2)(int *) = ^(int *b) {
- *b = 1;
-};
-
-
-int (^oneFrom)(int) = ^(int anInt) {
- return anInt - 1;
-};
-
-// this should not be flagged as OC_BLOCK_CARET
-int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50073-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50073-blocks.m
deleted file mode 100644
index 9a08c6a0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50073-blocks.m
+++ /dev/null
@@ -1,15 +0,0 @@
-int *(^blkReturningPointer)(int) = ^ int *(int a) {
- return a + 1;
-};
-
-void (^blk2)(int *) = ^ (int *b) {
- *b = 1;
-};
-
-
-int (^oneFrom)(int) = ^ (int anInt) {
- return anInt - 1;
-};
-
-// this should not be flagged as OC_BLOCK_CARET
-int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50074-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50074-blocks.m
deleted file mode 100644
index cb523489..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50074-blocks.m
+++ /dev/null
@@ -1,15 +0,0 @@
-int *(^blkReturningPointer)(int) = ^ int *(int a) {
- return a + 1;
-};
-
-void (^blk2)(int *) = ^ (int *b) {
- *b = 1;
-};
-
-
-int (^oneFrom)(int) = ^ (int anInt) {
- return anInt - 1;
-};
-
-// this should not be flagged as OC_BLOCK_CARET
-int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50075-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50075-blocks.m
deleted file mode 100644
index 5b8e5d35..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50075-blocks.m
+++ /dev/null
@@ -1,15 +0,0 @@
-int *(^blkReturningPointer)(int) = ^int *(int a) {
- return a + 1;
-};
-
-void (^blk2)(int *) = ^(int *b) {
- *b = 1;
-};
-
-
-int (^oneFrom)(int) = ^(int anInt) {
- return anInt - 1;
-};
-
-// this should not be flagged as OC_BLOCK_CARET
-int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50076-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50076-blocks.m
deleted file mode 100644
index 5b8e5d35..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50076-blocks.m
+++ /dev/null
@@ -1,15 +0,0 @@
-int *(^blkReturningPointer)(int) = ^int *(int a) {
- return a + 1;
-};
-
-void (^blk2)(int *) = ^(int *b) {
- *b = 1;
-};
-
-
-int (^oneFrom)(int) = ^(int anInt) {
- return anInt - 1;
-};
-
-// this should not be flagged as OC_BLOCK_CARET
-int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50601-bug_i_477.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50601-bug_i_477.m
deleted file mode 100644
index 700d159d..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50601-bug_i_477.m
+++ /dev/null
@@ -1 +0,0 @@
-CGFloat fontSize = floorf([font pointSize] * [self tileContentScale] + 0.5);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m
deleted file mode 100644
index e423c05a..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m
+++ /dev/null
@@ -1,103 +0,0 @@
-mapToPtr(^(const LeftAddOn::Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr( x, ^ (const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr( ^ (const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr(
- arg1, ^ ( NSString * ) (const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-}, arg2
- );
-
-mapToPtr(arg1, ^ ( NSString *) (const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr( ^()(const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-}, arg2);
-
-
-
-methodCall(^{
- variant.action.send(Cmpnt);
-});
-
-methodCall(
- ^{
- variant.action.send(Cmpnt);
-}, x);
-
-
-methodCall( x, ^id (Cmpnt *c) {
- NSLog(@"Something");
-});
-
-methodCall( ^id (Cmpnt *c) {
- NSLog(@"Something");
-});
-
-methodCall( ^(Cmpnt *c) {
- NSLog(@"Something");
-});
-
-methodCall(
- ^ (Cmpnt *c) {
- NSLog(@"Something");
-}, y);
-
-methodCall(
- x, ^(Cmpnt *c) {
- NSLog(@"Something");
-}, y
- );
-
-
-methodCall(
- arg1,
- arg2,
- arg3
- );
-
-methodCall(arg1, arg2, arg3);
-
-methodCall(
- arg1,
- arg2, {
- .x = 10,
-}
- );
-
-methodCall(
- arg1, {
- .x = 10,
-},
- arg2
- );
-
-methodCall({
- .x = 10,
-},
- arg2);
-
-
-outerMethodCall(
- methodCall(^{
- // action
-},
- x)
- );
-
-outerMethodCall(
- methodCall(^{
- variant.action.send(Cmpnt);
-},
- x)
- );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-react_native.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-react_native.m
deleted file mode 100644
index 657e90d0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50630-react_native.m
+++ /dev/null
@@ -1,42 +0,0 @@
-#import "FOOAddressBookManager.h"
-#import <React/RCTBridge.h>
-#import <React/RCTEventDispatcher.h>
-
-/*
- * #define RCT_EXPORT_METHOD(method) \
- * - (void)__rct_export__##method { \
- * __attribute__((used, section("__DATA,RCTExport"))) \
- * static const char *__rct_export_entry__[] = { __func__, #method }; \
- * } \
- * - (void)method \
- */
-
-@interface FOOAddressBook : NSObject
-@end
-
-@implementation FOOAddressBookManager
-
-RCT_EXPORT_MODULE(FOOAddressBook)
-
-RCT_EXPORT_METHOD(getAddresses:(NSDictionary *) data callback:(RCTResponseSenderBlock) callback)
-{
- NSMutableArray *addresses = [[FOOAddressBook sharedInstance] getAddresses:data];
- if (addresses != nil)
- callback(@[[NSNull null], addresses]);
- else
- callback(@[@"getAddresses returned nil."]);
-}
-
-RCT_EXPORT_METHOD(getStatus:(RCTResponseSenderBlock) callback)
-{
- callback(@[[NSNull null], [[FOOAddressBook sharedInstance] getStatus]]);
-}
-
-RCT_EXPORT_METHOD(requestAccess:(RCTResponseSenderBlock) callback)
-{
- [[FOOAddressBook sharedInstance] requestAccess:^(NSString *status) {
- callback(@[[NSNull null], status]);
- }];
-}
-
-@end
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60003-tags.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60003-tags.pawn
deleted file mode 100644
index 038101c3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60003-tags.pawn
+++ /dev/null
@@ -1,69 +0,0 @@
-
-enum token
-{
- t_type,
- Rational:t_value,
- t_word[20],
-}
-
-
-new bool:flag = true; /* "flag" can only hold "true" or "false" */
-const error:success = 0;
-const error:fatal= 1;
-const error:nonfatal = 2;
-error:errno = fatal;
-
-native printf(const format[], { Float, _ }: ...);
-
-new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
- 1.00 : (float ( p_resists[id][RESISTIDX_FIRE] ) / float ( RESIST_MAX_VALUE ));
-
-xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
- floatround ( float ( j / 20 ) * XP_PER_LEVEL_LT );
-
-
-main()
-{
- new Float:xpos;
- new Float:ypos;
-
- new apple:elstar; /* variable "elstar" with tag "apple" */
- new orange:valencia; /* variable "valencia" with tag "orange" */
- new x; /* untagged variable "x" */
- elstar = valencia; /* tag mismatch */
- elstar = x; /* tag mismatch */
- x = valencia; /* ok */
-
- new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
- 1.00 : (float( p_resists[id][RESISTIDX_FIRE] ) / float( RESIST_MAX_VALUE ));
-
- xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
- floatround( float( j / 20 ) * XP_PER_LEVEL_LT );
-
- if (apple:valencia < elstar) {
- valencia = orange:elstar;
- }
-
-some_label: // target for a goto
- #pragma rational Float
-
- new Float:limit = -5.0;
- new Float:value = -1.0;
- if (value < limit) {
- printf("Value %f below limit %f\n", _:value, _:limit);
- } else {
- printf("Value above limit\n");
- }
- goto some_label;
-}
-
-foo()
-{
- if (ape) {
- dofunc(1);
- } else if (monkey) {
- dofunc(2);
- } else {
- dofunc(3);
- }
-} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60004-enum.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60004-enum.pawn
deleted file mode 100644
index c2bc8b62..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60004-enum.pawn
+++ /dev/null
@@ -1,91 +0,0 @@
-
-enum rect { left, top, right, bottom }
-
-enum boot (<<= 1) { a=1, b, c, d }
-
-enum booty (<<= 1)
-{
- a=1, b, c, d
-}
-
-forward addvector(a[], const b[], size);
-
-enum message {
- text[40 char],
- priority
-}
-
-enum token
-{
- t_type,
- Rational:t_value,
- t_word[20],
-}
-
-new bool:flag = true;
-
-increment(&value, incr=1)
-{
- value += incr;
-}
-
-new msg[message] = { !"My Text", 1 };
-main()
-{
- new my_rect[rect];
-
- my_rect[left] = 10;
- my_rect[right] = 100;
- my_rect[top] = 10;
- my_rect[bottom] = 100;
-
- for (new i = 0; rect:i < rect; i++) {
- my_rect[rect:i] *= 2;
- }
-
- new vect[3] = { 1, 2, 3 };
- addvector(vect, { 5, 5, 5 }, 3);
-
- new Float:xpos;
- new Float:ypos;
-
- new a = 5;
- increment(a);
- increment(a, _);
- increment(a, 1);
-}
-
-sum(a, b)
-{
- return a + b;
-}
-
-power(x, y)
-{
- /* returns x raised to the power of y */
- assert y >= 0;
- new r = 1;
- for (new i = 0; i < y; i++) {
- r *= x;
- }
- return r;
-}
-
-addvector(a[], const b[], size)
-{
- for (new i = 0; i < size; i++) {
- a[i] += b[i];
- }
-}
-
-stock remove_filepath(szFilePath[], szFile[], pMax)
-{
- new len = strlen(szFilePath);
-
- while ((--len >= 0) && (szFilePath[len] != '/') &&
- (szFilePath[len] != '\'')) { }
-
- copy(szFile, pMax, szFilePath[len + 1]);
-
- return;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60100-Issue_2586.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60100-Issue_2586.pawn
deleted file mode 100644
index d93360ab..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60100-Issue_2586.pawn
+++ /dev/null
@@ -1,4 +0,0 @@
-static stock const data[][] = {
- {0b00000011001111000010011100000000, 0b00000011001111000010011100000000},
- {0b00000011001111000010011100000000, 0b00000011001111000010011100000000}
-}; \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21000-mysql.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21000-mysql.sqc
deleted file mode 100644
index f8b6004e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21000-mysql.sqc
+++ /dev/null
@@ -1,45 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-
-/*----------------------------------------------------------------*/
-EXEC SQL INCLUDE SQLCA;
-short sqlcode;
-
-EXEC SQL BEGIN DECLARE SECTION;
- int host_a;
- double host_b;
- char host_c;
-EXEC SQL END DECLARE SECTION;
-
-EXEC SQL DECLARE csr1 CURSOR FOR
- SELECT a, b, c
- FROM table1
- WHERE x = :hostvar1;
-
-/*----------------------------------------------------------------*/
-void main(void)
-{
- hostvar1 = 42;
-
- EXEC SQL OPEN csr1;
- if (sqlcode < 0)
- {
- exit(0);
- }
-
- while (rc >= 0 && rc != 100)
- {
- EXEC SQL FETCH csr1 INTO :host_a, :host_b, :host_c;
- printf("Fetch %d, %lf, %s\n", host_a, host_b, host_c);
- }
-
- EXEC SQL CLOSE csr1;
-}
-
-void foo(void)
-{
- strcpy(demoquery1, "some SQL statement");
- EXEC SQL prepare demo3id from :demoquery1;
- /* a comment */
- EXEC SQL declare demo3cursor cursor for demo3id;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21001-sta-select.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21001-sta-select.sqc
deleted file mode 100644
index 1142c3b9..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/21001-sta-select.sqc
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************
-**
-** A sample program that demonstrates the use of Static embedded SQL.
-** Before compiling this program, be sure you have created a table
-** called video and inserted some tuples in it.
-**
-********************************************************/
-#include <stdio.h>
-
-/* sqlca: is the sql communications area. All error codes
- * are returned from db2 in that structure which is filled
- * each time an interaction with db2 takes place.
- */
-
-EXEC SQL INCLUDE SQLCA; /* SQL communication area structure */
-
-EXEC SQL BEGIN DECLARE SECTION; /* declare host variables */
- char db_name[8]; /* database name */
- char video_title[30]; /* title of the video */
- short video_id; /* serial number */
- char director[20]; /* director name */
-EXEC SQL END DECLARE SECTION;
-
-/* These lines are redundant here because the default
- * action is to continue. They just show the kind of
- * errors that could arise and one way to control them.
- */
-
-EXEC SQL WHENEVER SQLWARNING CONTINUE; /* sqlca.sqlcode > 0 */
-EXEC SQL WHENEVER SQLERROR CONTINUE; /* sqlca.sqlcode < 0 */
-EXEC SQL WHENEVER NOT FOUND CONTINUE; /* sqlca.sqlcode = 100 */
- /* sqlca.sqlcode = 0 (no error) */
-
-void main()
-{
- strcpy(db_name, "csc343h");
-
-/* C variables are preceded by a colon when they are passed to DB2 */
-
- EXEC SQL CONNECT TO :db_name;
-
- if (sqlca.sqlcode != 0)
- {
- printf("Connect failed!: reason %ld\n", sqlca.sqlcode);
- exit(1);
- }
-
-/* cursor delcaration. Have to declare a cursor each time you
- * want tuples back from db2
- */
-
- EXEC SQL DECLARE c1 CURSOR FOR
- SELECT video_title
- FROM video;
-
-/* you have to open the cursor in order to get tuples back */
-
- EXEC SQL OPEN c1;
-
- do
- {
- /* fetch tuples from the cursor. This will execute the statement
- * the cursor implements and will return the results */
-
- EXEC SQL FETCH c1 into :video_title;
- if (SQLCODE != 0)
- {
- break; /* SQLCODE refers to sqlca.sqlcode */
- }
- /* host variables should have ':' prefix when they are used in DB2 commands */
-
- printf("%s\n", video_title);
- } while (1);
- EXEC SQL CLOSE c1;
- EXEC SQL CONNECT RESET;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3097.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3097.cpp
deleted file mode 100644
index 04119de3..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3097.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-void foo()
-{
- for( unsigned p = 0; p < np;
- ++p )
- {
- double* o = bar[p];
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-330.cpp
deleted file mode 100644
index 0ba91720..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-330.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-\
-#define CTOR(i, _) : \
- T(X()), \
- y() \
-{ }
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/brace_brace_init_lst.cpp
deleted file mode 100644
index ef8b96ed..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/brace_brace_init_lst.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-int main()
-{
- int a0[][] = {{ 1 }};
- unknown_type b0 = {{ 2 }};
- auto c0 = unknown_type {{ 3 }};
- auto d0 = func( {{ 3 }} );
- auto e0 = func( unknown_type {{ 3 }} );
-
- int a1[][] = { {1} };
- unknown_type b1 = { {2} };
- auto c1 = unknown_type{ {3} };
- auto d1 = func({ {3} });
- auto e1 = func(unknown_type{ {3} });
-
- int a2[][] = {{1}};
- unknown_type b2 = {{2}};
- auto c2 = unknown_type{{3}};
- auto d2 = func({{3}});
- auto e2 = func(unknown_type{{3}});
-
- return 1;
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref-2.cpp
deleted file mode 100644
index 4666e464..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref-2.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-int&aa(int&x,int&b); // Sp Before Byref Func, Sp After Byref Func, Sp Before Byref, Sp After Byref
-int aa(int&x,int&) // Sp Before Byref, Sp Before Unnamed Byref, Sp After Byref
-{
- b = aa(x,b);
- c = aa(&y,&d); // Sp Addr
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/gcc_case_ellipsis.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/gcc_case_ellipsis.cpp
deleted file mode 100644
index b188c210..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/gcc_case_ellipsis.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-void f(int i)
-{
- switch(i)
- {
- case 1 ... 2:
- {
- break;
- }
- case 3 ... 5:
- break;
-
- default:
- break
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1516.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1516.cpp
deleted file mode 100644
index dda01437..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1516.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-void myClass::foo() {
- int bar;
- std::string str;
- DbConfig::configuredDatabase()->apply(db);
- std::string str2;
-
- std::string str2;
- f();
- DbConfig::configuredDatabase()->apply(db);
- int bar;
- std::string str;
-
- std::string str2;
- f();
-} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_3116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_3116.cpp
deleted file mode 100644
index fcdcc715..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_3116.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-// Singular with various newline formats
-auto f = [] -> void {
- return;
-};
-
-auto f = [] -> void {
- return;
-}();
-
-auto f = [] -> void
-{
- return;
-}();
-
-auto f =
-[] -> void {
- return;
-};
-
-auto f =
-[] -> void
-{
- return;
-};
-
-auto f
- = [] -> void {
- int i = 0;
- return;
- };
-
-auto f
- = []
- {
- int i = 0;
- return;
- };
-
-// Nested lambda
-auto f = [] {
- auto g = [] {
- auto h = [] {
- return;
- };
- return;
- };
- return;
-};
-
-auto f = [] {
- auto g = []
- {
- auto h = [] {
- return;
- };
- return;
- };
- return;
-};
-
-auto f = []
-{
- auto g = [] {
- auto h = []
- {
- return;
- };
- return;
- };
- return;
-};
-
-// Nested lambda within functions
-Func(
- [] { return; },
- [] { return; }
-);
-
-Func([] { return; },
- [] { return; }
-);
-
-Func([] { return; },
- [] { return; }
-)();
-
-Func([] { return; },
- [] { return; })();
-
-Func([] { return; },
- [] { return; });
-
-A(
- B([] (const std::string &s) -> bool {
- s = "hello";
- return true;
- }), 1
- );
-
-A(
- B(
- [] (const std::string &s) -> bool {
- s = "hello";
- return true;
- }
- ), 1
- );
-
-// Inside scope
-{
- std::thread([](const char *c) {
- std::cout << c << std::endl;
- }).detach();
-
- std::thread(
- [](const char *c) {
- std::cout << c << std::endl;
- }
- ).detach();
-
- auto f = [&](int a) {
- return b;
- };
-
- auto f = [&](int a)
- {
- return b;
- };
-}
-
-Func(std::count_if(v.begin(), v.end(), [&](const auto &a) {
- return a == 3;
- }));
-
-Func(
- std::count_if(v.begin(), v.end(), [&](const auto &a)
- {
- return a == 3;
- }));
-
-Func(
- std::count_if(v.begin(), v.end(), [&](const auto &a) {
- return a == 3;
- }));
-
-Func(
- std::count_if(v.begin(), v.end(), [&](const auto &a) {
- return a == 3;
- })
- );
-
-// Test case from issue #3116
-const auto compare = [] (const auto i, const auto j)
-{
- return i >= j;
-};
-
-std::sort(
- vector.begin(),
- vector.end(),
- [] (const auto i, const auto j)
-{
- return i >= j;
-}
-);
-
-// Test case from issue #3116
-if(isWidgetOfCurrentRow)
-{
- it = std::find_if(
- reloaded.begin(),
- reloaded.end(),
- [&rowGuid](const auto& device)
- {
- return (device.thingGUID == rowGuid && !device.isWidget);
- }
- );
-}
-else
-{
- it = std::find_if(
- reloaded.begin(),
- reloaded.end(),
- [&rowGuid](const auto& device)
- {
- return device.thingGUID == rowGuid;
- }
- );
-}
-
-// Test case from issue 1296 and some variants
-obj->Func([&](int a)
- {
- return b;
- });
-
-obj->Func([] -> int
- {
- return b;
- });
-
-obj->Func([]
- {
- return b;
- }
- );
-
-obj->Func(
- Func([]
- {
- return b;
- })
- );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda.cpp
deleted file mode 100644
index bdc499a6..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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.73.0/tests/input/cpp/nl_func_call_args_multi_line_ignore_closures.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_args_multi_line_ignore_closures.cpp
deleted file mode 100644
index 96cd4826..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_args_multi_line_ignore_closures.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-methodCall([] {
- Log();
- });
-
-funcCall(match ( [ & ]( const ContentProps &props) {
- return PairingCmpnt()
- }));
-
-match( [ & ]( const ContentProps &props) {
- return PairingCmpnt()
- });
-
-
-outerMethodCall(methodCall(^{
- // action
-}, x)
-);
-
-outerMethodCall(x, methodCall(^{
- // action
-}, y));
-
-options({
- .cornerRadius = CGFLOAT_MAX,
- });
-
-mapToPtr([&](const LeftAddOn::Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr(x, [&](const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-mapToPtr([&](const Props &addOnProps) {
- FSTheme *const theme = AK::getTheme();
-});
-
-methodCall(arg1, arg2,
-arg3);
-
-methodCall(arg1, arg2, arg3);
-
-methodCall(arg1, []{
- variant.action.send(Cmpnt);
- }, arg3);
-
-methodCall(arg1, {
- .x = 10,
- }, arg3);
-
-methodCall({
- .x = 10,
- }, arg3);
-
-methodCall(arg1, {
- .x = 10,
- });
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/returns.cpp
deleted file mode 100644
index 85ab1a70..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/returns.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#define foo1(x) { return x; }
-#define foo2(x) { return(x); }
-#define foo3(x) { return (x); }
-#define foo4(x) { return{x}; }
-#define foo5(x) { return {x}; }
-
-#define case1(x) return x
-#define case2(x) return(x)
-#define case3(x) return (x)
-#define case4(x) return{x}
-#define case5(x) return {x}
-
-void foo(int x)
-{
- switch (x)
- {
- case 1:
- return 1;
- case 2:
- return(2);
- case 3:
- return (3);
- case 4:
- return{4};
- case 5:
- return {5};
- default:
- return;
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_angle.cpp
deleted file mode 100644
index 7710171e..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_angle.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <typename T>
-struct foo {};
-
-Q_DECLARE_METATYPE(foo<int> )
-
-int bar(foo<int> );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_enum_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_enum_colon.cpp
deleted file mode 100644
index 20dac444..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_enum_colon.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-enum Enum1:int {
- E31=0,
- E32=1,
- E33=2
-};
-enum Enum2 : int {
- E31=0,
- E32=1,
- E33=2
-};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates.cpp
deleted file mode 100644
index 137205d0..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-#include <list>
-#include <map>
-#include <vector>
-
-#define MACRO(T) f<T>()
-
-class MyClass
-{
-public:
- std::map < int, bool > someData;
- std::map < int, std::list < bool > > otherData;
-};
-
-void foo()
-{
- List < byte >bob = new List<byte> ();
-
-}
-
-A<B> foo;
-A<B,C> bar;
-A<B*> baz;
-A<B<C> > bay;
-
-void asd(void)
-{
-A<B> foo;
-A<B,C> bar;
-A<B*> baz;
-A<B<C> > bay;
- if (a < b && b > c)
- {
- a = b < c > 0;
- }
- if (a < bar() > c)
- {
- }
- a < up_lim() ? do_hi() : do_low;
- a[ a<b>c] = d;
-}
-
-template<typename T> class MyClass
-{
-
-}
-
- template<typename T>
- class MyClass
- {
- }
-
- template<typename A, typename B, typename C> class MyClass : myvar(0),
- myvar2(0)
- {
-
- }
-
- template<typename A, typename B, typename C> class MyClass
- : myvar(0),
- myvar2(0)
- {
-
- }
-
-
-static int max_value()
- {
- return (std :: numeric_limits <int >:: max ) ();
- }
-
-template < class Config_ >
-priority_queue < Config_ > :: ~ priority_queue () {
-
- }
-
-template<class T>
-T test(T a) {
-return a;
-}
-
-int main() {
-int k,j;
-h g<int>;
-k=test<int>(j);
-return 0;
-}
-
-template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass>
-class RotationMatrix
- : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
-{
-
-public:
-
- RotationMatrix()
- : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
- {
- // do some initialization
- }
-
- void assign(const OtherClass<T, 3, 3 >& other)
- {
- // do something
- }
-
-};
-
-int main()
-{
- MyClass<double, 3, 3, MyStorage> foo;
-}
-
-template< typename CharT, int N, typename Traits >
-inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits> &os,
- const W::S<CharT,N,Traits> &s)
- {
- return operator<< <CharT, N, Traits, char, std::char_traits<char> >( os, s );
- }
-
-struct foo {
-type1 < int & > bar;
-};
-struct foo {
-type1 < int const > bar;
-};
-
-
-template <int i> void f();
-template <int i> void g() {
-f<i-1>();
-f< i >();
-f<i+1>();
-f<bar()>();
-}
-void h() { g<42>(); }
-
-#include <vector>
-std::vector<int> A(2);
-std::vector<int> B;
-std::vector<int>C(2);
-std::vector<int>D;
-
-template<class T>struct X{template<class U>void operator()(U);};
-
-template<class T>class Y{template<class V>void f(V);};
-
-void (* foobar)(void) = NULL;
-std::vector<void (*)(void)> functions;
-
-#define MACRO( a ) a
-template < typename = int > class X ;
-MACRO ( void f ( X < > & x ) ) ;
-void g ( X < > & x ) ;
-
-#include <vector>
-typedef std::vector<std::vector<int> > Table; // OK
-typedef std::vector<std::vector<bool>> Flags; // Error
-
-void func(List<B>= default_val1);
-void func(List<List<B>>= default_val2);
-
-BLAH<(3.14 >= 42)> blah;
-bool X = j<3>>1;
-
-void foo()
-{
- A<(X>Y)> a;
- a = static_cast<List<B>>(ld);
-}
-
-template<int i> class X { /* ... */ };
-X< 1>2 > x1; // Syntax error.
-X<(1>2)> x2; // Okay.
-
-template<class T> class Y { /* ... */ };
-Y<X<1>> x3; // Okay, same as "Y<X<1> > x3;".
-Y<X<(6>>1)>> x4;
-
-
-template <typename T>
-int
-myFunc1(typename T::Subtype val);
-
-int
-myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template.d
deleted file mode 100644
index ba03e617..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template.d
+++ /dev/null
@@ -1,28 +0,0 @@
-
-template Foo(T, U)
-{
-class Bar { }
-
-T foo(T t, U u) { }
-
-T abc;
-
-typedef T* FooType;
-typedef Tte** FooType0;
-typedef int* FooType1;
-typedef const char FooType2;
-}
-
-alias Foo!(int, char) f;
-f.Bar b;
-f.foo(1,2);
-f.abc = 3;
-
- to!string(10.0);
- TFoo!int.t x;
-
-class Abc(T)
-{
- T t;
-}
-
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_catch.m b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_catch.m
deleted file mode 100644
index a5354dfe..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_catch.m
+++ /dev/null
@@ -1,18 +0,0 @@
-
-- (void) foo:(NSString*) inString
-{
- @try {
- }@catch(NSException* const inException)
- {
- }
-}
-
-- (void) bar:(NSString*) inString
-{
- @try {
- }
- @catch (NSException* const inException){
- }
- @finally {
- }
-}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/tags.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/tags.pawn
deleted file mode 100644
index 4193b2a7..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/tags.pawn
+++ /dev/null
@@ -1,63 +0,0 @@
-
-enum token
- {
- t_type,
- Rational: t_value,
- t_word[20],
- }
-
-
-new bool:flag = true /* "flag" can only hold "true" or "false" */
-const error:success = 0
-const error:fatal= 1
-const error:nonfatal = 2
-error:errno = fatal
-
-native printf(const format[], {Float, _}: ...);
-
- new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
- 1.00 : (float( p_resists[id][RESISTIDX_FIRE] ) / float( RESIST_MAX_VALUE ))
-
- xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
- floatround( float( j / 20 ) * XP_PER_LEVEL_LT );
-
-
-main() {
- new Float:xpos
- new Float:ypos
-
- new apple:elstar /* variable "elstar" with tag "apple" */
- new orange:valencia /* variable "valencia" with tag "orange" */
- new x /* untagged variable "x" */
- elstar = valencia /* tag mismatch */
- elstar = x /* tag mismatch */
- x = valencia /* ok */
-
- new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
- 1.00 : (float( p_resists[id][RESISTIDX_FIRE] ) / float( RESIST_MAX_VALUE ))
-
- xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
- floatround( float( j / 20 ) * XP_PER_LEVEL_LT );
-
- if (apple:valencia < elstar)
- valencia = orange:elstar
-
-some_label: // target for a goto
- #pragma rational Float
-
- new Float:limit = -5.0
- new Float:value = -1.0
- if (value < limit)
- printf("Value %f below limit %f\n", _:value, _:limit)
- else
- printf("Value above limit\n")
- goto some_label
-}
-
-foo()
- if (ape)
- dofunc(1)
- else if (monkey)
- dofunc(2)
- else
- dofunc(3)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/java.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/java.test
deleted file mode 100644
index 314b8778..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/java.test
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Test cases specifically for the Java language.
-#
-# Range: 80000 - 89999
-# test.name config.file input.file
-
-80000 ben_099.cfg java/assert.java
-80010 annotation.cfg java/annotation1.java
-80011 empty.cfg java/annotation2.java
-80012 nl_after_annotation-f.cfg java/annotation2.java
-80013 nl_between_annotation-f.cfg java/annotation2.java
-80014 annotation.cfg java/annotation2.java
-80020 java_foreach.cfg java/foreach.java
-80030 indent_var_def.cfg java/variable_aligns.java
-80040 empty.cfg java/try.java
-80050 jdbi-r.cfg java/double_brace.java
-80051 jdbi-f.cfg java/double_brace.java
-80060 java_synchronized_1.cfg java/synchronized.java
-80061 java_synchronized_2.cfg java/synchronized.java
-80062 sp_this_paren.cfg java/sp_this_paren.java
-80063 empty.cfg java/i1121.java
-80064 mod_add_long_class_closebrace_comment-1.cfg java/long_cl_cmt.java
-80065 empty.cfg java/Java8DoubleColon.java
-80066 sp_after_for_colon.cfg java/sp_after_for_colon.java
-80067 doxy-javadoc-alignment.cfg java/doxy-javadoc-alignment.java
-
-80100 align_same_func_call_params-t.cfg java/sf567.java
-
-80200 sp_before_byref-r.cfg java/sp_before_byref.java
-80201 template_angles.cfg java/generics.java
-80202 aet.cfg java/generics_wildcard.java
-80203 aet.cfg java/generics_return_type.java
-80204 aet.cfg java/cast.java
-80205 aet.cfg java/sp_after_angle.java
-80206 aet.cfg java/annotation3.java
-
-80300 Issue_670.cfg java/Issue_670.java
-80301 issue_672.cfg java/issue_672.java
-80302 Issue_1845.cfg java/Issue_1845.java
-80303 Issue_1122.cfg java/Issue_1122.java
-80304 Issue_1124-f.cfg java/Issue_1124.java
-80305 Issue_1124-r.cfg java/Issue_1124.java
-80306 leading-tabs-for-java-lambda.cfg java/leading-tabs-for-java-lambda.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/objective-c.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/objective-c.test
deleted file mode 100644
index 23e02a10..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/objective-c.test
+++ /dev/null
@@ -1,180 +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 oc1.cfg oc/Fraction.h OC
-50002 oc2.cfg oc/Fraction.m
-50003 oc2.cfg oc/main.m
-50004 oc4.cfg oc/string.m
-50005 oc5.cfg oc/Declarations.h OC
-50006 oc6.cfg oc/exceptions.m
-50007 oc7.cfg oc/misc.m
-50008 oc8.cfg oc/protocol.m
-50009 oc9.cfg oc/literals.mm
-
-50010 sp_after_oc_return_type_add.cfg oc/return_type.m
-50011 sp_after_oc_return_type_force.cfg oc/return_type.m
-50012 sp_after_oc_return_type_remove.cfg oc/return_type.m
-
-50014 sp_oc_classname_paren-r.cfg oc/sp_oc_classname_paren-r.m
-50015 oc10.cfg oc/receiver.m
-
-50016 oc11.cfg oc/ternary.m
-50017 ternary_short.cfg oc/ternary.m
-
-50018 indent_inside_ternary_operator.cfg oc/indent-inside-ternary-operator.m
-
-50020 sp_after_oc_at_sel_add.cfg oc/selector.m
-50021 sp_after_oc_at_sel_force.cfg oc/selector.m
-50022 sp_after_oc_at_sel_remove.cfg oc/selector.m
-
-50025 oc6.cfg oc/exceptions.m
-50026 sp_after_throw_remove.cfg oc/exceptions.m
-
-50030 sort_imports.cfg oc/sort_import.m
-50031 mod_sort_incl_import_prioritize_filename.cfg oc/sort_import.m
-50032 mod_sort_incl_import_ignore_extension.cfg oc/sort_import.m
-50033 mod_sort_incl_import_prioritize_extensionless.cfg oc/sort_import.m
-50034 mod_sort_incl_import_prioritize_angle_over_quotes.cfg oc/sort_import.m
-50035 mod_sort_incl_import_grouping_enabled.cfg oc/sort_import_group.m
-
-50040 objc_complex_method.cfg oc/complex_method.m
-
-50050 objc_complex_method.cfg oc/real_world_file.m
-
-50060 align_oc_msg_colon_span-1.cfg oc/oc-split.m
-50061 bug_167.cfg oc/bug_167.m
-
-50062 aet.cfg oc/issue_2631.m
-
-50070 blocks.cfg oc/blocks.m
-50071 sp_before_oc_block_caret_force.cfg oc/blocks.m
-50072 sp_before_oc_block_caret_remove.cfg oc/blocks.m
-50073 sp_after_oc_block_caret_add.cfg oc/blocks.m
-50074 sp_after_oc_block_caret_force.cfg oc/blocks.m
-50075 blocks.cfg oc/blocks.m
-50076 sp_before_oc_block_caret_remove.cfg oc/blocks.m
-
-50077 blocks.cfg oc/more_blocks.m
-50078 sp_before_oc_block_caret_force.cfg oc/more_blocks.m
-50079 sp_before_oc_block_caret_remove.cfg oc/more_blocks.m
-50080 sp_after_oc_block_caret_add.cfg oc/more_blocks.m
-50081 sp_after_oc_block_caret_force.cfg oc/more_blocks.m
-50082 blocks.cfg oc/more_blocks.m
-50083 sp_before_oc_block_caret_remove.cfg oc/more_blocks.m
-50084 nl_brace_square.cfg oc/more_blocks.m
-50085 nl_after_func_body-3.cfg oc/block_in_method.m
-50086 issue_2643.cfg oc/block_in_method.m
-50087 indent_oc_inside_msg_sel.cfg oc/indent_oc_inside_msg_sel.m
-
-50090 oc12.cfg oc/kw.m
-50091 issue_2656.cfg oc/block_in_method.m
-
-50095 oc13.cfg oc/box.m
-50100 bug_340.cfg oc/bug_340.m
-
-50110 oc14.cfg oc/msg_align.m
-50111 del_semicolon.cfg oc/ns_enum.m
-50112 empty.cfg oc/ns_enum.m
-50113 sp_enum_paren-r.cfg oc/ns_enum.m
-
-50120 gh137.cfg oc/gh137.m
-
-50200 sp_block_as_argument.cfg oc/more_blocks_2.m
-50201 sp_block_as_argument.cfg oc/blocks_align.m
-50202 sp_block_as_argument2.cfg oc/blocks_align.m
-50203 sp_block_as_argument3.cfg oc/blocks_align.m
-50204 sp_block_as_argument4.cfg oc/blocks_align.m
-50205 sp_block_as_argument5.cfg oc/msg_align.m
-50206 aet.cfg oc/issue_2727.m
-50207 issue_3031.cfg oc/issue_3031.mm
-
-50300 sp_after_send_oc_colon-f.cfg oc/msg.m
-
-50400 oc16.cfg oc/for.m
-
-50410 oc_cond_colon.cfg oc/oc_cond_colon.m OC+
-50411 attribute_specifier_seqs.cfg oc/attribute_specifier_seqs.mm OC+
-
-50500 oc17.cfg oc/code_placeholder.m
-
-50510 gh293.a.cfg oc/gh293.m
-50511 gh293.b.cfg oc/gh293.m
-50512 sp_oc_catch.cfg oc/sp_oc_catch.m
-50513 sp_oc_boxed.cfg oc/sp_oc_boxed.m
-50514 indent_boxed.cfg oc/indent_boxed.m
-50515 sp_oc_synchronized.cfg oc/sp_oc_synchronized.m
-
-50600 nl_oc_block_brace-f.cfg oc/bug_i_477.m
-50601 empty.cfg oc/bug_i_408.m
-50602 bug_i_125-412.cfg oc/bug_i_125-412.m
-50603 oc18.cfg oc/gh511.m
-50604 objc_bug_497.cfg oc/bug_497.m
-50605 empty.cfg oc/bug_404.m
-50606 oc19.cfg oc/bug_1366.m
-50607 aet-sp_after_oc_msg_receiver.cfg oc/sp_after_oc_msg_receiver.m
-50608 aet.cfg oc/blocks_align2.m
-50609 sp_arith-f.cfg oc/negative_value.m
-50610 aet.cfg oc/nelem.m
-50611 aet.cfg oc/for2.m
-50612 aet.cfg oc/chunk_ends_type1.m
-50613 aet.cfg oc/chunk_ends_type2.m
-50614 aet.cfg oc/chunk_ends_type3.m
-50615 aet.cfg oc/block_literal_protocol.m
-50616 aet.cfg oc/oc_msg_in_pp.m
-50617 aet.cfg oc/boxed_receiver.m
-50618 aet-func_def.cfg oc/func_def.mm
-50619 aet.cfg oc/cast.m
-50620 aet.cfg oc/sp_after_angle.m
-50621 aet.cfg oc/Fraction.h
-50622 aet.cfg oc/c-cpp-oc-wrapper.c
-50623 aet.cfg oc/extern-c-attribute.m
-50624 aet.cfg oc/typeof.m
-50625 aet-sp_inside_braces_oc_dict.cfg oc/sp_inside_braces_oc_dict.m
-50626 aet.cfg oc/chunk_ends_type4.m
-50627 aet.cfg oc/method_ends_semicolon.m
-50628 aet.cfg oc/macro-close-brace.m
-50629 aet.cfg oc/pp_bool.m
-
-50630 nl_func_call_args_multi_line_ignore_closures.cfg oc/nl_func_call_args_multi_line_ignore_closures.m
-
-50700 cmt_insert-0.cfg oc/cmt_insert.m
-50701 cmt_insert-0.cfg oc/cmt_insert2.m
-
-50800 obj-c-properties.cfg oc/properties.m
-50801 empty.cfg oc/i1213.m
-50802 obj-c-available.cfg oc/available.m
-50803 indent_single_newline.cfg oc/indent_single_newline.m
-
-50804 aet.cfg oc/issue_2629.m
-50805 aet.cfg oc/issue_2724.m
-
-50810 bug_841.cfg oc/bug_841.m
-50811 oc_bug_1674.cfg oc/bug_1674.m
-50812 oc_bug_1683.cfg oc/bug_1683.m
-
-50813 sp_before_oc_proto_list_add.cfg oc/sp_before_oc_proto_list.m
-50814 sp_before_oc_proto_list_force.cfg oc/sp_before_oc_proto_list.m
-50815 sp_before_oc_proto_list_remove.cfg oc/sp_before_oc_proto_list.m
-
-50816 issue_2675.cfg oc/issue_2675.m
-50817 aet.cfg oc/issue_2722.m
-
-50900 1927.cfg oc/1927.m
-50901 Issue_2172.cfg oc/Issue_2172.m
-50902 empty.cfg oc/Issue_2289.m
-50903 Issue_681.cfg oc/Issue_681.oc
-
-50904 double_angle_space_1.cfg oc/double_angle_space.m
-50905 double_angle_space_2.cfg oc/double_angle_space.m
-50906 double_angle_space_3.cfg oc/double_angle_space.m
-
-#
-# adopt tests from UT
-10018 delete-space-oc.cfg oc/delete-space-oc.mm
-10019 empty.cfg oc/func-param-wrap-oc.mm
-10020 align-objc-like-xcode.cfg oc/align-objc-like-xcode.m
-10021 double-indent-objc-dict.cfg oc/double-indent-objc-dict.m
-10022 indent-objc-block.cfg oc/indent-objc-block.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/pawn.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/pawn.test
deleted file mode 100644
index 7f92b452..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/pawn.test
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Test cases specifically for the Pawn language.
-#
-# Range: 60000 - 69999
-# test.name config.file input.file
-
-60000 pawn.cfg pawn/functions.pawn
-60001 pawn.cfg pawn/comment.p
-60002 pawn.cfg pawn/traffic.p
-60003 pawn.cfg pawn/tags.pawn
-60004 pawn.cfg pawn/enum.pawn
-60005 pawn.cfg pawn/unbraced.p
-
-60010 pawn-escape.cfg pawn/str-escape.p
-
-60020 pawn-escape.cfg pawn/switch-vsemi.sma
-
-60030 amxmodx.cfg pawn/crusty_ex-1.sma
-
-60040 amxmodx.cfg pawn/preproc.pawn
-
-60050 mod_full_brace_function-f.cfg pawn/gh419.pawn
-
-60100 Issue_2586.cfg pawn/Issue_2586.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/staging.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/staging.test
deleted file mode 100644
index 8c5284d5..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/staging.test
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# This file contains tests that are failing and need resolution
-#
-# Range: reserve ID from dedicated language range
-# test.name config.file input.file lang
-
-19000~ UNI-58354.cfg cs/UNI-58354.cs CS
-39000~ UNI-64325.cfg cpp/UNI-64325.cpp CPP
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/test.py b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/test.py
deleted file mode 100644
index 5f33fbbb..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/test.py
+++ /dev/null
@@ -1,292 +0,0 @@
-# Class encapsulating a unit test.
-#
-# * @author Ben Gardner October 2009
-# * @author Guy Maurel October 2015
-# * @author Matthew Woehlke June 2018
-#
-
-import filecmp
-import os
-import re
-import subprocess
-import sys
-import errno
-
-from .ansicolor import printc
-from .config import (config, test_dir, FAIL_ATTRS, PASS_ATTRS,
- MISMATCH_ATTRS, UNSTABLE_ATTRS)
-from .failure import (ExecutionFailure, MismatchFailure, MissingFailure,
- TestDeclarationParseError, UnexpectedlyPassingFailure,
- UnstableFailure)
-
-
-# =============================================================================
-class SourceTest(object):
- # -------------------------------------------------------------------------
- def __init__(self):
- self.test_result_dir = 'results'
-
- self.diff_text = 'MISMATCH'
- self.diff_attrs = MISMATCH_ATTRS
- self.diff_exception = MismatchFailure
-
- # -------------------------------------------------------------------------
- def _check_attr(self, name):
- if not hasattr(self, name) or getattr(self, name) is None:
- raise AttributeError(
- 'Test is missing required attribute {!r}'.format(name))
-
- # -------------------------------------------------------------------------
- def _make_abs(self, name, base):
- path = getattr(self, name)
- if not os.path.isabs(path):
- setattr(self, name, os.path.join(test_dir, base, path))
-
- # -------------------------------------------------------------------------
- def _diff(self, expected, actual):
- sys.stdout.flush()
- cmd = [config.git_exe, 'diff', '--no-index', expected, actual]
- subprocess.call(cmd)
-
- # -------------------------------------------------------------------------
- def build(self, test_input, test_lang, test_config, test_expected):
- self.test_name = os.path.basename(test_input)
- self.test_lang = test_lang
- self.test_input = test_input
- self.test_config = test_config
- self.test_expected = test_expected
- self.test_xfail = False
-
- # -------------------------------------------------------------------------
- def _check(self):
- self._check_attr('test_name')
- self._check_attr('test_lang')
- self._check_attr('test_input')
- self._check_attr('test_config')
- self._check_attr('test_expected')
- self._check_attr('test_xfail')
-
- # -------------------------------------------------------------------------
- def run(self, args):
- self._check()
-
- _expected = self.test_expected
- _result = os.path.join(args.result_dir, self.test_result_dir,
- os.path.basename(os.path.dirname(_expected)),
- os.path.basename(_expected))
-
- if args.verbose:
- print(self.test_name)
- print(' Language : {}'.format(self.test_lang))
- print(' Input : {}'.format(self.test_input))
- print(' Config : {}'.format(self.test_config))
- print(' Expected : {}'.format(_expected))
- print(' Result : {}'.format(_result))
- print(' XFail : {}'.format(self.test_xfail))
-
- if not os.path.exists(os.path.dirname(_result)):
- try:
- os.makedirs(os.path.dirname(_result))
- except OSError as e:
- if e.errno != errno.EEXIST:
- raise
-
- cmd = [
- config.uncrustify_exe,
- '-q',
- '-l', self.test_lang,
- '-c', self.test_config,
- '-f', self.test_input,
- '-o', _result
- ]
- if args.debug:
- cmd += [
- '-LA',
- '-p', _result + '.unc'
- ]
-
- else:
- cmd += ['-LA']
-
- if args.show_commands:
- printc('RUN: ', repr(cmd))
-
- try:
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as exc:
- output = exc.output
- if not self.test_xfail:
- print(output.rstrip())
- msg = '{} (Uncrustify error code {})'
- msg = msg.format(self.test_name, exc.returncode)
- printc('FAILED: ', msg, **FAIL_ATTRS)
- raise ExecutionFailure(exc)
- elif args.xdiff:
- print(output.rstrip())
- finally:
- if args.debug:
- with open(_result + '.log', 'wt') as f:
- f.write(output)
-
- try:
- has_diff = not filecmp.cmp(_expected, _result)
- if has_diff and not self.test_xfail:
- if args.diff:
- self._diff(_expected, _result)
- printc('{}: '.format(self.diff_text),
- self.test_name, **self.diff_attrs)
- raise self.diff_exception(_expected, _result)
- if not has_diff and self.test_xfail:
- raise UnexpectedlyPassingFailure(_expected, _result)
- if has_diff and self.test_xfail:
- if args.xdiff:
- self._diff(_expected, _result)
- if not args.show_all:
- printc('XFAILED: ', self.test_name, **PASS_ATTRS)
- except OSError as exc:
- printc('MISSING: ', self.test_name, **self.diff_attrs)
- raise MissingFailure(exc, _expected)
-
-
-# =============================================================================
-class FormatTest(SourceTest):
- pass_config = ['test_config', 'test_rerun_config']
- pass_input = ['test_input', 'test_expected']
- pass_expected = ['test_expected', 'test_rerun_expected']
-
- re_test_declaration = re.compile(r'^(?P<num>\d+)(?P<mark>[~!]*)\s+'
- r'(?P<config>\S+)\s+(?P<input>\S+)'
- r'(?:\s+(?P<lang>\S+))?$')
-
- # -------------------------------------------------------------------------
- def _build_pass(self, i):
- p = SourceTest()
-
- p.test_name = self.test_name
- p.test_lang = self.test_lang
- p.test_config = getattr(self, self.pass_config[i])
- p.test_input = getattr(self, self.pass_input[i])
- p.test_expected = getattr(self, self.pass_expected[i])
- p.test_xfail = self.test_xfail
- if i == 1 and not os.path.exists(p.test_expected):
- p.test_expected = getattr(self, self.pass_expected[0])
-
- return p
-
- # -------------------------------------------------------------------------
- def _build_passes(self):
- self._check()
- self._check_attr('test_rerun_config')
- self._check_attr('test_rerun_expected')
-
- self._make_abs('test_input', 'input')
- self._make_abs('test_config', 'config')
- self._make_abs('test_expected', 'expected')
- self._make_abs('test_rerun_config', 'config')
- self._make_abs('test_rerun_expected', 'expected')
-
- self.test_passes = [
- self._build_pass(0),
- self._build_pass(1)]
-
- self.test_passes[1].test_name = self.test_name + ' (re-run)'
- self.test_passes[1].test_result_dir = 'results_2'
- self.test_passes[1].diff_text = 'UNSTABLE'
- self.test_passes[1].diff_attrs = UNSTABLE_ATTRS
- self.test_passes[1].diff_exception = UnstableFailure
-
- # -------------------------------------------------------------------------
- def build_from_declaration(self, decl, group, line_number):
- match = self.re_test_declaration.match(decl)
- if not match:
- raise TestDeclarationParseError(group, line_number)
-
- num = match.group('num')
- is_rerun = ('!' in match.group('mark'))
- is_xfail = ('~' in match.group('mark'))
-
- self.test_xfail = is_xfail
-
- self.test_config = match.group('config')
- self.test_input = match.group('input')
-
- test_dir = os.path.dirname(self.test_input)
- test_filename = os.path.basename(self.test_input)
-
- if match.group('lang'):
- self.test_lang = match.group('lang')
- else:
- self.test_lang = test_dir
-
- self.test_expected = os.path.join(
- test_dir, '{}-{}'.format(num, test_filename))
-
- def rerun_file(name):
- parts = name.split('.')
- return '.'.join(parts[:-1] + ['rerun'] + parts[-1:])
-
- if is_rerun:
- self.test_rerun_config = rerun_file(self.test_config)
- self.test_rerun_expected = rerun_file(self.test_expected)
- else:
- self.test_rerun_config = self.test_config
- self.test_rerun_expected = self.test_expected
-
- self.test_name = '{}:{}'.format(group, num)
-
- self._build_passes()
-
- # -------------------------------------------------------------------------
- def build_from_args(self, args):
- self.test_name = args.name
- self.test_lang = args.lang
- self.test_input = args.input
- self.test_config = args.config
- self.test_expected = args.expected
- self.test_rerun_config = args.rerun_config or args.config
- self.test_rerun_expected = args.rerun_expected or args.expected
- self.test_xfail = args.xfail
-
- self._build_passes()
-
- # -------------------------------------------------------------------------
- def print_as_ctest(self, out_file=sys.stdout):
- self._check()
-
- def to_cmake_path(obj):
- if type(obj) is dict:
- return {k: to_cmake_path(v) for k, v in obj.items()}
- if type(obj) is str:
- return obj.replace(os.sep, '/')
- return obj
-
- runner = os.path.join(test_dir, 'run_test.py')
-
- out_file.write(
- ('add_test({test_name}\n' +
- ' "{python_exe}" -S "{test_runner}" "{test_name}"\n' +
- ' --executable "{uncrustify_exe}"\n' +
- ' --lang "{test_lang}"\n' +
- ' --input "{test_input}"\n' +
- ' --config "{test_config}"\n' +
- ' --expected "{test_expected}"\n' +
- ' --rerun-config "{test_rerun_config}"\n' +
- ' --rerun-expected "{test_rerun_expected}"\n' +
- ' -d --git "{git_exe}"\n' +
- '{xfail}' +
- ')\n').format(
- test_runner=to_cmake_path(runner),
- python_exe=to_cmake_path(config.python_exe),
- uncrustify_exe=to_cmake_path(config.uncrustify_exe),
- git_exe=to_cmake_path(config.git_exe),
- xfail=(' --xfail\n' if self.test_xfail else ''),
- **to_cmake_path(self.__dict__)))
- out_file.write(
- ('set_tests_properties({}\n' +
- ' PROPERTIES LABELS "{}"\n)\n').format(
- self.test_name, self.test_name.split(':')[0]))
-
- # -------------------------------------------------------------------------
- def run(self, args):
- for p in self.test_passes:
- p.run(args)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/vala.test b/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/vala.test
deleted file mode 100644
index d2305595..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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 ben_100.cfg vala/list.vala
-70001 ben_101.cfg vala/advanced.vala
-70010 ben_102.cfg vala/verbatim_str.vala
-70011 ben_103.cfg vala/verbatim_str2.vala
-70012 ben2.cfg vala/verbatim_str2.vala
-70020 ben_104.cfg vala/preproc.vala
-70287 ben_105.cfg vala/gh287.vala
-70300 Issue_2090.cfg vala/Issue_2090.vala
-70301 Issue_2270.cfg vala/Issue_2270.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.editorconfig b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.editorconfig
index 3942fe21..3942fe21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.editorconfig
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.editorconfig
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.gitattributes b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitattributes
index 5ef989a3..5ef989a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.gitattributes
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitattributes
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.github/ISSUE_TEMPLATE b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/ISSUE_TEMPLATE
index d98e5cf5..d98e5cf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.github/ISSUE_TEMPLATE
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/ISSUE_TEMPLATE
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.github/workflows/uncrustify_test.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/workflows/uncrustify_test.yml
index 8d2198ab..8d2198ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.github/workflows/uncrustify_test.yml
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.github/workflows/uncrustify_test.yml
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.gitignore b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitignore
index 9fb21e7e..9fb21e7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.gitignore
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.gitignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.travis.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.travis.yml
index a3bfcf7a..a3bfcf7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/.travis.yml
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/.travis.yml
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS
new file mode 100644
index 00000000..b013baac
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/AUTHORS
@@ -0,0 +1,166 @@
+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 RouilleÌ
+Vojtěch Balík
+Vyacheslav Shegai
+Waldir Pimenta
+Yannick Bühler
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/BUGS b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/BUGS
index a6e2ccaa..a6e2ccaa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/BUGS
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/BUGS
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt
new file mode 100644
index 00000000..1814a823
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CMakeLists.txt
@@ -0,0 +1,554 @@
+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.73.0/CODEOWNERS b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CODEOWNERS
index b8b9012f..b8b9012f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/CODEOWNERS
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CODEOWNERS
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CONTRIBUTING.md b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CONTRIBUTING.md
new file mode 100644
index 00000000..8a43f8a8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/CONTRIBUTING.md
@@ -0,0 +1,90 @@
+# Contributing to Uncrustify
+
+## How to contribute
+
+There are lots of ways to contribute to Uncrustify:
+
+- Report Issues
+
+- Propose Features or Improvements
+
+- Submit Pull Requests
+
+## Making changes
+
+* Pull latest [master][master] and create a new branch:
+ - Branch name _should_ use lowercase, using `-` to separate words
+ and not `_`. Other special characters _should_ be avoided.
+ (However, feel free to use option names verbatim in branch names;
+ `_` _should_ be used when part of an option name.)
+ - A hierarchical structure _may_ be designated using `/`
+ (e.g. `area/topic`), although this is uncommon.
+ The last part of the name can be keywords like `bugfix`, `feature`,
+ `optim`, `docs`, `refactor`, `test`, etc.
+ - Branches _should_ be named after _what_ the change is about.
+ - Branches _should not_ be named after the issue number,
+ developer name, etc.
+
+* Organize your work:
+ - Specialize your branch to target only one thing.
+ Split your work in multiple branches if necessary.
+ - Make commits of logical units.
+ - Avoid "fix-up" commits.
+ Instead, rewrite your history so that the original commit is "clean".
+ - Try to write a [quality commit message][commits]:
+ + Separate subject line from body with a blank line.
+ + Limit subject line to 50 characters.
+ + Capitalize the subject line.
+ + Do not end the subject line with a period.
+ + Use imperative present tense in the subject line.
+ A proper subject can complete the sentence
+ "If applied, this commit will, [subject]".
+ + Wrap the body at 72 characters.
+ + Include motivation for the change
+ and contrast its implementation with previous behavior.
+ Explain the _what_ and _why_ instead of _how_.
+ - If the git diff command, or the diff part of the git gui,
+ don't produce accurate output, it might be necessary to add
+ some lines to the ~/.gitconfig file:
+ [diff]
+ algorithm = patience
+ [gui]
+ diffopts = --patience
+
+
+* Add or update unit tests:
+ - All behavioral changes should come with a unit test that verifies
+ that the new feature or fixed issue works as expected.
+ - Consider improving existing tests if it makes sense to do so.
+ - Any unused test number may be used,
+ however it is preferred to keep related tests together, if possible.
+ - Read [Writing Tests][tests] for more details.
+
+* Polish your work:
+ - The code should be clean, with documentation where needed.
+ - The change must be complete (no upcoming fix-up commits).
+ - Functional changes should always be accompanied by tests (see above).
+ Changes without tests should explain why tests are not present.
+ (Changes that are non-functional, such as documentation changes,
+ can usually omit tests without justification.)
+
+* Prepare a Pull Request (PR):
+ - To reduce the likelihood of conflicts and test failures,
+ consider rebasing your work on top of latest master before creating a PR.
+ - Verify that your code is working properly
+ by running `ctest` in your build directory.
+ (Changes that fail CI will _not_ be merged.
+ Running the tests locally will help to avoid this.)
+ You can change the level of logging by changing the line 104 and 109
+ of the file tests/test_uncrustify/test.py to another value.
+ - The PR title should represent _what_ is being changed
+ (a rephrasing of the branch name if set correctly).
+ - The PR description should document the _why_ the change needed to be done
+ and not _how_, which should be obvious by doing the code review.
+ - After commiting a new PR, one may have a look to the results:
+ https://coveralls.io/github/uncrustify/uncrustify
+
+
+[master]: https://github.com/uncrustify/uncrustify/tree/master
+[commits]: https://chris.beams.io/posts/git-commit/
+[tests]: https://github.com/uncrustify/uncrustify/wiki/Writing-Tests
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/COPYING b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/COPYING
index d60c31a9..d60c31a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/COPYING
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/COPYING
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog
new file mode 100644
index 00000000..f8da1c50
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/ChangeLog
@@ -0,0 +1,1544 @@
+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.73.0/Comments.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/Comments.txt
index 5375e829..5375e829 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/Comments.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/Comments.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/HELP b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/HELP
index 83792fa5..83792fa5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/HELP
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/HELP
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/LIMITATIONS.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/LIMITATIONS.txt
index a49f23f2..a49f23f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/LIMITATIONS.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/LIMITATIONS.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/NEWS b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/NEWS
index 8b6344a0..8b6344a0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/NEWS
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/NEWS
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/README.md b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/README.md
new file mode 100644
index 00000000..0a1025c6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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 - 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.73.0/TESTING b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/TESTING
index 63efbff7..63efbff7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/TESTING
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/TESTING
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/appveyor.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/appveyor.yml
index e5c01aac..e5c01aac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/appveyor.yml
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/appveyor.yml
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/CodeCoverage.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/CodeCoverage.cmake
index 670c5144..670c5144 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/CodeCoverage.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/CodeCoverage.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/GenerateTokenNames.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateTokenNames.cmake
index 02a6241a..02a6241a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/GenerateTokenNames.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateTokenNames.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/GenerateVersionHeader.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateVersionHeader.cmake
index 3d6d376b..3d6d376b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/GenerateVersionHeader.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/GenerateVersionHeader.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/Toolchain-mingw32.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw32.cmake
index badd6994..badd6994 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/Toolchain-mingw32.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw32.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/Toolchain-mingw64.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw64.cmake
index 399cc26b..399cc26b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/Toolchain-mingw64.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/Toolchain-mingw64.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/uninstall.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/uninstall.cmake
new file mode 100644
index 00000000..b9618a29
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/cmake/uninstall.cmake
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.0.2)
+
+set(MANIFEST "${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt")
+
+if(NOT EXISTS ${MANIFEST})
+ message(FATAL_ERROR "Cannot find install manifest: ${MANIFEST}")
+endif()
+
+file(STRINGS ${MANIFEST} files)
+foreach(file ${files})
+ if(EXISTS ${file} OR IS_SYMLINK ${file})
+ message(STATUS "Removing: ${file}")
+
+ execute_process(COMMAND rm -f ${file}
+ RESULT_VARIABLE result
+ OUTPUT_QUIET
+ ERROR_VARIABLE stderr
+ ERROR_STRIP_TRAILING_WHITESPACE
+ )
+
+ if(NOT ${result} EQUAL 0)
+ message(FATAL_ERROR "${stderr}")
+ endif()
+ else()
+ message(STATUS "Does-not-exist: ${file}")
+ endif()
+endforeach(file)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/commit.log b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/commit.log
index 1a725f4e..1a725f4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/commit.log
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/commit.log
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/coverity.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.sh
index e52a3594..e52a3594 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/coverity.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/coverity.travis.yml b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.travis.yml
index ef306e8c..ef306e8c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/coverity.travis.yml
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/coverity.travis.yml
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/cdbs/debian-tde.mk b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/debian-tde.mk
index f36e3527..f36e3527 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/cdbs/debian-tde.mk
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/debian-tde.mk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/cdbs/versions.pl b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/versions.pl
index 1b110f7a..1b110f7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/cdbs/versions.pl
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/cdbs/versions.pl
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/changelog b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/changelog
new file mode 100644
index 00000000..1729edda
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/changelog
@@ -0,0 +1,334 @@
+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.73.0/debian/compat b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/compat
index ec635144..ec635144 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/compat
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/compat
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/control b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/control
index 97a69cb2..97a69cb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/control
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/control
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/copyright b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/copyright
index 7c74f673..7c74f673 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/copyright
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/copyright
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/docs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/docs
new file mode 100644
index 00000000..3310d30d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/docs
@@ -0,0 +1,4 @@
+AUTHORS
+README.md
+NEWS
+documentation/*
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/001_docs-remove-remote-images.patch b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/001_docs-remove-remote-images.patch
index 9c7d3e3b..9c7d3e3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/patches/001_docs-remove-remote-images.patch
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/001_docs-remove-remote-images.patch
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
new file mode 100644
index 00000000..2db6fc3c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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
+@@ -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/debian/patches/003_allow_older_distributions.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/003_allow_older_distributions.diff
new file mode 100644
index 00000000..8643a7cd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/003_allow_older_distributions.diff
@@ -0,0 +1,40 @@
+Index: b/CMakeLists.txt
+===================================================================
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 3.2)
++cmake_minimum_required(VERSION 3.0)
+
+ project(uncrustify-trinity)
+
+@@ -59,8 +59,12 @@
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
+ endif()
+
+-set(CMAKE_CXX_STANDARD 11)
+-set(CMAKE_CXX_STANDARD_REQUIRED YES)
++if( ${CMAKE_VERSION} VERSION_LESS "3.1" )
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
++else()
++ set(CMAKE_CXX_STANDARD 11)
++ set(CMAKE_CXX_STANDARD_REQUIRED YES)
++endif()
+
+ if(ENABLE_SANITIZER)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -fno-omit-frame-pointer -fsanitize=${ENABLE_SANITIZER}")
+@@ -147,8 +151,13 @@
+ else()
+ # Add target to generate version header;
+ # do this every build to ensure git SHA is up to date
++ if( ${CMAKE_VERSION} VERSION_LESS "3.2" )
++ set( VERSION_HEADER_BYPRODUCTS "" )
++ else()
++ set( VERSION_HEADER_BYPRODUCTS "BYPRODUCTS" "${PROJECT_BINARY_DIR}/uncrustify_version.h" )
++ endif()
+ add_custom_target(generate_version_header
+- BYPRODUCTS "${PROJECT_BINARY_DIR}/uncrustify_version.h"
++ ${VERSION_HEADER_BYPRODUCTS}
+ COMMAND
+ ${CMAKE_COMMAND}
+ -D PYTHON_EXECUTABLE:STRING=${PYTHON_EXECUTABLE}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/004_fixed_usage.diff b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/004_fixed_usage.diff
new file mode 100644
index 00000000..3f2c57ff
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/004_fixed_usage.diff
@@ -0,0 +1,55 @@
+Fixed usage message to match uncrustify-trinity.
+--- a/src/uncrustify.cpp
++++ b/src/uncrustify.cpp
+@@ -304,15 +304,15 @@
+ " 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"
++ "cat foo.d | uncrustify-trinity -q -c my.cfg -l d\n"
++ "uncrustify-trinity -c my.cfg -f foo.d\n"
++ "uncrustify-trinity -c my.cfg -f foo.d -L0-2,20-23,51\n"
++ "uncrustify-trinity -c my.cfg -f foo.d -o foo.d\n"
++ "uncrustify-trinity -c my.cfg -f foo.d -o foo.d -ds dump\n"
++ "uncrustify-trinity -c my.cfg foo.d\n"
++ "uncrustify-trinity -c my.cfg --replace foo.d\n"
++ "uncrustify-trinity -c my.cfg --no-backup foo.d\n"
++ "uncrustify-trinity -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"
+--- a/tests/cli/output/help.txt
++++ b/tests/cli/output/help.txt
+@@ -65,15 +65,15 @@
+ Cannot be used with the -o option'
+
+ Usage Examples
+-cat foo.d | uncrustify -q -c my.cfg -l d
+-uncrustify -c my.cfg -f foo.d
+-uncrustify -c my.cfg -f foo.d -L0-2,20-23,51
+-uncrustify -c my.cfg -f foo.d -o foo.d
+-uncrustify -c my.cfg -f foo.d -o foo.d -ds dump
+-uncrustify -c my.cfg foo.d
+-uncrustify -c my.cfg --replace foo.d
+-uncrustify -c my.cfg --no-backup foo.d
+-uncrustify -c my.cfg --prefix=out -F files.txt
++cat foo.d | uncrustify-trinity -q -c my.cfg -l d
++uncrustify-trinity -c my.cfg -f foo.d
++uncrustify-trinity -c my.cfg -f foo.d -L0-2,20-23,51
++uncrustify-trinity -c my.cfg -f foo.d -o foo.d
++uncrustify-trinity -c my.cfg -f foo.d -o foo.d -ds dump
++uncrustify-trinity -c my.cfg foo.d
++uncrustify-trinity -c my.cfg --replace foo.d
++uncrustify-trinity -c my.cfg --no-backup foo.d
++uncrustify-trinity -c my.cfg --prefix=out -F files.txt
+
+ Note: Use comments containing ' *INDENT-OFF*' and ' *INDENT-ON*' to disable
+ processing of parts of the source file (these can be overridden with
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/series b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/series
new file mode 100644
index 00000000..383a9d11
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/patches/series
@@ -0,0 +1,4 @@
+001_docs-remove-remote-images.patch
+002_trinity_customization.diff
+003_allow_older_distributions.diff
+004_fixed_usage.diff
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/rules b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/rules
new file mode 100755
index 00000000..dd013fa1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/rules
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/cmake.mk
+include debian/cdbs/debian-tde.mk
+
+DEB_CMAKE_EXTRA_FLAGS := \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_VERBOSE_MAKEFILE="ON" \
+ -DCMAKE_SKIP_RPATH="OFF" \
+ -DBUILD_TESTING="ON" \
+ -DUNCRUSTIFY_SEPARATE_TESTS="ON"
+
+DEB_MAKE_CHECK_TARGET = test
+
+DEB_MAKE_ENVVARS += PYTHONPYCACHEPREFIX=${DEB_DESTDIR}../../${DEB_BUILDDIR}/__pycache__
+DEB_MAKE_ENVVARS += CTEST_PARALLEL_LEVEL=4
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/source/format b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/format
index 163aaf8d..163aaf8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/source/format
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/format
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/source/options b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/options
index d71748bb..d71748bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/debian/source/options
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/debian/source/options
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/Track.jpg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Track.jpg
index b18b0477..b18b0477 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/Track.jpg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Track.jpg
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/Tracking.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Tracking.txt
index a1fb7850..a1fb7850 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/Tracking.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/Tracking.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/align-thresholds.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/align-thresholds.txt
index 4c41f7db..4c41f7db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/align-thresholds.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/align-thresholds.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/control_the_spaces.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/control_the_spaces.txt
index 8ea2ac52..8ea2ac52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/control_the_spaces.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/documentation/dump-steps.txt
new file mode 100644
index 00000000..498a147e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/dump-steps.txt
@@ -0,0 +1,53 @@
+
+This file describes the purpose of the 'dump steps' command line option.
+
+
+OVERVIEW
+--------
+The '-ds/--dump-steps' option instructs uncrustify to log a lot of debug information
+throughout the formatting process, which can be very useful when trying to understand
+why something is being formatted in the way it is. This is usually the case when the
+expected results do not match with the actual ones.
+
+
+COMPARISON WITH '-p' OPTION
+---------------------------
+While the '-p' option only prints the parsing information at the end of the process,
+the '-ds' option will print the same information at many points in time, providing
+extra depth to users and developers when troubleshooting an issue.
+
+
+GENERATED FILES
+---------------
+Add '-ds FILE' to the command line options to enable the functionality.
+This will create a number of files as follow:
+
+- FILE_000.log: this file contains the list of the options used by uncrustify
+- FILE_001.log: this file lists the parsing status after uncrustify has read the input file
+ and before starting the formatting process.
+- FILE_002.log: this file lists the parsing status before uncrustify enters its first internal
+ while loop
+- FILE_AAA.log - FILE_BBB.log: a variable number of files, depending on the progress of the
+ formatting process. Each file is printed at the end of one iteration of the
+ first internal while loop.
+- FILE_BBB+1.log: this file lists the parsing status before uncrustify enters its second internal
+ while loop
+- FILE_BBB+2.log - FILE_CCC.log: a variable number of files, depending on the progress of the
+ formatting process. Each file is printed at the end of one iteration of the
+ second internal while loop.
+- FILE_CCC+1.log: this file lists the parsing status at the end of the process.
+
+NOTE: by combining FILE_000.log and FILE_CCC+1.log, you will get the same content of the parsing
+ file obtained with the '-p' option.
+
+
+USAGE
+-----
+Comparing each file with the previous one will help understanding why something is being formatted
+the way it is. When debugging a formatting issue, this provides a quick way to restrict the
+section of the code that should be investigated.
+
+The first line of each file contains a brief descriptive string which can be used to quickly find the
+point in the code where the file was created. Look for 'dump_step(dump_file, <descriptive string>)' in
+src/uncrustify.cpp.
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/example.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/example.c
index 7c8edf79..7c8edf79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/example.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/example.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/goals.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/goals.txt
index 610ec121..610ec121 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/goals.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/goals.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/how_to_format_cpp_lambda_functions.rst b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/how_to_format_cpp_lambda_functions.rst
index e15776d4..e15776d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/how_to_format_cpp_lambda_functions.rst
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/how_to_format_cpp_lambda_functions.rst
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/align_typedef.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/align_typedef.html
index 6d94eadf..6d94eadf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/align_typedef.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/documentation/htdocs/ben.cfg.txt
new file mode 100644
index 00000000..5b19c7ca
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/ben.cfg.txt
@@ -0,0 +1,113 @@
+#
+# My favorite format
+#
+
+newlines = LF # AUTO (default), CRLF, CR, or LF
+
+indent_with_tabs = 0 # 1=indent to level only, 2=indent with tabs
+input_tab_size = 8 # original tab size
+output_tab_size = 3 # new tab size
+indent_columns = output_tab_size
+# indent_label = 0 # pos: absolute col, neg: relative column
+indent_align_string = False # align broken strings
+indent_brace = 0
+indent_class = true
+
+nl_start_of_file = remove
+# nl_start_of_file_min = 0
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_max = 4
+nl_before_block_comment = 2
+nl_after_func_body = 2
+nl_after_func_proto_group = 2
+
+nl_assign_brace = add # "= {" vs "= \n {"
+nl_enum_brace = add # "enum {" vs "enum \n {"
+nl_union_brace = add # "union {" vs "union \n {"
+nl_struct_brace = add # "struct {" vs "struct \n {"
+nl_do_brace = add # "do {" vs "do \n {"
+nl_if_brace = add # "if () {" vs "if () \n {"
+nl_for_brace = add # "for () {" vs "for () \n {"
+nl_else_brace = add # "else {" vs "else \n {"
+nl_while_brace = add # "while () {" vs "while () \n {"
+nl_switch_brace = add # "switch () {" vs "switch () \n {"
+nl_func_var_def_blk = 1
+nl_before_case = 1
+nl_fcall_brace = add # "foo() {" vs "foo()\n{"
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+nl_after_return = TRUE
+nl_brace_while = remove
+nl_brace_else = add
+nl_squeeze_ifdef = TRUE
+
+pos_bool = trail # BOOL ops on trailing end
+
+eat_blanks_before_close_brace = TRUE
+eat_blanks_after_open_brace = TRUE
+
+
+mod_paren_on_return = add # "return 1;" vs "return (1);"
+mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
+mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
+mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
+mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
+
+sp_before_byref = remove
+sp_before_semi = remove
+sp_paren_paren = remove # space between (( and ))
+sp_return_paren = remove # "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_inside_paren = remove
+sp_inside_fparen = remove
+sp_inside_sparen = remove
+sp_inside_for = remove
+sp_inside_square = remove
+#sp_type_func = ignore
+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();"
+sp_func_class_paren = remove
+sp_before_angle = force
+sp_after_angle = force
+sp_inside_angle = remove
+sp_sparen_brace = add
+sp_fparen_brace = add
+sp_after_ptr_star = remove
+sp_before_ptr_star = force
+sp_between_ptr_star = remove
+
+align_with_tabs = FALSE # use tabs to align
+align_on_tabstop = FALSE # align on tabstops
+align_enum_equ_span = 4
+align_nl_cont = TRUE
+align_var_def_span = 1
+align_var_def_thresh = 12
+align_var_def_inline = TRUE
+align_var_def_star = TRUE
+align_var_def_colon = TRUE
+align_assign_span = 1
+align_assign_thresh = 12
+align_struct_init_span = 3
+align_var_struct_span = 99
+align_right_cmt_span = 3
+align_pp_define_span = 3
+align_pp_define_gap = 4
+align_number_right = TRUE
+align_typedef_span = 5
+align_typedef_gap = 3
+
+cmt_star_cont = TRUE
+
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
new file mode 100644
index 00000000..8e907784
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/config.txt
@@ -0,0 +1,3371 @@
+# 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.73.0/documentation/htdocs/configuration.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/configuration.txt
index f61b1176..f61b1176 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/configuration.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/configuration.txt
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
new file mode 100644
index 00000000..8e907784
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/default.cfg
@@ -0,0 +1,3371 @@
+# 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.73.0/documentation/htdocs/examples/c-1.in.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.in.c
index c1a53476..c1a53476 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/c-1.in.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.in.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/c-1.out.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.out.c
index ceb484c6..ceb484c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/c-1.out.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/c-1.out.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/example.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/example.c
index 7c8edf79..7c8edf79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/examples/example.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/examples/example.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/images/linuxlinks.gif b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/images/linuxlinks.gif
index d3adec5c..d3adec5c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/images/linuxlinks.gif
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/images/linuxlinks.gif
Binary files differ
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
new file mode 100644
index 00000000..214ef64d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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 - 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.73.0/documentation/htdocs/linux.cfg.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/linux.cfg.txt
index baae9848..baae9848 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/linux.cfg.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/linux.cfg.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options.html
index 554836c3..554836c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_ASM.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ASM.html
index 4de0e7bb..4de0e7bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_ASM.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ASM.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Align.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Align.html
index b034a132..b034a132 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Align.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Align.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_CLI_NET.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_CLI_NET.html
index 8838cdf0..8838cdf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_CLI_NET.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_CLI_NET.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_C_sharp.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_C_sharp.html
index 74767b9d..74767b9d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_C_sharp.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_C_sharp.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_D.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_D.html
index 308b5c58..308b5c58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_D.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/documentation/htdocs/options_Indenting.html
new file mode 100644
index 00000000..7887f759
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Indenting.html
@@ -0,0 +1,130 @@
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <title>Uncrustify: where do the Indenting 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>Indenting</h2>
+<p>
+</p>
+<table border="1">
+<tr>
+<td>
+<pre><a name="indent_with_tabs"></a><a name="indent_cmt_with_tabs"></a>
+// indent_with_tabs = 0 spaces only
+// indent_cmt_with_tabs = false
+int foo::bar()
+{<a name="indent_columns"></a>
+ int a;
+<a title="indent_columns"><strong><font color="red">████</font></strong></a><a name="indent_continue"></a><a name="use_indent_continue_only_once"></a>
+ double a_very_long_variable = test (foobar1,
+ foobar5);
+ <a title="indent_continue, use_indent_continue_only_once"><strong><font color="red">████</font></strong></a>
+}
+</pre>
+</td>
+</tr>
+<tr>
+<td>
+<pre>
+class Test
+{<a name="indent_access_spec"></a>
+ private:
+<a title="indent_access_spec"><strong><font color="red">â–ˆ</font></strong></a>
+ int a;
+}
+</pre>
+</td>
+</tr>
+</table>
+<p></p>
+<h1>Register</h1>
+<table>
+ <tr>
+ <td><a href="#indent_columns">indent_columns</a></td>
+ <td><a href="#indent_continue">indent_continue</a></td>
+ <td><a href="#indent_with_tabs">indent_with_tabs</a></td>
+ <td><a href="#indent_cmt_with_tabs">indent_cmt_with_tabs</a></td>
+ <td><a href="#indent_align_string">indent_align_string</a></td>
+ <td><a href="#indent_xml_string">indent_xml_string</a></td>
+ <td><a href="#indent_brace">indent_brace</a></td>
+ <td><a href="#indent_braces">indent_braces</a></td>
+ <td><a href="#indent_braces_no_func">indent_braces_no_func</a></td>
+ <td><a href="#indent_braces_no_class">indent_braces_no_class</a></td>
+ <td><a href="#indent_braces_no_struct">indent_braces_no_struct</a></td>
+ <td><a href="#indent_brace_parent">indent_brace_parent</a></td>
+ <td><a href="#indent_paren_open_brace">indent_paren_open_brace</a></td>
+ <td><a href="#indent_namespace">indent_namespace</a></td>
+ <td><a href="#indent_namespace_single_indent">indent_namespace_single_indent</a></td>
+ <td><a href="#indent_namespace_level">indent_namespace_level</a></td>
+ <td><a href="#indent_namespace_limit">indent_namespace_limit</a></td>
+ <td><a href="#indent_extern">indent_extern</a></td>
+ <td><a href="#indent_class">indent_class</a></td>
+ <td><a href="#indent_class_colon">indent_class_colon</a></td>
+ <td><a href="#indent_class_on_colon">indent_class_on_colon</a></td>
+ <td><a href="#indent_constr_colon">indent_constr_colon</a></td>
+ <td><a href="#indent_ctor_init_leading">indent_ctor_init_leading</a></td>
+ <td><a href="#indent_ctor_init">indent_ctor_init</a></td>
+ <td><a href="#indent_else_if">indent_else_if</a></td>
+ <td><a href="#indent_var_def_blk">indent_var_def_blk</a></td>
+ <td><a href="#indent_var_def_cont">indent_var_def_cont</a></td>
+ <td><a href="#indent_shift">indent_shift</a></td>
+ <td><a href="#indent_func_def_force_col1">indent_func_def_force_col1</a></td>
+ <td><a href="#indent_func_call_param">indent_func_call_param</a></td>
+ <td><a href="#indent_func_def_param">indent_func_def_param</a></td>
+ <td><a href="#indent_func_proto_param">indent_func_proto_param</a></td>
+ <td><a href="#indent_func_class_param">indent_func_class_param</a></td>
+ <td><a href="#indent_func_ctor_var_param">indent_func_ctor_var_param</a></td>
+ <td><a href="#indent_template_param">indent_template_param</a></td>
+ <td><a href="#indent_func_param_double">indent_func_param_double</a></td>
+ <td><a href="#indent_func_const">indent_func_const</a></td>
+ <td><a href="#indent_func_throw">indent_func_throw</a></td>
+ <td><a href="#indent_member">indent_member</a></td>
+ <td><a href="#indent_single_line_comments_before">indent_single_line_comments_before</a></td>
+ <td><a href="#indent_single_line_comments_after">indent_single_line_comments_after</a></td>
+ <td><a href="#indent_relative_single_line_comments">indent_relative_single_line_comments</a></td>
+ <td><a href="#indent_switch_case">indent_switch_case</a></td>
+ <td><a href="#indent_case_shift">indent_case_shift</a></td>
+ <td><a href="#indent_case_brace">indent_case_brace</a></td>
+ <td><a href="#indent_col1_comment">indent_col1_comment</a></td>
+ <td><a href="#indent_label">indent_label</a></td>
+ <td><a href="#indent_access_spec">indent_access_spec</a></td>
+ <td><a href="#indent_access_spec_body">indent_access_spec_body</a></td>
+ <td><a href="#indent_paren_nl">indent_paren_nl</a></td>
+ <td><a href="#indent_paren_close">indent_paren_close</a></td>
+ <td><a href="#indent_comma_paren">indent_comma_paren</a></td>
+ <td><a href="#indent_bool_paren">indent_bool_paren</a></td>
+ <td><a href="#indent_first_bool_expr">indent_first_bool_expr</a></td>
+ <td><a href="#indent_square_nl">indent_square_nl</a></td>
+ <td><a href="#indent_preserve_sql">indent_preserve_sql</a></td>
+ <td><a href="#indent_align_assign">indent_align_assign</a></td>
+ <td><a href="#indent_off_after_assign">indent_off_after_assign</a></td>
+
+ <td><a href="#indent_min_vbrace_open">indent_min_vbrace_open</a></td>
+ <td><a href="#indent_vbrace_open_on_tabstop">indent_vbrace_open_on_tabstop</a></td>
+ <td><a href="#use_indent_continue_only_once">use_indent_continue_only_once</a></td>
+ </tr>
+ <tr>
+ </tr>
+</table>
+
+<h2>not yet shown</h2>
+
+<h2>only for Pawn</h2>
+
+<h2>only for Java</h2>
+
+<h2>only for objective C</h2>
+indent_oc_msg_colon<br>
+indent_oc_msg_prioritize_first_colon<br>
+indent_oc_block_msg_xcode_style<br>
+indent_oc_block_msg_from_keyword<br>
+indent_oc_block_msg_from_colon<br>
+indent_oc_block_msg_from_caret<br>
+indent_oc_block_msg_from_brace<br>
+indent_oc_inside_msg_sel<br>
+
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Java.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Java.html
index 80083042..80083042 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Java.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Java.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_ModifyCode.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ModifyCode.html
index e20e1098..e20e1098 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_ModifyCode.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_ModifyCode.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Namespace.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Namespace.html
index 74589df0..74589df0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Namespace.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Namespace.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_NewLines.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_NewLines.html
index 9d9ad656..9d9ad656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_NewLines.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_NewLines.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Objectiv-C.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Objectiv-C.html
index 993a1b95..993a1b95 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Objectiv-C.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Objectiv-C.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Positioning.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Positioning.html
index 4e8a36cc..4e8a36cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Positioning.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Positioning.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Preprocessor.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Preprocessor.html
index 1d99b69d..1d99b69d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Preprocessor.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Preprocessor.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Assign.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Assign.html
index 10c8b6b0..10c8b6b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Assign.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Assign.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Byref.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Byref.html
index 7ad47f72..7ad47f72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Byref.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Byref.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Case.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Case.html
index e40bfc5b..e40bfc5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Case.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Case.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Cast.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Cast.html
index 9e0b6e2d..9e0b6e2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Cast.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Cast.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Class.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Class.html
index 1bd1c4a5..1bd1c4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Class.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Class.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Comma.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Comma.html
index 3b3f0de1..3b3f0de1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Comma.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Comma.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Enum.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Enum.html
index f208c95f..f208c95f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Enum.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/documentation/htdocs/options_Space_For.html
new file mode 100644
index 00000000..5107f89f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_For.html
@@ -0,0 +1,33 @@
+<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>
+<h2>Spaces for for loop</h2>
+<p>
+</p>
+<table border="1", width="100%">
+<tr>
+<td>
+<pre>
+{
+ for (i = 0<a title="sp_before_semi_for"><font color="red">â–ˆ</font></a>;<a title="sp_after_semi_for"><font color="red">â–ˆ</font></a>i < 10<a title="sp_before_semi_for"><font color="red">â–ˆ</font></a>;<a title="sp_after_semi_for"><font color="red">â–ˆ</font></a>i++<a title="sp_after_semi"><font color="red">â–ˆ</font></a>)
+ {
+ b = i + 1;
+ }
+
+ for (<a title="sp_before_semi_for_empty"><font color="red">â–ˆ</font></a>;<a title="sp_between_semi_for_empty"><font color="red">â–ˆ</font></a>;<a title="sp_after_semi_for_empty"><font color="red">â–ˆ</font></a>)
+ {
+ b = b + 1;
+ }
+ for(auto x<a title="sp_before_for_colon"><font color="red">â–ˆ</font></a>:<a title="sp_after_for_colon"><font color="red">â–ˆ</font></a>std::as_const(str)) {}
+}
+</pre>
+</td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_New.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_New.html
index 587844ae..587844ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_New.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_New.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Operator.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Operator.html
index d73c964d..d73c964d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Operator.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Operator.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Paren.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Paren.html
index caa4a5a5..caa4a5a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Paren.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Paren.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Template.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Template.html
index d8792888..d8792888 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/options_Space_Template.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/options_Space_Template.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
new file mode 100644
index 00000000..5b69c590
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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>
+ 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.73.0/documentation/htdocs/project-support.jpg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/project-support.jpg
index 5d15550f..5d15550f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/project-support.jpg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/project-support.jpg
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/uncrustify.css b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.css
index 240171e9..240171e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/uncrustify.css
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.css
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/uncrustify.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.html
index 0528eb63..0528eb63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/htdocs/uncrustify.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/htdocs/uncrustify.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
new file mode 100644
index 00000000..01e0944c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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 graces but only one closing brace.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/overview.odt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/overview.odt
index e14e3285..e14e3285 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/overview.odt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/overview.odt
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/paren_stack.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/paren_stack.txt
index 109709dc..109709dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/paren_stack.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/paren_stack.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/theory.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/theory.txt
index 99324855..99324855 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/theory.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/theory.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/threads.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/threads.txt
index f6ed4edd..f6ed4edd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/threads.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/threads.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/track.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/track.html
index e49e4370..e49e4370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/documentation/track.html
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/documentation/track.html
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMakeLists.txt
index 72b6efa3..72b6efa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMakeLists.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMakeLists.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMake_catFiles.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_catFiles.cmake
index c637ea24..c637ea24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMake_catFiles.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_catFiles.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMake_emscripten_test.cmake b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_emscripten_test.cmake
index a37ee945..a37ee945 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/CMake_emscripten_test.cmake
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/CMake_emscripten_test.cmake
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/README.md b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/README.md
index 22012383..22012383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/README.md
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/README.md
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/build.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/build.sh
index df4b6fe3..df4b6fe3 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/build.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/build.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/libUncrustify.d.ts b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/libUncrustify.d.ts
index 1e7b7fb6..1e7b7fb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/libUncrustify.d.ts
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/libUncrustify.d.ts
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/postfix_file b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_file
index 17315134..17315134 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/postfix_file
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/postfix_module.js b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_module.js
index cbf8f57b..cbf8f57b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/postfix_module.js
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/postfix_module.js
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/prefix_file b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_file
index 6a6b5e98..6a6b5e98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/prefix_file
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/prefix_module.js b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_module.js
index 05d09cd7..05d09cd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/prefix_module.js
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/prefix_module.js
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/test/run_tests.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/run_tests.py
index c7a4fcae..c7a4fcae 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/test/run_tests.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/run_tests.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/test/test_run.js b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/test_run.js
index 27627094..27627094 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/emscripten/test/test_run.js
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/emscripten/test/test_run.js
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/MS-calling_conventions.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/MS-calling_conventions.cfg
index 36e9e14f..36e9e14f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/MS-calling_conventions.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/etc/align_assign.txt
new file mode 100644
index 00000000..ecc85081
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/align_assign.txt
@@ -0,0 +1,19 @@
+The alignment at the sign '=' must be divided in different cases.
+Case CT_ASSIGN
+ The most common case such as:
+ a = 1;
+
+Case CT_ASSIGN_DEFAULT_ARG
+ The default value for an argument such as:
+ Foo( int Foo = 5 );
+
+Case CT_ASSIGN_FUNC_PROTO
+ The function prototype modifier such as:
+ void* operator new(std::size_t) = delete;
+ Foo( const Foo & ) = default;
+ Foo( const Foo & ) = 0;
+
+Introduce the new option align_assign_func_proto
+
+Ref. #2170:
+ https://github.com/uncrustify/uncrustify/issues/2170
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/amxmodx.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/amxmodx.cfg
new file mode 100644
index 00000000..5f625076
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/amxmodx.cfg
@@ -0,0 +1,208 @@
+#
+# AMX Mod X style for Pawn (or as close as possible)
+#
+
+#######################
+# Basic Indenting Stuff
+
+# (a/i/r) comment notation for add/ignore/remove which is the actual setting
+input_tab_size = 1 # tab size on input file: usually 8
+output_tab_size = 8 # tab size for output: usually 8
+indent_columns = 8 # ie 3 or 8
+indent_with_tabs = 2 # 1=only to the 'level' indent, 2=use tab indenting
+#indent_paren_nl = 1 # indent-align under paren for open followed by nl
+
+pp_indent = remove # indent preproc 1 space per level (a/i/r)
+pp_space = remove # spaces between # and word (add/ignore/remove)
+
+#indent_switch_case = 1 # spaces to indent case from switch
+#indent_case_brace = 0 # spaces to indent '{' from case
+ # (usually 0 or indent_columns)
+
+#indent_brace = 0 # spaces to indent '{' from level (usually 0)
+indent_braces = 0 # whether to indent the braces or not
+#indent_label = 0 # 0=left >0=col from left (absolute column),
+ # <0=sub from brace indent (relative column)
+
+indent_align_string = false # True/False - indent align broken strings
+indent_col1_comment = false # indent comments in column 1
+indent_func_call_param = false # indent continued function calls to indent_columns otherwise index_columns + spaces to align with open paren.
+
+indent_namespace = true # indent stuff inside namespace braces
+indent_class = true # indent stuff inside class braces
+
+
+############################
+# Misc Inter-element Spacing
+# Force,Ignore,Add,Remove
+
+# ignored by nl_*_brace = true
+sp_paren_brace = force # space between ')' and '{'
+sp_fparen_brace = force # space between ')' and '{' of function
+sp_sparen_brace = force # space between ')' and '{' of if, while, etc
+
+sp_after_cast = force # space after cast - "(int) a" vs "(int)a"
+
+sp_before_byref = force # space before '&' of 'fcn(int& idx)'
+
+sp_inside_fparen = force # space inside 'foo( xxx )' vs 'foo(xxx)'
+sp_inside_fparens = remove # space inside 'foo( )' vs 'foo()'
+sp_inside_paren = remove # space inside '+ ( xxx )' vs '+ (xxx)'
+sp_inside_square = remove # space inside 'byte[ 5 ]' vs 'byte[5]'
+sp_inside_sparen = force # space inside 'if( xxx )' vs 'if(xxx)'
+sp_inside_for = force # space inside 'for( xxx )' vs 'for(xxx)'
+sp_inside_angle = ignore # space inside '<>', as in '<class T>'
+
+sp_before_sparen = force # space before '(' of 'if/for/while/switch'
+sp_after_sparen = force # space after ')' of 'if/for/while/switch'
+ # the do-while does not get set here
+
+sp_before_angle = ignore # space before '<>', as in '<class T>'
+sp_after_angle = ignore # space after '<>', as in '<class T>'
+
+sp_before_square = ignore # space before single '['
+sp_before_squares = remove # space before '[]', as in 'byte []'
+
+sp_paren_paren = force # space between nested parens - '( (' vs '(('
+
+sp_return_paren = remove # space between 'return' and '('
+sp_sizeof_paren = remove # space between 'sizeof' and '('
+
+sp_after_comma = force # space after ','
+
+sp_arith = force # space around + - / * etc
+sp_bool = force # space around || &&
+sp_compare = force # space around < > ==, etc
+sp_assign = force # space around =, +=, etc
+
+sp_func_def_paren = remove # space between 'func' and '(' - "foo (" vs "foo("
+sp_func_call_paren = remove # space between 'func' and '(' - "foo (" vs "foo("
+sp_func_proto_paren = remove # space between 'func' and '(' - "foo (" vs "foo("
+sp_func_class_paren = remove # space between ctor/dtor and '('
+
+#sp_type_func = 1 # space between return type and 'func'
+ # a minimum of 1 is forced except for '*'
+
+
+sp_special_semi = remove # space empty stmt ';' on while, if, for
+ # example "while (*p++ = ' ') ;"
+sp_before_semi = remove # space before all ';'
+sp_inside_braces = force # space inside '{' and '}' - "{ 1, 2, 3 }"
+sp_inside_braces_enum = force # space inside enum '{' and '}' - "{ a, b, c }"
+sp_inside_braces_struct = force # space inside struct/union '{' and '}'
+
+sp_macro = force # space between macro and value, ie '#define a 6'
+sp_macro_func = force # space between macro and value, ie '#define a 6'
+
+sp_square_fparen = remove # weird pawn stuff: native yark[rect](a[rect])
+sp_after_tag = remove # pawn: space after a tag colon
+
+
+################################
+# Code Alignment
+# (not left column spaces/tabs)
+
+align_with_tabs = true # use tabs for aligning (0/1)
+align_keep_tabs = false # keep non-indenting tabs
+align_on_tabstop = true # always align on tabstops
+align_nl_cont = false # align the back-slash \n combo (macros)
+align_enum_equ_span = 1 # align the '=' in enums
+align_assign_span = 1 # align on '='. 0=don't align
+align_assign_thresh = 0 # threshold for aligning on '='. 0=no limit
+align_right_cmt_span = 8 # align comment that end lines. 0=don't align
+align_var_def_span = 1 # align variable defs on variable (span for regular stuff)
+align_var_def_thresh = 0 # align variable defs threshold
+align_var_def_inline = true # also align inline struct/enum/union var defs
+align_var_def_star_style = 1 # the star is part of the variable name
+align_var_def_colon = false # align the colon in struct bit fields
+align_var_struct_span = 1 # span for struct/union (0=don't align)
+align_pp_define_span = 1 # align bodies in #define statements
+align_pp_define_gap = 1 # min space between define label and value "#define a <---> 16"
+
+align_struct_init_span = 1 # align structure initializer values
+align_func_proto_span = 1 # align function prototypes
+align_number_right = false # right-align numbers (not fully supported, yet)
+align_typedef_span = 1 # align single-line typedefs
+align_typedef_gap = 1 # minimum spacing
+align_typedef_star_style = 1 # Start aligning style
+ # 0: '*' not part of type
+ # 1: '*' part of the type - no space
+ # 2: '*' part of type, dangling
+
+
+#####################################
+# Newline Adding and Removing Options
+# Add/Remove/Ignore
+
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+nl_func_decl_start = ignore # newline after the '(' in a function decl
+nl_func_decl_args = ignore # newline after each ',' in a function decl
+nl_func_decl_end = ignore # newline before the ')' in a function decl
+nl_func_type_name = ignore # newline between return type and func name in def
+nl_func_var_def_blk = 0 # newline after a block of variable defs
+nl_before_case = false # newline before 'case' statement
+nl_after_return = false # newline after return statement
+nl_after_case = false # disallow nested "case 1: a=3;"
+nl_fcall_brace = add # newline between function call and open brace
+nl_squeeze_ifdef = false # no blanks after #ifxx, #elxx, or before #endif TRUE/F
+nl_enum_brace = ignore # nl between enum and brace
+nl_struct_brace = ignore # nl between struct and brace
+nl_union_brace = ignore # nl between union and brace
+nl_assign_brace = ignore # nl between '=' and brace
+nl_class_brace = ignore # nl between class name and brace
+nl_namespace_brace = ignore # nl between namespace name and brace
+
+nl_do_brace = add # nl between do and {
+nl_if_brace = add # nl between if and {
+nl_for_brace = add # nl between for and {
+nl_else_brace = remove # nl between else and {
+nl_while_brace = add # nl between while and {
+nl_switch_brace = add # nl between switch and {
+nl_brace_else = remove # nl between } and else
+nl_brace_while = add # nl between } and while of do stmt
+
+nl_elseif_brace = add # nl between close paren and open brace in 'else if () {'
+
+nl_define_macro = 0 # alter newlines in #define macros
+nl_start_of_file = ignore # alter newlines at the start of file
+nl_start_of_file_min = 0 # min number of newlines at the start of the file
+nl_end_of_file = ignore # alter newlines at the end of file
+nl_end_of_file_min = 0 # min number of newlines at the end of the file
+
+pos_bool = start # end=move &&/|| to EOL ignore=gnore, start=move to SOL
+
+#####################
+# Blank Line Options
+
+nl_before_block_comment = 3 # before a block comment (stand-alone
+ # comment-multi), except after brace open
+nl_after_func_body = 3 # after the closing brace of a function body
+nl_after_func_proto = 3 # after each prototype
+nl_after_func_proto_group = 3 # after a block of prototypes
+nl_max = 3 # maximum consecutive newlines (3=2 lines)
+
+eat_blanks_after_open_brace = true # remove blank lines after {
+eat_blanks_before_close_brace = true # remove blank lines before }
+
+########################
+# Code Modifying Options
+# (non-whitespace)
+
+mod_paren_on_return = force # add or remove paren on return
+mod_full_brace_nl = 1 # max number of newlines to span w/o braces
+mod_full_brace_if = ignore # add or remove braces on if
+mod_full_brace_for = ignore # add or remove braces on for
+mod_full_brace_do = ignore # add or remove braces on do
+mod_full_brace_while = ignore # add or remove braces on while
+mod_pawn_semicolon = True # add optional semicolons
+mod_full_brace_function = add # add optional braces on Pawn functions
+
+
+#######################
+# Comment Modifications
+
+cmt_star_cont = true # put a star on subsequent comment lines
+cmt_cpp_to_c = true # convert CPP comments to C comments
+cmt_cpp_group = true # if UO_cmt_cpp_to_c, try to group in one big C comment
+cmt_cpp_nl_start = true # put a blank /* at the start of a converted group
+cmt_cpp_nl_end = true # put a nl before the */ in a converted group
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
new file mode 100644
index 00000000..90309f8f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben.cfg
@@ -0,0 +1,1205 @@
+#
+# 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/ben2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben2.cfg
new file mode 100644
index 00000000..38464c10
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/ben2.cfg
@@ -0,0 +1,84 @@
+#
+# My favorite format
+#
+
+indent_with_tabs = 0 # 1=indent with tabs, 2=indent to level only
+input_tab_size = 8 # original tab size
+output_tab_size = 3 # new tab size
+indent_columns = output_tab_size
+indent_label = 2 # pos: absolute col, neg: relative column
+indent_align_string = False # align broken strings
+indent_brace = 0
+
+nl_enum_brace = add # "enum {" vs "enum \n {"
+nl_union_brace = add # "union {" vs "union \n {"
+nl_struct_brace = add # "struct {" vs "struct \n {"
+nl_do_brace = add # "do {" vs "do \n {"
+nl_if_brace = add # "if () {" vs "if () \n {"
+nl_for_brace = add # "for () {" vs "for () \n {"
+nl_else_brace = add # "else {" vs "else \n {"
+nl_while_brace = add # "while () {" vs "while () \n {"
+nl_switch_brace = add # "switch () {" vs "switch () \n {"
+nl_func_var_def_blk = 1
+nl_before_case = 1
+nl_fcall_brace = add # "foo() {" vs "foo()\n{"
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+nl_after_return = TRUE
+nl_brace_while = remove
+nl_brace_else = add
+nl_squeeze_ifdef = TRUE
+
+# mod_paren_on_return = add # "return 1;" vs "return (1);"
+# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
+# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
+# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
+# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
+
+sp_before_semi = remove
+sp_paren_paren = remove # space between (( and ))
+sp_return_paren = remove # "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_inside_paren = remove
+sp_inside_fparen = remove
+sp_inside_sparen = remove
+sp_inside_for = remove
+#sp_type_func = ignore
+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();"
+
+align_with_tabs = FALSE # use tabs to align
+align_on_tabstop = FALSE # align on tabstops
+align_enum_equ_span = 4
+align_nl_cont = TRUE
+align_var_def_span = 2
+align_var_def_inline = TRUE
+align_var_def_star_style = 1
+align_var_def_colon = TRUE
+align_assign_span = 1
+align_struct_init_span = 3
+align_var_struct_span = 3
+align_right_cmt_span = 3
+align_pp_define_span = 3
+align_pp_define_gap = 4
+align_number_right = TRUE
+align_typedef_span = 5
+align_typedef_gap = 3
+
+cmt_star_cont = TRUE
+
+eat_blanks_before_close_brace = TRUE
+eat_blanks_after_open_brace = TRUE
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/d.cfg
new file mode 100644
index 00000000..e69c37c7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/d.cfg
@@ -0,0 +1,84 @@
+#
+# My favorite format
+#
+
+indent_with_tabs = 0 # 1=indent to level only, 2=indent with tabs
+input_tab_size = 8 # original tab size
+output_tab_size = 4 # new tab size
+indent_columns = output_tab_size
+indent_label = 2 # pos: absolute col, neg: relative column
+indent_align_string = False # align broken strings
+indent_brace = 0
+
+nl_enum_brace = add # "enum {" vs "enum \n {"
+nl_union_brace = add # "union {" vs "union \n {"
+nl_struct_brace = add # "struct {" vs "struct \n {"
+nl_do_brace = add # "do {" vs "do \n {"
+nl_if_brace = add # "if () {" vs "if () \n {"
+nl_for_brace = add # "for () {" vs "for () \n {"
+nl_else_brace = add # "else {" vs "else \n {"
+nl_while_brace = add # "while () {" vs "while () \n {"
+nl_switch_brace = add # "switch () {" vs "switch () \n {"
+# nl_func_var_def_blk = 1
+# nl_before_case = 1
+nl_fcall_brace = add # "foo() {" vs "foo()\n{"
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+# nl_after_return = TRUE
+nl_brace_while = remove
+nl_brace_else = add
+nl_squeeze_ifdef = TRUE
+
+# mod_paren_on_return = add # "return 1;" vs "return (1);"
+# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
+# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
+# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
+# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
+
+sp_before_semi = remove
+sp_paren_paren = remove # space between (( and ))
+sp_return_paren = remove # "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 = add # "(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_inside_paren = remove
+sp_inside_fparen = remove
+sp_inside_sparen = remove
+sp_inside_for = remove
+#sp_type_func = ignore
+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();"
+
+align_with_tabs = FALSE # use tabs to align
+align_on_tabstop = FALSE # align on tabstops
+align_enum_equ_span = 4
+align_nl_cont = TRUE
+align_var_def_span = 2
+align_var_def_inline = TRUE
+align_var_def_star_style = 1
+align_var_def_colon = TRUE
+align_assign_span = 1
+align_struct_init_span = 3
+align_var_struct_span = 3
+align_right_cmt_span = 3
+align_pp_define_span = 3
+align_pp_define_gap = 4
+align_number_right = TRUE
+align_typedef_span = 5
+align_typedef_gap = 3
+
+# cmt_star_cont = TRUE
+
+eat_blanks_before_close_brace = TRUE
+eat_blanks_after_open_brace = TRUE
+
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
new file mode 100644
index 00000000..8e907784
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/defaults.cfg
@@ -0,0 +1,3371 @@
+# 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.73.0/etc/dofiles.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/dofiles.sh
index e08fd6f7..e08fd6f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/dofiles.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/dofiles.sh
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
new file mode 100644
index 00000000..af170f88
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/freebsd.cfg
@@ -0,0 +1,385 @@
+# 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/gnu-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/gnu-indent.cfg
new file mode 100644
index 00000000..03045618
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/gnu-indent.cfg
@@ -0,0 +1,83 @@
+#
+# GNU format (sorta)
+#
+
+indent_with_tabs = 0 # 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 = 2
+# indent_label = 2 # pos: absolute col, neg: relative column
+indent_align_string = False # align broken strings
+indent_brace = 2
+
+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 = add # "do {" vs "do \n {"
+nl_if_brace = add # "if () {" vs "if () \n {"
+nl_for_brace = add # "for () {" vs "for () \n {"
+nl_else_brace = add # "else {" vs "else \n {"
+nl_while_brace = add # "while () {" vs "while () \n {"
+nl_switch_brace = add # "switch () {" vs "switch () \n {"
+nl_func_var_def_blk = 1
+nl_before_case = 1
+nl_fcall_brace = add # "foo() {" vs "foo()\n{"
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+# nl_after_return = TRUE
+nl_brace_while = remove
+nl_brace_else = add
+nl_squeeze_ifdef = TRUE
+
+# mod_paren_on_return = ignore # "return 1;" vs "return (1);"
+# mod_full_brace_if = ignore # "if (a) a--;" vs "if (a) { a--; }"
+# mod_full_brace_for = ignore # "for () a--;" vs "for () { a--; }"
+# mod_full_brace_do = ignore # "do a--; while ();" vs "do { a--; } while ();"
+# mod_full_brace_while = ignore # "while (a) a--;" vs "while (a) { a--; }"
+
+sp_before_semi = remove
+sp_paren_paren = remove # space between (( and ))
+sp_return_paren = remove # "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_inside_paren = remove
+sp_inside_fparen = remove
+sp_inside_sparen = remove
+sp_inside_for = remove
+#sp_type_func = ignore
+sp_assign = force
+sp_arith = force
+sp_bool = force
+sp_compare = 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();"
+
+# align_with_tabs = FALSE # use tabs to align
+# align_on_tabstop = FALSE # align on tabstops
+# align_enum_equ_span = 4
+# align_nl_cont = TRUE
+# align_var_def_span = 2
+# align_var_def_inline = TRUE
+# align_var_def_star = TRUE
+# align_var_def_colon = TRUE
+# align_assign_span = 1
+# align_struct_init_span = 3
+# align_var_struct_span = 3
+# align_right_cmt_span = 3
+# align_pp_define_span = 3
+# align_pp_define_gap = 4
+# align_number_right = TRUE
+# align_typedef_span = 5
+# align_typedef_gap = 3
+
+# cmt_star_cont = TRUE
+
+eat_blanks_before_close_brace = TRUE
+eat_blanks_after_open_brace = TRUE
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/klaus.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/klaus.cfg
new file mode 100644
index 00000000..289ee792
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/klaus.cfg
@@ -0,0 +1,508 @@
+
+#
+# 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 (\). (Pawn)
+string_escape_char = 92 # number
+
+#
+# Indenting
+#
+
+# The number of columns to indent per level (usually 2, 3, 4, or 8)
+indent_columns = 3 # number
+
+# How to use tabs when indenting code
+# 0=spaces only
+# 1=indent with tabs, align with spaces
+# 2=indent and align with tabs
+indent_with_tabs = 0 # number
+
+# Whether to indent strings broken by '\' so that they line up
+indent_align_string = false # false/true
+
+# Spaces to indent '{' from level
+indent_brace = 0 # number
+
+# Whether braces are indented to the body level
+indent_braces = false # false/true
+
+# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
+indent_brace_parent = true # false/true
+
+# Whether the 'namespace' body is indented
+indent_namespace = false # false/true
+
+# Whether the 'class' body is indented
+indent_class = true # false/true
+
+# Whether to indent the stuff after a leading class colon
+indent_class_colon = false # false/true
+
+# Whether to indent continued function call parameters one indent level (true) or aligns instead of indent (false)
+indent_func_call_param = false # false/true
+
+# The number of spaces to indent a continued '->' or '.'
+# Usually set to indent_columns.
+indent_member = 3 # number
+
+# Spaces to indent 'case' from 'switch'
+indent_switch_case = 0 # number
+
+# Spaces to indent '{' from 'case'
+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 = 1 # number
+
+# 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
+
+# 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
+
+#
+# Spacing options
+#
+
+# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
+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 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
+sp_paren_paren = remove # ignore/add/remove/force
+
+# Add or remove space between ')' and '{'
+sp_paren_brace = ignore # ignore/add/remove/force
+
+# 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 '*'
+sp_after_ptr_star = 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
+
+# Add or remove space before reference sign '&'
+sp_before_byref = remove # ignore/add/remove/force
+
+# Add or remove space after reference sign '&'
+sp_after_byref = ignore # ignore/add/remove/force
+
+# Add or remove space before '<>'
+sp_before_angle = force # ignore/add/remove/force
+
+# Add or remove space after '<>'
+sp_after_angle = force # ignore/add/remove/force
+
+# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
+sp_before_sparen = remove # 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'
+sp_after_sparen = remove # ignore/add/remove/force
+
+# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
+sp_sparen_brace = remove # ignore/add/remove/force
+
+# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
+sp_special_semi = ignore # ignore/add/remove/force
+
+# Add or remove space before ';'
+sp_before_semi = remove # ignore/add/remove/force
+
+# Add or remove space before '[' (except '[]')
+sp_before_square = ignore # ignore/add/remove/force
+
+# Add or remove space before '[]'
+sp_before_squares = ignore # ignore/add/remove/force
+
+# Add or remove space inside '[' 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 between 'operator' and operator sign
+sp_after_operator = ignore # ignore/add/remove/force
+
+# Add or remove space after cast
+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 after the tag keyword (Pawn)
+sp_after_tag = ignore # 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 '<' and '>'
+sp_inside_angle = 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 = ignore # 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 = ignore # 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 '(' when part of a function call.
+sp_square_fparen = ignore # 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 macro and value
+sp_macro = ignore # ignore/add/remove/force
+
+# Add or remove space between macro function ')' and value
+sp_macro_func = ignore # ignore/add/remove/force
+
+# Add or remove space between 'else' and '{' if on the same line
+sp_else_brace = remove # ignore/add/remove/force
+
+# Add or remove space between '}' and 'else' if on the same line
+sp_brace_else = 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 alinging
+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
+
+# The span for aligning variable definitions (0=don't align)
+align_var_def_span = 1 # number
+
+# Whether the pointer star is part of the variable name or not
+align_var_def_star_style = 1
+
+# The threshold for aligning variable definitions (0=no limit)
+align_var_def_thresh = 12 # number
+
+# Whether to align the colon in struct bit fields
+align_var_def_colon = true # 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 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
+
+# Controls the positioning of the '*' in typedefs. Just try it.
+# 0: Align on typdef type, ignore '*'
+# 1: The '*' is part of type name: typedef int *pint;
+# 2: The '*' is part of the type: typedef int * pint;
+align_typedef_star_style = 0 # number
+
+# The span for aligning comments that end lines (0=don't align)
+align_right_cmt_span = 3 # number
+
+# The span for aligning function prototypes (0=don't align)
+align_func_proto_span = 0 # number
+
+# Whether to align macros wrapped with a backslash and a newline
+align_nl_cont = true # 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)
+align_pp_define_span = 3 # number
+
+#
+# Newline adding and removing options
+#
+
+# Try to limit code width to N number of columns
+code_width = 0 # number
+
+# Whether to collapse empty blocks between '{' and '}'
+nl_collapse_empty_body = 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 newlines after a block of variable definitions
+nl_func_var_def_blk = 1 # number
+
+# Add or remove newline between function call and '('
+nl_fcall_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'enum' and '{'
+nl_enum_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'struct and '{'
+nl_struct_brace = add # ignore/add/remove/force
+
+# Add or remove newline between 'union' and '{'
+nl_union_brace = add # 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 = force # 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 = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'else' and '{'
+nl_else_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 'while' and '{'
+nl_while_brace = remove # 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
+
+# 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
+
+# Newline between namespace and {
+nl_namespace_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'template<>' and 'class'
+nl_template_class = ignore # ignore/add/remove/force
+
+# Add or remove newline between 'class' and '{'
+nl_class_brace = ignore # ignore/add/remove/force
+
+# Add or remove newline after each ',' in the constructor member initialization
+nl_class_init_args = ignore # ignore/add/remove/force
+
+# Add or remove newline between return type and function name in definition
+nl_func_type_name = ignore # ignore/add/remove/force
+
+# Add or remove newline after '(' in a function declaration
+nl_func_decl_start = ignore # ignore/add/remove/force
+
+# Add or remove newline after each ',' in a function declaration
+nl_func_decl_args = ignore # ignore/add/remove/force
+
+# Add or remove newline before the ')' in a function declaration
+nl_func_decl_end = ignore # ignore/add/remove/force
+
+# Add or remove newline between function signature and '{'
+nl_fdef_brace = add # ignore/add/remove/force
+
+# Whether to put a newline after 'return' statement
+nl_after_return = true # false/true
+
+# 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
+
+# Whether to alter newlines in '#define' macros
+nl_define_macro = false # false/true
+
+# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
+nl_squeeze_ifdef = true # false/true
+
+#
+# Positioning options
+#
+
+# The position of boolean operators in wrapped expressions
+pos_bool = trail # ignore/lead/trail
+
+# The position of colons between constructor and member initialization
+pos_class_colon = ignore # ignore/lead/trail
+
+#
+# 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 the function body
+nl_after_func_body = 2 # number
+
+# The minimum number of newlines before a multi-line comment (doesn't apply if after a brace open)
+nl_before_block_comment = 2 # 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
+
+#
+# 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 function defintions. (Pawn)
+mod_full_brace_function = ignore # ignore/add/remove/force
+
+# Add or remove braces on single-line 'if' statement
+mod_full_brace_if = add # ignore/add/remove/force
+
+# 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
+
+# Add or remove unnecessary paren on 'return' statement
+mod_paren_on_return = add # ignore/add/remove/force
+
+# Whether to change optional semicolons to real semicolons
+mod_pawn_semicolon = false # false/true
+
+#
+# Comment modifications
+#
+
+# 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
+
+#
+# Preprocessor options
+#
+
+# Add or remove indent of preprocessor directives
+pp_indent = ignore # ignore/add/remove/force
+
+# Add or remove space between # and, say, define
+pp_space = ignore # ignore/add/remove/force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/kr-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/kr-indent.cfg
new file mode 100644
index 00000000..cd39b27a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/kr-indent.cfg
@@ -0,0 +1,83 @@
+#
+# K&R (sort-of)
+#
+
+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 = 2 # pos: absolute col, neg: relative column
+# indent_align_string = False # align broken strings
+# indent_brace = 0
+
+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_func_var_def_blk = 1
+# nl_before_case = 1
+nl_fcall_brace = add # "foo() {" vs "foo()\n{"
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+# nl_after_return = TRUE
+nl_brace_while = remove
+nl_brace_else = remove
+nl_squeeze_ifdef = TRUE
+
+# mod_paren_on_return = add # "return 1;" vs "return (1);"
+# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
+# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
+# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
+# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
+
+sp_before_semi = remove
+sp_paren_paren = remove # space between (( and ))
+sp_return_paren = remove # "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_inside_paren = remove # "( 1 )" vs "(1)"
+sp_inside_fparen = remove # "( 1 )" vs "(1)" - functions
+sp_inside_sparen = remove # "( 1 )" vs "(1)" - if etc
+sp_inside_for = remove # "( 1 )" vs "(1)" - for
+# sp_type_func = ignore
+sp_assign = force
+sp_arith = force
+sp_bool = force
+sp_compare = 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();"
+
+# align_with_tabs = FALSE # use tabs to align
+# align_on_tabstop = FALSE # align on tabstops
+# align_enum_equ_span = 4
+# align_nl_cont = TRUE
+# align_var_def_span = 2
+# align_var_def_inline = TRUE
+# align_var_def_star = TRUE
+# align_var_def_colon = TRUE
+# align_assign_span = 1
+# align_struct_init_span = 3
+# align_var_struct_span = 3
+# align_right_cmt_span = 3
+# align_pp_define_span = 3
+# align_pp_define_gap = 4
+# align_number_right = TRUE
+# align_typedef_span = 5
+# align_typedef_gap = 3
+
+# cmt_star_cont = TRUE
+
+eat_blanks_before_close_brace = TRUE
+eat_blanks_after_open_brace = TRUE
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/linux-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux-indent.cfg
index d6baa165..d6baa165 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/linux-indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/linux-indent.cfg
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
new file mode 100644
index 00000000..51c88d56
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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 = 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/mono.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/mono.cfg
new file mode 100644
index 00000000..b7aa9779
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/mono.cfg
@@ -0,0 +1,87 @@
+#
+# Mono library format
+#
+
+indent_with_tabs = 0 # 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 = 2 # pos: absolute col, neg: relative column
+# indent_align_string = False # align broken strings
+# indent_brace = 0
+indent_func_call_param = true # use indent tabstop
+
+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_func_var_def_blk = 1
+nl_before_case = 1
+nl_fcall_brace = remove # "foo() {" vs "foo()\n{"
+nl_fdef_brace = add # "int foo() {" vs "int foo()\n{"
+# nl_after_return = TRUE
+nl_brace_while = remove
+nl_brace_else = add
+nl_squeeze_ifdef = TRUE
+
+# mod_paren_on_return = add # "return 1;" vs "return (1);"
+# mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }"
+# mod_full_brace_for = add # "for () a--;" vs "for () { a--; }"
+# mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();"
+# mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }"
+
+sp_before_semi = remove
+sp_paren_paren = remove # space between (( and ))
+sp_return_paren = remove # "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_inside_paren = remove
+sp_inside_fparen = remove
+sp_inside_sparen = remove
+sp_inside_for = remove
+sp_inside_square = remove
+sp_before_square = add
+#sp_type_func = ignore
+sp_assign = force
+sp_arith = force
+sp_bool = force
+sp_compare = force
+sp_assign = force
+sp_after_comma = force
+sp_func_def_paren = force # "int foo (){" vs "int foo(){"
+sp_func_call_paren = force # "foo (" vs "foo("
+sp_func_proto_paren = force # "int foo ();" vs "int foo();"
+
+# align_with_tabs = FALSE # use tabs to align
+# align_on_tabstop = FALSE # align on tabstops
+# align_enum_equ_span = 4
+# align_nl_cont = TRUE
+# align_var_def_span = 2
+# align_var_def_inline = TRUE
+# align_var_def_star = TRUE
+# align_var_def_colon = TRUE
+# align_assign_span = 1
+# align_struct_init_span = 3
+# align_var_struct_span = 3
+# align_right_cmt_span = 3
+# align_pp_define_span = 3
+# align_pp_define_gap = 4
+# align_number_right = TRUE
+# align_typedef_span = 5
+# align_typedef_gap = 3
+
+cmt_star_cont = TRUE
+
+eat_blanks_before_close_brace = TRUE
+eat_blanks_after_open_brace = TRUE
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/msvc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/msvc.cfg
index 36e9e14f..36e9e14f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/msvc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/msvc.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/objc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/objc.cfg
index d3321f09..d3321f09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/objc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/objc.cfg
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
new file mode 100644
index 00000000..d2f51c5d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/sun.cfg
@@ -0,0 +1,1796 @@
+#
+# 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.73.0/etc/types.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/types.txt
index 0df27c78..0df27c78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/types.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/types.txt
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
new file mode 100644
index 00000000..19188d03
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uigui_uncrustify.ini
@@ -0,0 +1,7018 @@
+[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.73.0/etc/uncrust-files.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrust-files.sh
index 3e1d09b3..3e1d09b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uncrust-files.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrust-files.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uncrustify.xml.in b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrustify.xml.in
index 33f6c6a5..33f6c6a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/uncrustify.xml.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/uncrustify.xml.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/xsupplicant.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/xsupplicant.cfg
index 45d16fa6..45d16fa6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/etc/xsupplicant.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/etc/xsupplicant.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/extras.vpj b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/extras.vpj
index 4b57772a..4b57772a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/extras.vpj
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/extras.vpj
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg
new file mode 100644
index 00000000..ffab574e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.cfg
@@ -0,0 +1,471 @@
+# 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.73.0/forUncrustifySources.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.txt
index 5beb747f..5beb747f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/forUncrustifySources.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/forUncrustifySources.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/ChunkStack.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/ChunkStack.lnt
index cea5860f..cea5860f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/ChunkStack.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/ChunkStack.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/align.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/align.lnt
index 32e388c3..32e388c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/align.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/align.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/chunk_list.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/chunk_list.lnt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/chunk_list.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/chunk_list.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/logger.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/logger.lnt
index e41a1282..e41a1282 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/logger.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/logger.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/readme.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/readme.txt
index f2534349..f2534349 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/readme.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/readme.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/unc_text.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/unc_text.lnt
index 89cb4fdb..89cb4fdb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/unc_text.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/unc_text.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/uncrustify_types.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/lnt/uncrustify_types.lnt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/lnt/uncrustify_types.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/man/uncrustify.1.in
new file mode 100644
index 00000000..41267296
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/man/uncrustify.1.in
@@ -0,0 +1,181 @@
+.TH UNCRUSTIFY "1" "Oct 2014" "uncrustify @PACKAGE_VERSION@" "User Commands"
+.SH NAME
+uncrustify \- C, C++, C#, D, Java and Pawn source code beautifier
+
+.SH SYNOPSIS
+.B uncrustify \fR[\fIOPTIONS\fR] [\fIFILES\fR]
+
+.SH DESCRIPTION
+
+If no input files are specified, the input is read from stdin.
+.br
+If reading from stdin, you should specify the language using \-l.
+
+If \-F is used or files are specified on the command line, the output filename is
+\fIPFX\fR + "/" + filename + \fISFX\fR.
+.br
+Unless, of course, the options \fB\-\-replace\fR or \fB\-\-no\-backup\fR are used.
+
+When reading from stdin or doing a single file via the '\-f' option,
+the output is dumped to stdout, unless redirected with \-o FILE.
+
+Errors are always dumped to stderr
+
+.SH OPTIONS
+.SS "Basic Options:"
+.TP
+\fB\-c\fI CFG\fR
+Use the config file \fICFG\fR, or defaults if \fICFG\fR is set to '-'.
+.br
+If not specified, uncrustify will use \fB$UNCRUSTIFY_CONFIG\fR or \fB$HOME/.uncrustify.cfg\fR.
+.TP
+\fB\-f\fI FILE\fR
+Process the single file \fIFILE\fR, sending output to stdout or the file specified with \fB\-o\fR.
+.TP
+\fB\-o\fI FILE\fR
+Redirect output to \fIFILE\fR.
+.br
+Use with \fB\-f\fR, \fB\-\-update\-config\fR, \fB\-\-update\-config\-with\-doc\fR,
+\fB\-\-universalindent\fR.
+.TP
+\fB\-\-check\fR
+Do not output the new text, instead verify that nothing changes when
+the file(s) are processed. The status of every file is printed to
+stderr. The exit code is EXIT_SUCCESS if there were no changes, EXIT_FAILURE otherwise.
+.TP
+\fB\-F\fI FILE\fR
+Read files to process from \fIFILE\fR, one filename per line. If \fIFILE\fR
+is \'\-\' then read filenames from standard input instead of a file.
+.br
+You can create this file using something like \'\fBfind . \-name "*.c" > list.txt\fR\'.
+.br
+This cannot be combined with \fB\-f\fR.
+.TP
+\fB\-\-prefix\fI PFX\fR
+Prepend \fIPFX\fR to the output filename path.
+.br
+This cannot be combined with \fB\-f\fR, \fB\-\-replace\fR, or \fB\-\-no\-backup\fR.
+.TP
+\fB\-\-suffix\fI SFX\fR
+Append \fISFX\fR to the output filename.
+.br
+The default is '.uncrustify' if neither \fISFX\fR or \fIPFX\fR are specified.
+.br
+This cannot be combined with \fB\-f\fR, \fB\-\-replace\fR, or \fB\-\-no\-backup\fR.
+.TP
+\fB\-\-frag\fR
+Assume the input is a code fragment and the first line is properly indented.
+.TP
+\fB\-\-replace\fR
+Replace source files (creates a backup).
+.br
+This cannot be combined with \fB\-f\fR, \fB\-\-prefix\fR, or \fB\-\-suffix\fR.
+.TP
+\fB\-\-no\-backup\fR
+Replace files, no backup. Useful if files are under source control
+.br
+This cannot be combined with \fB\-f\fR, \fB\-\-prefix\fR, or \fB\-\-suffix\fR.
+.TP
+\fB\-\-mtime\fR
+Preserve mtime on replaced files.
+.TP
+\fB\-l\fR
+Language override: C, CPP, D, CS, JAVA, PAWN, VALA, OC, OC+
+.TP
+\fB\-t\fR
+Load a file with types (usually not needed)
+.TP
+\fB\-q\fR
+Quiet mode \- no output on stderr (\fB\-L\fR will override)
+.SS "Config/Help Options:"
+.TP
+\fB\-h\fR \-? \fB\-\-help\fR \fB\-\-usage\fR
+Print this message and exit
+.TP
+\fB\-\-version\fR
+Print the version and exit
+.TP
+\fB\-\-count\-options\fR
+Print the number of available options and exit
+.TP
+\fB\-\-show\-config\fR
+Print out option documentation and exit
+.TP
+\fB\-\-update\-config\fR
+Output a new config file.
+.TP
+\fB\-\-update\-config\-with\-doc\fR
+Output a new config file with embedded usage comments.
+.TP
+\fB\-\-universalindent\fR
+Output a config file for Universal Indent GUI.
+.TP
+\fB\-\-detect\fR
+Detects the config from a source file. Use with '\-f \fIFILE\fR'.
+Detection is currently fairly limited.
+
+.SS "Debug Options:"
+.TP
+\fB\-p \fIFILE\fR
+Dump debug info into \fIFILE\fR, or to stdout if \fIFILE\fR is set to '-'.
+.br
+Must be used in combination with '-f \fIFILE\fR'.
+.TP
+\fB\-ds \fIFILE\fR \fB\-\-dump\-steps \fIFILE\fR
+Dump parsing info at various moments of the formatting process.
+.br
+This creates a series of files named '\fIFILE\fR_nnn.log', each
+.br
+corresponding to a formatting step in uncrustify.
+.br
+The file '\fIFILE\fR_000.log' lists the formatting options in use.
+.br
+Must be used in combination with '-f \fIFILE\fR'.
+.TP
+\fB\-L\fI SEV\fR
+Set the log severity (see log_levels.h)
+.TP
+\fB\-s\fR
+Show the log severity in the logs
+.TP
+\fB\-\-decode\fI FLAG\fR
+Print \fIFLAG\fR as text and exit
+
+.SH EXAMPLES
+.TP
+Read a D file from stdin, output to stdout.
+cat foo.d | uncrustify \-q \-c my.cfg \-l d
+.TP
+Process a file, output to stdout.
+uncrustify \-c my.cfg \-d foo.d
+.TP
+Process a source tree, output to a different tree.
+find src \-name "*.[ch]" > files.txt
+.br
+uncrustify \-c my.cfg \-F files.txt \-\-prefix out
+.TP
+Process a source tree in\(hyplace.
+uncrustify \-c my.cfg \-\-no\-backup $(find src \-name "*.[ch]")
+
+.SH NOTES
+Use comments containing ' *INDENT\-OFF*' and ' *INDENT\-ON*' to disable
+processing of parts of the source file.
+
+.SH AUTHOR
+Written by Ben Gardner
+
+.SH REPORTING BUGS
+Use the issue tracker at <http://sourceforge.net/projects/uncrustify>
+
+.SH COPYRIGHT
+Copyright (C) 2006\(hy2014 Ben Gardner
+.br
+Copyright (C) 2015, 2016 Guy Maurel
+
+.SH LICENSE
+GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
+
+This is free software; see the source for copying conditions.
+There is NO warranty; not even for MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/osx/Xcode Organizer Actions.xccommands b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/osx/Xcode Organizer Actions.xccommands
index be727021..be727021 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/osx/Xcode Organizer Actions.xccommands
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/osx/Xcode Organizer Actions.xccommands
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/package.json b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/package.json
new file mode 100644
index 00000000..e8ffb38c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/package.json
@@ -0,0 +1,21 @@
+{
+ "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
new file mode 100644
index 00000000..1cabf504
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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 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.73.0/scripts/Gcov_test.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Gcov_test.sh
index a3853773..a3853773 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/Gcov_test.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Gcov_test.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/Run_clang-tidy.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Run_clang-tidy.sh
index c2f1c150..c2f1c150 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/Run_clang-tidy.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/Run_clang-tidy.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/add_test_list.awk b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/add_test_list.awk
index 1fbe2840..1fbe2840 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/add_test_list.awk
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/add_test_list.awk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/check_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/check_options.py
index 1d32224b..1d32224b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/check_options.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/check_options.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/cmpcfg.pl b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/cmpcfg.pl
index df119dc1..df119dc1 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/cmpcfg.pl
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/cmpcfg.pl
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/compare_the_gcov.awk b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/compare_the_gcov.awk
index 30dba1ad..30dba1ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/compare_the_gcov.awk
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/compare_the_gcov.awk
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_changelog.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_changelog.py
index 8e042385..8e042385 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_changelog.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_changelog.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_config_combinations_uniq_output.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output.py
index 2fa4fb0c..2fa4fb0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_config_combinations_uniq_output.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_config_combinations_uniq_output_example.json b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output_example.json
index 315fdfef..315fdfef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/gen_config_combinations_uniq_output_example.json
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/gen_config_combinations_uniq_output_example.json
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/grammar_permutator.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/grammar_permutator.py
index cd42bd9f..cd42bd9f 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/grammar_permutator.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/grammar_permutator.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_katehl.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_katehl.py
index e241986a..e241986a 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_katehl.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_katehl.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_option_enum.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_option_enum.py
index c141bb04..c141bb04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_option_enum.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_option_enum.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_options.py
index 71e97115..71e97115 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_options.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_options.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_punctuator_table.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_punctuator_table.py
index f3d90081..f3d90081 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_punctuator_table.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_punctuator_table.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_version.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_version.py
index 14e20018..14e20018 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/make_version.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/make_version.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/option_reducer.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/option_reducer.py
index 403ff92b..403ff92b 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/option_reducer.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/option_reducer.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/au-sm123.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/au-sm123.lnt
index 6eaf9a6b..6eaf9a6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/au-sm123.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/au-sm123.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/co-gcc.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.h
index e948a20f..e948a20f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/co-gcc.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/co-gcc.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.lnt
index f7bd38dd..f7bd38dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/co-gcc.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/co-gcc.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/lint_cfg.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/lint_cfg.lnt
index 72530d53..72530d53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/lint_cfg.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/lint_cfg.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/pclint_cfg_eclipse.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/pclint_cfg_eclipse.lnt
index d1945c5b..d1945c5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/pclint_cfg_eclipse.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/pclint_cfg_eclipse.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/policy.lnt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/policy.lnt
index 911e74b7..911e74b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/policy.lnt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/policy.lnt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/run-pclint-eclipse.bat b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/run-pclint-eclipse.bat
index 1a778bfa..1a778bfa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/run-pclint-eclipse.bat
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/run-pclint-eclipse.bat
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/usage.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/usage.txt
index fff1c305..fff1c305 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/pclint/usage.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/pclint/usage.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/prepare_list_of_authors.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/prepare_list_of_authors.sh
index 6485d377..6485d377 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/prepare_list_of_authors.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/prepare_list_of_authors.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/release_tool.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/release_tool.py
index 2dd71676..2dd71676 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/release_tool.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/release_tool.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/run_ctest.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/run_ctest.py
index 0267e0ad..0267e0ad 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/run_ctest.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/run_ctest.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/tokenizer.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/tokenizer.py
index 0bc33bac..0bc33bac 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/tokenizer.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/tokenizer.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/update_emscripten_bindings.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/update_emscripten_bindings.py
index d44a58a6..d44a58a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/scripts/update_emscripten_bindings.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/scripts/update_emscripten_bindings.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/.kateconfig b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/.kateconfig
index 4d9024f0..4d9024f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/.kateconfig
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/.kateconfig
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ChunkStack.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.cpp
index c04c6e5e..c04c6e5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ChunkStack.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ChunkStack.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.h
index 8434d895..8434d895 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ChunkStack.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ChunkStack.h
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
new file mode 100644
index 00000000..ff0e3a65
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.cpp
@@ -0,0 +1,2859 @@
+/**
+ * @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.73.0/src/EnumStructUnionParser.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.h
index b3062d48..b3062d48 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/EnumStructUnionParser.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/EnumStructUnionParser.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ListManager.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ListManager.h
index 1b45c2a4..1b45c2a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ListManager.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ListManager.h
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
new file mode 100644
index 00000000..b309ff79
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.cpp
@@ -0,0 +1,294 @@
+/**
+ * @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.73.0/src/ParseFrame.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/ParseFrame.h
index cad34ab3..cad34ab3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/ParseFrame.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/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.74.0/src/add_space_table.h
new file mode 100644
index 00000000..cb664d2d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/add_space_table.h
@@ -0,0 +1,296 @@
+// *INDENT-OFF*
+ { CT_ACCESS, CT_TYPE },
+ { CT_ACCESS, CT_WORD },
+ { CT_ALIGN, CT_PAREN_OPEN },
+ { CT_AMP, CT_WORD },
+ { CT_ANGLE_CLOSE, CT_BRACE_OPEN },
+ { CT_ANNOTATION, CT_ANNOTATION },
+ { CT_ANNOTATION, CT_TYPE },
+ { CT_ASM_COLON, CT_ASM_COLON },
+ { CT_ASM_COLON, CT_STRING },
+ { CT_ASM, CT_FUNC_CALL },
+ { CT_ASM, CT_PAREN_OPEN },
+ { CT_ASM, CT_QUALIFIER },
+ { CT_ASSERT, CT_PAREN_OPEN },
+ { CT_ASSIGN_FUNC_PROTO, CT_DEFAULT },
+ { CT_ASSIGN_FUNC_PROTO, CT_DELETE },
+ { CT_ASSIGN_FUNC_PROTO, CT_NUMBER },
+ { CT_ATTRIBUTE, CT_ATTRIBUTE },
+ { CT_ATTRIBUTE, CT_BRACE_OPEN },
+ { CT_ATTRIBUTE, CT_CASE },
+ { CT_ATTRIBUTE, CT_QUALIFIER },
+ { CT_ATTRIBUTE, CT_TYPE },
+ { CT_ATTRIBUTE, CT_WORD },
+ { CT_AUTORELEASEPOOL, CT_BRACE_OPEN },
+ { CT_BIT_COLON, CT_NUMBER },
+ { CT_BIT_COLON, CT_SIZEOF },
+ { CT_BIT_COLON, CT_TYPE },
+ { CT_BIT_COLON, CT_WORD },
+ { CT_BODY, CT_BRACE_OPEN },
+ { CT_BRACE_CLOSE, CT_BRACE_OPEN },
+ { CT_BRACE_CLOSE, CT_CLASS },
+ { CT_BRACE_CLOSE, CT_FUNC_CALL },
+ { CT_BRACE_CLOSE, CT_GETSET },
+ { CT_BRACE_CLOSE, CT_IF },
+ { CT_BRACE_CLOSE, CT_OC_MSG_NAME },
+ { CT_BRACE_CLOSE, CT_PAREN_OPEN },
+ { CT_BRACE_CLOSE, CT_QUALIFIER },
+ { CT_BRACE_CLOSE, CT_RETURN },
+ { CT_BRACE_CLOSE, CT_TYPE },
+ { CT_BRACE_CLOSE, CT_WORD },
+ { CT_BREAK, CT_WORD },
+ { CT_BYREF, CT_INV },
+ { CT_CASE_COLON, CT_ATTRIBUTE },
+ { CT_CASE_COLON, CT_BRACE_OPEN },
+ { CT_CASE_COLON, CT_BREAK },
+ { CT_CASE_COLON, CT_RETURN },
+ { CT_CASE_COLON, CT_WORD },
+ { CT_CASE, CT_NEG },
+ { CT_CASE, CT_PAREN_OPEN },
+ { CT_CASE, CT_STRING },
+ { CT_CATCH, CT_FUNC_CALL },
+ { CT_CLASS_COLON, CT_FUNC_CALL },
+ { CT_CLASS_COLON, CT_QUALIFIER },
+ { CT_CLASS_COLON, CT_TYPE },
+ { CT_CLASS_COLON, CT_WORD },
+ { CT_COLON, CT_COLON },
+ { CT_COLON, CT_NUMBER },
+ { CT_COLON, CT_QUALIFIER },
+ { CT_COLON, CT_STRING },
+ { CT_COLON, CT_TYPE },
+ { CT_COLON, CT_WORD },
+ { CT_COMMENT_EMBED, CT_FUNC_CLASS_PROTO },
+ { CT_COMMENT_MULTI, CT_ELSE },
+ { CT_CONCAT, CT_STRING },
+ { CT_CONCAT, CT_WORD },
+ { CT_COND_COLON, CT_FUNC_CALL },
+ { CT_COND_COLON, CT_STRING },
+ { CT_COND_COLON, CT_WORD },
+ { CT_CONSTRUCT, CT_TYPE },
+ { CT_CONTINUE, CT_WORD },
+ { CT_CS_PROPERTY, CT_BRACE_OPEN },
+ { CT_DEFAULT, CT_STRING },
+ { CT_DEFAULT, CT_WORD },
+ { CT_DELEGATE, CT_BRACE_OPEN },
+ { CT_D_MODULE, CT_WORD },
+ { CT_ELLIPSIS, CT_NUMBER },
+ { CT_ELSE, CT_FOR },
+ { CT_ELSE, CT_IF },
+ { CT_ELSE, CT_PAREN_OPEN },
+ { CT_ELSE, CT_WORD },
+ { CT_ELSEIF, CT_CONSTEXPR },
+ { CT_ENUM_CLASS, CT_ATTRIBUTE },
+ { CT_ENUM_CLASS, CT_TYPE },
+ { CT_ENUM, CT_ATTRIBUTE },
+ { CT_ENUM, CT_BIT_COLON },
+ { CT_ENUM, CT_BRACE_OPEN },
+ { CT_ENUM, CT_ENUM_CLASS },
+ { CT_ENUM, CT_FPAREN_OPEN },
+ { CT_ENUM, CT_FUNCTION },
+ { CT_ENUM, CT_TYPE },
+ { CT_ENUM, CT_WORD },
+ { CT_EXECUTION_CONTEXT, CT_EXECUTION_CONTEXT },
+ { CT_EXECUTION_CONTEXT, CT_FPAREN_OPEN },
+ { CT_EXTERN, CT_STRING },
+ { CT_FPAREN_CLOSE, CT_ASSIGN_FUNC_PROTO },
+ { CT_FPAREN_CLOSE, CT_ATTRIBUTE },
+ { CT_FPAREN_CLOSE, CT_CLASS_COLON },
+ { CT_FPAREN_CLOSE, CT_COND_COLON },
+ { CT_FPAREN_CLOSE, CT_DEFAULT },
+ { CT_FPAREN_CLOSE, CT_FUNC_CALL },
+ { CT_FPAREN_CLOSE, CT_NEG },
+ { CT_FPAREN_CLOSE, CT_NOT },
+ { CT_FPAREN_CLOSE, CT_OC_MSG_NAME },
+ { CT_FPAREN_CLOSE, CT_QUESTION },
+ { CT_FPAREN_CLOSE, CT_STRING },
+ { CT_FPAREN_CLOSE, CT_THROW },
+ { CT_FPAREN_CLOSE, CT_TYPE },
+ { CT_FPAREN_CLOSE, CT_WHERE_SPEC },
+ { CT_FPAREN_CLOSE, CT_WORD },
+ { CT_FRIEND, CT_CLASS },
+ { CT_FRIEND, CT_STRUCT },
+ { CT_FRIEND, CT_TYPE },
+ { CT_FUNCTION, CT_PAREN_OPEN },
+ { CT_FUNC_VAR, CT_PPAREN_CLOSE },
+ { CT_GOTO, CT_WORD },
+ { CT_IF, CT_CONSTEXPR },
+ { CT_IMPORT, CT_WORD },
+ { CT_INCDEC_AFTER, CT_DEREF },
+ { CT_IN, CT_TYPE },
+ { CT_IN, CT_WORD },
+ { CT_LABEL_COLON, CT_CS_PROPERTY },
+ { CT_LABEL_COLON, CT_FUNC_CALL },
+ { CT_LABEL_COLON, CT_NEW },
+ { CT_LABEL_COLON, CT_PAREN_OPEN },
+ { CT_LABEL_COLON, CT_RETURN },
+ { CT_LABEL_COLON, CT_STRING },
+ { CT_LABEL_COLON, CT_TYPE },
+ { CT_LABEL_COLON, CT_WORD },
+ { CT_LOCK, CT_PAREN_OPEN },
+ { CT_NAMESPACE, CT_BRACE_OPEN },
+ { CT_NAMESPACE, CT_TYPE },
+ { CT_NAMESPACE, CT_WORD },
+ { CT_NATIVE, CT_TAG },
+ { CT_NUMBER, CT_CHAR },
+ { CT_NUMBER, CT_COLON },
+ { CT_NUMBER, CT_ELLIPSIS },
+ { CT_NUMBER, CT_OC_MSG_NAME },
+ { CT_NUMBER, CT_PAREN_OPEN },
+ { CT_NUMBER, CT_WORD },
+ { CT_NUMBER_FP, CT_NUMBER },
+ { CT_NUMBER_FP, CT_OC_MSG_NAME },
+ { CT_NUMBER_FP, CT_WORD },
+ { CT_OC_CLASS, CT_CLASS_COLON },
+ { CT_OC_CLASS, CT_PAREN_OPEN },
+ { CT_OC_DYNAMIC, CT_WORD },
+ { CT_OC_IMPL, CT_OC_CLASS },
+ { CT_OC_INTF, CT_OC_CLASS },
+ { CT_OC_MSG_DECL, CT_BRACE_OPEN },
+ { CT_OC_PROTOCOL, CT_OC_CLASS },
+ { CT_PACKAGE, CT_WORD },
+ { CT_PAREN_CLOSE, CT_ASM_COLON },
+ { CT_PAREN_CLOSE, CT_COLON },
+ { CT_PAREN_CLOSE, CT_COND_COLON },
+ { CT_PAREN_CLOSE, CT_CS_PROPERTY },
+ { CT_PAREN_CLOSE, CT_DEREF },
+ { CT_PAREN_CLOSE, CT_NOT },
+ { CT_PAREN_CLOSE, CT_NUMBER },
+ { CT_PAREN_CLOSE, CT_OC_MSG_NAME },
+ { CT_PAREN_CLOSE, CT_POS },
+ { CT_PAREN_CLOSE, CT_QUALIFIER },
+ { CT_PAREN_CLOSE, CT_TYPE },
+ { CT_PP_DEFINE, CT_MACRO },
+ { CT_PP_DEFINE, CT_MACRO_FUNC },
+ { CT_PP_DEFINE, CT_NUMBER },
+ { CT_PP_DEFINE, CT_PP_IGNORE },
+ { CT_PP_DEFINED, CT_TYPE },
+ { CT_PP_DEFINED, CT_WORD },
+ { CT_PP_ELSE, CT_FUNC_CALL },
+ { CT_PP_ELSE, CT_NOT },
+ { CT_PP_ELSE, CT_NUMBER },
+ { CT_PP_ELSE, CT_PAREN_OPEN },
+ { CT_PP_ELSE, CT_PP_DEFINED },
+ { CT_PP_ELSE, CT_WORD },
+ { CT_PP_EMIT, CT_MACRO },
+ { CT_PP_ENDIF, CT_WORD },
+ { CT_PP_ENDREGION, CT_PREPROC_BODY },
+ { CT_PP_IF, CT_CNG_HASINC },
+ { CT_PP_IF, CT_FUNC_CALL },
+ { CT_PP_IF, CT_NOT },
+ { CT_PP_IF, CT_NUMBER },
+ { CT_PP_IF, CT_PAREN_OPEN },
+ { CT_PP_IF, CT_PP_ASM },
+ { CT_PP_IF, CT_PP_DEFINE },
+ { CT_PP_IF, CT_PP_DEFINED },
+ { CT_PP_IF, CT_TYPE },
+ { CT_PP_IF, CT_WORD },
+ { CT_PP_INCLUDE, CT_STRING },
+ { CT_PP_INCLUDE, CT_WORD },
+ { CT_PP_OTHER, CT_PREPROC_BODY },
+ { CT_PP_PROPERTY, CT_WORD },
+ { CT_PP_REGION, CT_PREPROC_BODY },
+ { CT_PP_UNDEF, CT_TYPE },
+ { CT_PP_UNDEF, CT_WORD },
+ { CT_Q_EMIT, CT_FUNC_CALL },
+ { CT_Q_FOREVER, CT_BRACE_OPEN },
+ { CT_QUESTION, CT_FUNC_CALL },
+ { CT_QUESTION, CT_PAREN_OPEN },
+ { CT_QUESTION, CT_STRING },
+ { CT_QUESTION, CT_WORD },
+ { CT_SBOOL, CT_TYPE },
+ { CT_SCOMPARE, CT_WORD },
+ { CT_SPAREN_CLOSE, CT_ATTRIBUTE },
+ { CT_SPAREN_CLOSE, CT_AUTORELEASEPOOL },
+ { CT_SPAREN_CLOSE, CT_BRACE_OPEN },
+ { CT_SPAREN_CLOSE, CT_FUNC_CALL },
+ { CT_SPAREN_CLOSE, CT_WORD },
+ { CT_SQL_ASSIGN, CT_FUNC_CALL },
+ { CT_SQL_ASSIGN, CT_WORD },
+ { CT_SQL_BEGIN, CT_SQL_WORD },
+ { CT_SQL_END, CT_SQL_WORD },
+ { CT_SQL_EXEC, CT_SQL_WORD },
+ { CT_SQL_WORD, CT_COLON },
+ { CT_SQL_WORD, CT_PAREN_OPEN },
+ { CT_SQL_WORD, CT_SQL_WORD },
+ { CT_SQUARE_CLOSE, CT_ATTRIBUTE },
+ { CT_SQUARE_CLOSE, CT_BRACE_OPEN },
+ { CT_SQUARE_CLOSE, CT_COLON },
+ { CT_SQUARE_CLOSE, CT_EXECUTION_CONTEXT },
+ { CT_SQUARE_CLOSE, CT_OC_MSG_NAME },
+ { CT_SQUARE_CLOSE, CT_STRING },
+ { CT_SQUARE_CLOSE, CT_WORD },
+ { CT_STATE, CT_TYPE },
+ { CT_STOCK, CT_QUALIFIER },
+ { CT_STOCK, CT_TAG },
+ { CT_STRING, CT_ATTRIBUTE },
+ { CT_STRING, CT_BRACE_OPEN },
+ { CT_STRING, CT_COLON },
+ { CT_STRING, CT_CONCAT },
+ { CT_STRING, CT_OC_MSG_NAME },
+ { CT_STRING, CT_PAREN_OPEN },
+ { CT_STRING, CT_STRING },
+ { CT_STRING, CT_STRUCT },
+ { CT_STRING, CT_TYPE },
+ { CT_STRING, CT_WORD },
+ { CT_STRUCT, CT_BRACE_OPEN },
+ { CT_STRUCT, CT_CLASS_COLON },
+ { CT_STRUCT, CT_MACRO_FUNC_CALL },
+ { CT_STRUCT, CT_TYPE },
+ { CT_STRUCT, CT_WORD },
+ { CT_TEMPLATE, CT_CLASS },
+ { CT_TEMPLATE, CT_TYPE },
+ { CT_THIS, CT_OC_MSG_NAME },
+ { CT_THIS, CT_TYPE },
+ { CT_TSQUARE, CT_BRACE_OPEN },
+ { CT_TSQUARE, CT_PAREN_OPEN },
+ { CT_TSQUARE, CT_WORD },
+ { CT_TYPEDEF, CT_ENUM },
+ { CT_TYPEDEF, CT_FUNC_TYPE },
+ { CT_TYPEDEF, CT_PAREN_OPEN },
+ { CT_TYPEDEF, CT_QUALIFIER },
+ { CT_TYPEDEF, CT_STRUCT },
+ { CT_TYPEDEF, CT_TYPE },
+ { CT_TYPEDEF, CT_TYPENAME },
+ { CT_TYPEDEF, CT_UNION },
+ { CT_TYPENAME, CT_ELLIPSIS },
+ { CT_TYPENAME, CT_WORD },
+ { CT_UNION, CT_BRACE_OPEN },
+ { CT_UNION, CT_TYPE },
+ { CT_UNION, CT_WORD },
+ { CT_USING, CT_NAMESPACE },
+ { CT_USING, CT_TYPE },
+ { CT_USING, CT_WORD },
+ { CT_USING_STMT, CT_PAREN_OPEN },
+ { CT_VOLATILE, CT_BRACE_OPEN },
+ { CT_WHERE_COLON, CT_CS_PROPERTY },
+ { CT_WHERE_COLON, CT_NEW },
+ { CT_WHERE_COLON, CT_TYPE },
+ { CT_WHERE_COLON, CT_WORD },
+ { CT_WHERE_SPEC, CT_WORD },
+ { CT_WORD, CT_ATTRIBUTE },
+ { CT_WORD, CT_BIT_COLON },
+ { CT_WORD, CT_BRACE_OPEN },
+ { CT_WORD, CT_CLASS_COLON },
+ { CT_WORD, CT_COLON },
+ { CT_WORD, CT_COMMENT_CPP },
+ { CT_WORD, CT_CONCAT },
+ { CT_WORD, CT_ELLIPSIS },
+ { CT_WORD, CT_IN },
+ { CT_WORD, CT_NEW },
+ { CT_WORD, CT_NOT },
+ { CT_WORD, CT_NUMBER },
+ { CT_WORD, CT_NUMBER_FP },
+ { CT_WORD, CT_OPERATOR },
+ { CT_WORD, CT_QUALIFIER },
+ { CT_WORD, CT_QUESTION },
+ { CT_WORD, CT_SCOMPARE },
+ { CT_WORD, CT_SQL_ASSIGN },
+ { CT_WORD, CT_STRING },
+ { CT_WORD, CT_STRUCT },
+ { CT_WORD, CT_TYPE },
+ { CT_WORD, CT_TYPE_CAST },
+ { CT_WORD, CT_TYPEDEF },
+ { CT_WORD, CT_WHERE_COLON },
+ { CT_WORD, CT_WHERE_SPEC },
+ { CT_WORD, CT_WORD },
+// *INDENT-ON*
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.cpp
index 09e45dc8..09e45dc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.h
index 110a2c86..110a2c86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_add.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.cpp
index 2bd93381..2bd93381 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_add.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_add.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.h
index 07f1efee..07f1efee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_add.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_add.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_asm_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.cpp
index 1fb6c636..1fb6c636 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_asm_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_asm_colon.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.h
index 25704404..25704404 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_asm_colon.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_asm_colon.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_assign.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.cpp
index 3e745bd7..3e745bd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_assign.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_assign.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.h
index e14ad62c..e14ad62c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_assign.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_assign.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_eigen_comma_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.cpp
index c659c214..c659c214 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_eigen_comma_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_eigen_comma_init.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.h
index 8f8ce34b..8f8ce34b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_eigen_comma_init.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_eigen_comma_init.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.cpp
index 41990576..41990576 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_params.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.h
index b200a0cb..b200a0cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_params.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_params.h
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
new file mode 100644
index 00000000..9a0cbfd2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.cpp
@@ -0,0 +1,218 @@
+/**
+ * @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.73.0/src/align_func_proto.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.h
index 0edf442d..0edf442d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_func_proto.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_func_proto.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_init_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.cpp
index 2fbe59d4..2fbe59d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_init_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_init_brace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.h
index 6c0c4909..6c0c4909 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_init_brace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_init_brace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.cpp
index 777f7d27..777f7d27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_left_shift.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.h
index 47d9eb81..47d9eb81 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_left_shift.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_left_shift.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_log_al.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.cpp
index 802b0280..802b0280 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_log_al.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_log_al.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.h
index 8cb2ece8..8cb2ece8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_log_al.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_log_al.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_nl_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.cpp
index ffe17f57..ffe17f57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_nl_cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_nl_cont.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.h
index cdef76f7..cdef76f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_nl_cont.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_nl_cont.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_decl_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.cpp
index 628c9994..628c9994 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_decl_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_decl_colon.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.h
index 370ee655..370ee655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_decl_colon.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_decl_colon.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_colons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.cpp
index fedec9a4..fedec9a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_colons.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_colons.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.h
index 4d8ea07d..4d8ea07d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_colons.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_colons.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_spec.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.cpp
index f57fa881..f57fa881 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_spec.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_spec.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.h
index b6500a6e..b6500a6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_oc_msg_spec.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_oc_msg_spec.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_preprocessor.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.cpp
index 8d54188b..8d54188b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_preprocessor.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_preprocessor.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.h
index ec944587..ec944587 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_preprocessor.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_preprocessor.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_same_func_call_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.cpp
index 72e32337..72e32337 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_same_func_call_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_same_func_call_params.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.h
index c7e122fc..c7e122fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_same_func_call_params.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_same_func_call_params.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_stack.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.cpp
index c8e15bc5..c8e15bc5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_stack.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_stack.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.h
index ebd29dcc..ebd29dcc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_stack.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_stack.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_struct_initializers.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.cpp
index 95b09da0..95b09da0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_struct_initializers.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_struct_initializers.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.h
index 1c71d5af..1c71d5af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_struct_initializers.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_struct_initializers.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tab_column.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.cpp
index 8d91b0ff..8d91b0ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tab_column.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tab_column.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.h
index 9e57baa0..9e57baa0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tab_column.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tab_column.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.cpp
index bd067be5..bd067be5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tools.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.h
index b22c5f3f..b22c5f3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_tools.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_tools.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_trailing_comments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.cpp
index 2c94866b..2c94866b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_trailing_comments.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_trailing_comments.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.h
index a7a7b743..a7a7b743 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_trailing_comments.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_trailing_comments.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_typedefs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.cpp
index face575c..face575c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_typedefs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_typedefs.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.h
index 2902d0d2..2902d0d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_typedefs.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_typedefs.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_var_def_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.cpp
index 637fb054..637fb054 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_var_def_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_var_def_brace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.h
index 0cc133ea..0cc133ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/align_var_def_brace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/align_var_def_brace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/args.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.cpp
index 4147bd91..4147bd91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/args.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/args.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/args.h
index 712fbd59..712fbd59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/args.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/src/backup.cpp
new file mode 100644
index 00000000..e85ecf97
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.cpp
@@ -0,0 +1,165 @@
+/**
+ * @file backup.cpp
+ * Make a backup of a source file
+ * The current plans are to use two files.
+ *
+ * - A '.unc-backup~' file that contains the original contents
+ * - A '.unc-backup-md5~' file that contains the MD5 over the last output
+ * that uncrustify generated
+ *
+ * The logic goes like this:
+ * 1. If there isn't a .backup-md5 or the md5 over the input file doesn't
+ * match what is in .backup-md5, then copy the source file to .backup.
+ *
+ * 2. Create the output file.
+ *
+ * 3. Calculate the md5 over the output file.
+ * Create the .backup-md5 file.
+ *
+ * This will let you run uncrustify multiple times over the same file without
+ * losing the original file. If you edit the file, then a new backup is made.
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#include "prototypes.h"
+
+#include "backup.h"
+#include "md5.h"
+#include "unc_ctype.h"
+
+#include <cerrno>
+
+using namespace std;
+
+
+int backup_copy_file(const char *filename, const vector<UINT8> &data)
+{
+ char newpath[1024];
+ char md5_str_in[33];
+ char md5_str[34];
+ UINT8 dig[16];
+
+ md5_str_in[0] = 0;
+
+ MD5::Calc(data.data(), data.size(), dig);
+ snprintf(md5_str, sizeof(md5_str),
+ "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
+ dig[0], dig[1], dig[2], dig[3],
+ dig[4], dig[5], dig[6], dig[7],
+ dig[8], dig[9], dig[10], dig[11],
+ dig[12], dig[13], dig[14], dig[15]);
+
+ // Create the backup-md5 filename, open it and read the md5
+ snprintf(newpath, sizeof(newpath), "%s%s", filename, UNC_BACKUP_MD5_SUFFIX);
+
+ FILE *thefile = fopen(newpath, "rb");
+
+ if (thefile != nullptr)
+ {
+ char buffer[128];
+
+ if (fgets(buffer, sizeof(buffer), thefile) != nullptr)
+ {
+ for (int i = 0; buffer[i] != 0; i++)
+ {
+ if (unc_isxdigit(buffer[i]))
+ {
+ md5_str_in[i] = unc_tolower(buffer[i]);
+ }
+ else
+ {
+ md5_str_in[i] = 0;
+ break;
+ }
+ }
+ }
+ fclose(thefile);
+ }
+
+ // if the MD5s match, then there is no need to back up the file
+ if (memcmp(md5_str, md5_str_in, 32) == 0)
+ {
+ LOG_FMT(LNOTE, "%s: MD5 match for %s\n", __func__, filename);
+ return(EX_OK);
+ }
+ LOG_FMT(LNOTE, "%s: MD5 mismatch - backing up %s\n", __func__, filename);
+
+ // Create the backup file
+ snprintf(newpath, sizeof(newpath), "%s%s", filename, UNC_BACKUP_SUFFIX);
+
+ thefile = fopen(newpath, "wb");
+
+ if (thefile != nullptr)
+ {
+ size_t retval = fwrite(data.data(), data.size(), 1, thefile);
+ int my_errno = errno;
+
+ fclose(thefile);
+
+ if ( retval == 1
+ || data.empty())
+ {
+ return(EX_OK);
+ }
+ LOG_FMT(LERR, "fwrite(%s) failed: %s (%d)\n",
+ newpath, strerror(my_errno), my_errno);
+ cpd.error_count++;
+ }
+ else
+ {
+ LOG_FMT(LERR, "fopen(%s) failed: %s (%d)\n",
+ newpath, strerror(errno), errno);
+ cpd.error_count++;
+ }
+ return(EX_IOERR);
+} // backup_copy_file
+
+
+void backup_create_md5_file(const char *filename)
+{
+ UINT8 dig[16];
+ MD5 md5;
+ FILE *thefile;
+ UINT8 buf[4096];
+ size_t len;
+ char newpath[1024];
+
+ md5.Init();
+
+ thefile = fopen(filename, "rb");
+
+ if (thefile == nullptr)
+ {
+ LOG_FMT(LERR, "%s: fopen(%s) failed: %s (%d)\n",
+ __func__, filename, strerror(errno), errno);
+ cpd.error_count++;
+ return;
+ }
+
+ // read file chunk by chunk and calculate its MD5 checksum
+ while ((len = fread(buf, 1, sizeof(buf), thefile)) > 0)
+ {
+ md5.Update(buf, len);
+ }
+ fclose(thefile);
+ md5.Final(dig);
+
+ snprintf(newpath, sizeof(newpath), "%s%s", filename, UNC_BACKUP_MD5_SUFFIX);
+
+ thefile = fopen(newpath, "wb");
+
+ if (thefile != nullptr)
+ {
+ fprintf(thefile,
+ "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x %s\n",
+ dig[0], dig[1], dig[2], dig[3],
+ dig[4], dig[5], dig[6], dig[7],
+ dig[8], dig[9], dig[10], dig[11],
+ dig[12], dig[13], dig[14], dig[15],
+ path_basename(filename));
+
+ fclose(thefile);
+ }
+} // backup_create_md5_file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/backup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.h
index 3e51f863..3e51f863 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/backup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/backup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/base_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/base_types.h
index 1e98b0ac..1e98b0ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/base_types.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/base_types.h
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
new file mode 100644
index 00000000..0810c04c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.cpp
@@ -0,0 +1,1498 @@
+/**
+ * @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.73.0/src/brace_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.h
index 4b2cfbba..4b2cfbba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/brace_cleanup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/brace_cleanup.h
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
new file mode 100644
index 00000000..f13c0076
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.cpp
@@ -0,0 +1,1629 @@
+/**
+ * @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.73.0/src/braces.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.h
index d48f4014..d48f4014 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/braces.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/braces.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/calculate_closing_brace_position.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.cpp
index a52ab017..a52ab017 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/calculate_closing_brace_position.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/calculate_closing_brace_position.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.h
index c82f4ace..c82f4ace 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/calculate_closing_brace_position.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/calculate_closing_brace_position.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/char_table.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/char_table.h
index 3fa23a54..3fa23a54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/char_table.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/char_table.h
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
new file mode 100644
index 00000000..1132161e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.cpp
@@ -0,0 +1,1144 @@
+/**
+ * @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
new file mode 100644
index 00000000..1368c5d2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/chunk_list.h
@@ -0,0 +1,1032 @@
+/**
+ * @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
new file mode 100644
index 00000000..c7bd48a1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.cpp
@@ -0,0 +1,3869 @@
+/**
+ * @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.73.0/src/combine.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.h
index a34bf724..a34bf724 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine.h
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
new file mode 100644
index 00000000..6213e509
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.cpp
@@ -0,0 +1,2584 @@
+/**
+ * @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.73.0/src/combine_fix_mark.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.h
index c0e724dd..c0e724dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_fix_mark.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_fix_mark.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_labels.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.cpp
index 9abebc4f..9abebc4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_labels.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_labels.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.h
index 4a273d0b..4a273d0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_labels.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_labels.h
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
new file mode 100644
index 00000000..4e8040f1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.cpp
@@ -0,0 +1,329 @@
+/**
+ * @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.73.0/src/combine_skip.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.h
index d31d1792..d31d1792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_skip.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_skip.h
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
new file mode 100644
index 00000000..9a942367
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.cpp
@@ -0,0 +1,559 @@
+/**
+ * @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.73.0/src/combine_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.h
index f7f83d12..f7f83d12 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/combine_tools.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/combine_tools.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat.h
index 32fce459..32fce459 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat_posix.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_posix.cpp
index c77c7a89..c77c7a89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat_posix.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_posix.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat_win32.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_win32.cpp
index d7292466..d7292466 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/compat_win32.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/compat_win32.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/config.h.in b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/config.h.in
index 4270a733..4270a733 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/config.h.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/config.h.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/cs_top_is_question.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.cpp
index d358912c..d358912c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/cs_top_is_question.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/cs_top_is_question.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.h
index de6ace3e..de6ace3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/cs_top_is_question.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/cs_top_is_question.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/detect.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.cpp
index f3629e9f..f3629e9f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/detect.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/detect.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.h
index 5c6ec1e2..5c6ec1e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/detect.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/detect.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.cpp
index 7c04fbb0..7c04fbb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_cleanup.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.h
index 3853c8ea..3853c8ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_cleanup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_cleanup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_flags.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_flags.h
index badd8226..badd8226 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/enum_flags.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/enum_flags.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/error_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/error_types.h
index f0ebb502..f0ebb502 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/error_types.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/error_types.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.cpp
index 7e5badac..7e5badac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_braced_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_braced_init_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.h
index 4500a260..4500a260 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_braced_init_list.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_braced_init_list.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.cpp
index c5cc0134..c5cc0134 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_decltype.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.h
index f6946575..f6946575 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_decltype.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_decltype.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.cpp
index c0983745..c0983745 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_parens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_parens.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.h
index 5c4d1e43..5c4d1e43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/flag_parens.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/flag_parens.h
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
new file mode 100644
index 00000000..82bc3781
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.cpp
@@ -0,0 +1,299 @@
+/**
+ * @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.73.0/src/frame_list.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.h
index eef2f00d..eef2f00d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/frame_list.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/frame_list.h
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
new file mode 100644
index 00000000..0006ff1d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.cpp
@@ -0,0 +1,4473 @@
+/**
+ * @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.73.0/src/indent.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.h
index dc703eed..dc703eed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/indent.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/indent.h
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
new file mode 100644
index 00000000..56a8a693
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.cpp
@@ -0,0 +1,666 @@
+/**
+ * @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.73.0/src/keywords.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.h
index 3a6f9ea5..3a6f9ea5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/keywords.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/keywords.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/lang_pawn.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.cpp
index a3b3ed65..a3b3ed65 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/lang_pawn.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/lang_pawn.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.h
index 01fd5908..01fd5908 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/lang_pawn.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/lang_pawn.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/language_tools.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.cpp
index 77e577f4..77e577f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/language_tools.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/language_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.h
index 5f57c3f1..5f57c3f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/language_tools.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/language_tools.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_levels.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_levels.h
index d809514a..d809514a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/log_levels.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/log_levels.h
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
new file mode 100644
index 00000000..ebc1082e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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_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
new file mode 100644
index 00000000..1d73077d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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_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.73.0/src/logger.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.cpp
index 969a4192..969a4192 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logger.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logger.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.h
index df63b276..df63b276 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logger.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logger.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logmask.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.cpp
index ca94cd05..ca94cd05 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logmask.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logmask.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.h
index 7cc24ca4..7cc24ca4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/logmask.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/logmask.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/md5.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.cpp
index af8874a4..af8874a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/md5.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/md5.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.h
index d1148b5e..d1148b5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/md5.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/md5.h
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
new file mode 100644
index 00000000..78b557f2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.cpp
@@ -0,0 +1,6667 @@
+/**
+ * @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.73.0/src/newlines.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.h
index cd5d61db..cd5d61db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/newlines.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/newlines.h
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
new file mode 100644
index 00000000..5089f37a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.cpp
@@ -0,0 +1,1247 @@
+/**
+ * @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.73.0/src/option.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.h
index 4ab356b5..4ab356b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option_enum.cpp.in b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.cpp.in
index aeb976b2..aeb976b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option_enum.cpp.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.cpp.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option_enum.h.in b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.h.in
index e50a9281..e50a9281 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/option_enum.h.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/option_enum.h.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options.cpp.in b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.cpp.in
index 2ee14c8b..2ee14c8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options.cpp.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.cpp.in
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
new file mode 100644
index 00000000..e76a4c4f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options.h
@@ -0,0 +1,4048 @@
+/**
+ * @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.73.0/src/options_for_QT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.cpp
index f4a1d040..f4a1d040 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options_for_QT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options_for_QT.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.h
index c114eb75..c114eb75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/options_for_QT.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/options_for_QT.h
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
new file mode 100644
index 00000000..2736512c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.cpp
@@ -0,0 +1,3394 @@
+/**
+ * @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/output.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.h
new file mode 100644
index 00000000..b3e685d9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/output.h
@@ -0,0 +1,50 @@
+/**
+ * @file output.h
+ * prototypes for output.c
+ *
+ * @author Ben Gardner
+ * @license GPL v2+
+ */
+
+#ifndef OUTPUT_H_INCLUDED
+#define OUTPUT_H_INCLUDED
+
+#include "unc_text.h"
+
+#include <stdio.h>
+
+
+//! This renders the chunk list to a file.
+void output_parsed(FILE *pfile, bool withOptions = true);
+
+
+//! This renders the chunk list to a file formatted as csv.
+void output_parsed_csv(FILE *pfile);
+
+
+//! This renders the chunk list to a file.
+void output_text(FILE *pfile);
+
+
+//! This save the next formatting step to a file
+void dump_step(const char *filename, const char *description);
+
+
+/**
+ * See also it's preprocessor counterpart
+ * add_long_closebrace_comment
+ * in braces.cpp
+ *
+ * Note: since this concerns itself with the preprocessor -- which is line-oriented --
+ * it turns out that just looking at pc->pp_level is NOT the right thing to do.
+ * See a --parsed dump if you don't believe this: an '#endif' will be one level
+ * UP from the corresponding #ifdef when you look at the tokens 'ifdef' versus 'endif',
+ * but it's a whole another story when you look at their CT_PREPROC ('#') tokens!
+ *
+ * Hence we need to track and seek matching CT_PREPROC pp_levels here, which complicates
+ * things a little bit, but not much.
+ */
+void add_long_preprocessor_conditional_block_comment(void);
+
+
+#endif /* OUTPUT_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp
new file mode 100644
index 00000000..4a2afbaa
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp
@@ -0,0 +1,68 @@
+/**
+ * @file parameter_pack_cleanup.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#include "parameter_pack_cleanup.h"
+
+#include "chunk_list.h"
+
+
+void parameter_pack_cleanup(void)
+{
+ LOG_FUNC_ENTRY();
+
+ chunk_t *pc = chunk_get_head();
+
+ while (pc != nullptr)
+ {
+ LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
+
+ // look for template
+ if (chunk_is_token(pc, CT_TEMPLATE)) // Issue #3309
+ {
+ chunk_t *template_end = chunk_get_next_type(pc, CT_SEMICOLON, pc->level);
+
+ // look for a parameter pack
+ while (pc != nullptr)
+ {
+ LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
+
+ if (chunk_is_token(pc, CT_PARAMETER_PACK))
+ {
+ chunk_t *parameter_pack = pc;
+
+ // look for a token with the same text
+ while (pc != nullptr)
+ {
+ LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n",
+ __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text());
+ //pc = chunk_get_next(pc);
+
+ if (pc == template_end)
+ {
+ break;
+ }
+
+ if (strcmp(pc->text(), parameter_pack->text()) == 0)
+ {
+ set_chunk_type(pc, CT_PARAMETER_PACK);
+ }
+ pc = chunk_get_next(pc);
+ }
+ }
+ pc = chunk_get_next(pc);
+
+ if (pc == template_end)
+ {
+ break;
+ }
+ }
+ }
+ pc = chunk_get_next(pc);
+ }
+} // parameter_pack_cleanup
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.h
new file mode 100644
index 00000000..97ff6b17
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.h
@@ -0,0 +1,15 @@
+/**
+ * @file parameter_pack_cleanup.h
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ */
+
+#ifndef PARAMETER_PACK_CLEANUP_H_INCLUDED
+#define PARAMETER_PACK_CLEANUP_H_INCLUDED
+
+#include "uncrustify_types.h"
+
+void parameter_pack_cleanup(void);
+
+#endif /* PARAMETER_PACK_CLEANUP_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.cpp
index 51ee4710..51ee4710 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parens.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.h
index c0433f92..c0433f92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parens.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parens.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parent_for_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.cpp
index 42a3f840..42a3f840 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parent_for_pp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parent_for_pp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.h
index cb069680..cb069680 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/parent_for_pp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parent_for_pp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/pcf_flags.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.cpp
index 0a22bf72..0a22bf72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/pcf_flags.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/pcf_flags.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.h
index c0465c14..c0465c14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/pcf_flags.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/pcf_flags.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/prototypes.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/prototypes.h
index dde8edc3..dde8edc3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/prototypes.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/prototypes.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/punctuators.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.cpp
index 6c9c41f4..6c9c41f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/punctuators.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/punctuators.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.h
index ed4c3fa5..ed4c3fa5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/punctuators.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/punctuators.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/quick_align_again.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.cpp
index d63e96e7..d63e96e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/quick_align_again.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/quick_align_again.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.h
index b31a450a..b31a450a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/quick_align_again.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/quick_align_again.h
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
new file mode 100644
index 00000000..118db91c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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_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
new file mode 100644
index 00000000..97538ba5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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_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
new file mode 100644
index 00000000..92cb5b37
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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_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/remove_extra_returns.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.h
new file mode 100644
index 00000000..df0974c9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/remove_extra_returns.h
@@ -0,0 +1,21 @@
+/**
+ * @file remove_extra_returns.h
+ * prototypes for remove_extra_returns.cpp
+ *
+ * @author Guy Maurel
+ * @license GPL v2+
+ * extract from combine.h
+ */
+
+#ifndef REMOVE_EXTRA_RETURNS_H_INCLUDED
+#define REMOVE_EXTRA_RETURNS_H_INCLUDED
+
+
+/**
+ * @brief Remove unnecessary returns
+ * that is remove 'return;' that appears as the last statement in a function
+ */
+void remove_extra_returns(void);
+
+
+#endif /* REMOVE_EXTRA_RETURNS_H_INCLUDED */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/semicolons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.cpp
index bfb65107..bfb65107 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/semicolons.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/semicolons.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.h
index c0542a76..c0542a76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/semicolons.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/semicolons.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/sorting.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.cpp
index bec55749..bec55749 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/sorting.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/sorting.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.h
index 5d767824..5d767824 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/sorting.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/sorting.h
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
new file mode 100644
index 00000000..fc026a4b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.cpp
@@ -0,0 +1,3829 @@
+/**
+ * @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.73.0/src/space.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.h
index e856f135..e856f135 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/space.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/space.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/symbols_table.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/symbols_table.h
index 1a864478..1a864478 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/symbols_table.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/symbols_table.h
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
new file mode 100644
index 00000000..2ffc6b23
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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 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
new file mode 100644
index 00000000..f412b6f1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.cpp
@@ -0,0 +1,2863 @@
+/**
+ * @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.73.0/src/tokenize.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.h
index 896dd511..896dd511 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize.h
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
new file mode 100644
index 00000000..23a87479
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.cpp
@@ -0,0 +1,1756 @@
+/**
+ * @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.73.0/src/tokenize_cleanup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.h
index 4d85cfc4..4d85cfc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/tokenize_cleanup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/tokenize_cleanup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_ctype.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_ctype.h
index 50b7a6f3..50b7a6f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_ctype.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_ctype.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_text.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.cpp
index 1f96a67c..1f96a67c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_text.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_text.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.h
index dd678f16..dd678f16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_text.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_text.h
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
new file mode 100644
index 00000000..f20b5c4a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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_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.73.0/src/unc_tools.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.h
index 3ee393d7..3ee393d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unc_tools.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unc_tools.h
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
new file mode 100644
index 00000000..6de98934
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify.cpp
@@ -0,0 +1,2691 @@
+/**
+ * @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
new file mode 100644
index 00000000..4b6872c7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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(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
new file mode 100644
index 00000000..2ba7d091
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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, 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.73.0/src/uncrustify_limits.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_limits.h
index a03591e7..a03591e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_limits.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_limits.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_types.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.cpp
index bd57f2d5..bd57f2d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_types.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_types.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.h
index 1aeb43c3..1aeb43c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_types.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_types.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_version.h.in b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_version.h.in
index 079e0fa6..079e0fa6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/uncrustify_version.h.in
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/uncrustify_version.h.in
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unicode.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.cpp
index 172cda28..172cda28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unicode.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unicode.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.h
index e9cbd97c..e9cbd97c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/unicode.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/unicode.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/universalindentgui.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.cpp
index eff612be..eff612be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/universalindentgui.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/universalindentgui.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.h
index 35a65167..35a65167 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/universalindentgui.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/universalindentgui.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/width.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.cpp
index c5ed4b2f..c5ed4b2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/width.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/width.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.h
index 3c5ad0b0..3c5ad0b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/width.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/width.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/windows_compat.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/windows_compat.h
index 8210adab..8210adab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/src/windows_compat.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/windows_compat.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/.editorconfig b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/.editorconfig
index fcea945e..fcea945e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/.editorconfig
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/.editorconfig
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/CMakeLists.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/CMakeLists.txt
new file mode 100644
index 00000000..13839df9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/CMakeLists.txt
@@ -0,0 +1,93 @@
+cmake_minimum_required(VERSION 2.8.12)
+
+find_package(Git QUIET)
+
+# sorted by lexicographic order
+set(test_suites
+ c-sharp.test
+ c.test
+ cpp.test
+ d.test
+ ecma.test
+ imported.test
+ java.test
+ objective-c.test
+ pawn.test
+ vala.test
+)
+
+if (NOT ENABLE_CODECOVERAGE)
+ list(APPEND test_suites staging.test)
+endif()
+
+set(stdoc
+ "Create a separate CTest test for each test case"
+ " this is slower, especially with Python 3"
+)
+option("UNCRUSTIFY_SEPARATE_TESTS" "${stdoc}" OFF)
+if (UNCRUSTIFY_SEPARATE_TESTS)
+ set(tests_ctest_file "${CMAKE_CURRENT_BINARY_DIR}/tests.cmake")
+ set_property(DIRECTORY PROPERTY TEST_INCLUDE_FILE ${tests_ctest_file})
+
+ add_custom_command(
+ OUTPUT ${tests_ctest_file}
+ COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py
+ --executable $<TARGET_FILE:uncrustify>
+ --git ${GIT_EXECUTABLE}
+ --python ${PYTHON_EXECUTABLE}
+ --write-ctest ${tests_ctest_file}
+ --cmake-config "$<CONFIGURATION>"
+ VERBATIM
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DEPENDS ${test_suites}
+ )
+
+ add_custom_target(register_tests ALL DEPENDS ${tests_ctest_file})
+else()
+ foreach(suite IN LISTS test_suites)
+ string(REPLACE ".test" "" lang "${suite}")
+ add_test(NAME ${lang}
+ COMMAND ${PYTHON_EXECUTABLE} run_format_tests.py ${lang}
+ --executable $<TARGET_FILE:uncrustify>
+ -d --git ${GIT_EXECUTABLE}
+ --result-dir ${CMAKE_CURRENT_BINARY_DIR}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ endforeach()
+endif()
+
+if (NOT ENABLE_CODECOVERAGE)
+ add_test(
+ NAME sources_format
+ COMMAND ${PYTHON_EXECUTABLE} run_sources_tests.py
+ --executable $<TARGET_FILE:uncrustify>
+ -d --git ${GIT_EXECUTABLE}
+ --result-dir ${CMAKE_CURRENT_BINARY_DIR}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+endif()
+
+add_test(
+ NAME cli_options
+ COMMAND ${PYTHON_EXECUTABLE}
+ test_cli_options.py
+ --config $<CONFIG>
+ --build ${uncrustify_BINARY_DIR}
+ --diff
+ --test ${CMAKE_CURRENT_BINARY_DIR}/cli
+ ${_configs}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cli
+)
+
+add_custom_target(update-cli-options
+ COMMAND ${PYTHON_EXECUTABLE}
+ test_cli_options.py
+ --config $<CONFIG>
+ --build ${uncrustify_BINARY_DIR}
+ --apply
+ --test ${CMAKE_CURRENT_BINARY_DIR}/cli
+ DEPENDS uncrustify
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cli
+)
+
+add_test(NAME sanity COMMAND uncrustify --help)
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
new file mode 100644
index 00000000..232315a7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c-sharp.test
@@ -0,0 +1,149 @@
+#
+# 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
new file mode 100644
index 00000000..eaf30d4e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/c.test
@@ -0,0 +1,435 @@
+#
+# 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.73.0/tests/cli/config/I-842.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/I-842.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/I-842.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/cli/config/copyright-header.cfg
new file mode 100644
index 00000000..13d5020b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.cfg
@@ -0,0 +1 @@
+cmt_insert_file_header = copyright-header.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.txt
new file mode 100644
index 00000000..f96c1ae8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/copyright-header.txt
@@ -0,0 +1,2 @@
+// Copyright $(year)
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/mini_d.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_d.cfg
index ddd51138..ddd51138 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/mini_d.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_d.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/mini_nd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_nd.cfg
index 23db4460..23db4460 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/mini_nd.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/mini_nd.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/replace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/replace.cfg
index 16473bf2..16473bf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/replace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/replace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/tracking_space.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/tracking_space.cfg
index 8b37aa38..8b37aa38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/tracking_space.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/tracking_space.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/truncate.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/truncate.cfg
index cc48c57e..cc48c57e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/truncate.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/truncate.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/unmatched_close_pp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/unmatched_close_pp.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/config/unmatched_close_pp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/config/unmatched_close_pp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/I-842.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-3310.c
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/I-842.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-3310.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/I-842.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-842.cpp
index 7f7bcaf3..7f7bcaf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/I-842.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/I-842.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/backup.h-save b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/backup.h-save
index 9a66578c..9a66578c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/backup.h-save
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/backup.h-save
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/class_enum_struct_union.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/class_enum_struct_union.cpp
index 6a72c823..6a72c823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/class_enum_struct_union.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/class_enum_struct_union.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/logger.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/logger.cs
index defede8a..defede8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/logger.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/cli/input/replace.list
new file mode 100644
index 00000000..009e6f33
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/replace.list
@@ -0,0 +1,2 @@
+input/I-3310.c
+input/backup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/testSrc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrc.cpp
index 1a22f6d9..1a22f6d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/testSrc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/testSrcP.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrcP.cpp
index 85e36674..85e36674 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/testSrcP.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/testSrcP.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/tracking_space.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/tracking_space.cpp
index 5b0b8aa1..5b0b8aa1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/tracking_space.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/tracking_space.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/truncate.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/truncate.cpp
index 7ef9530d..7ef9530d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/truncate.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/truncate.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/unmatched_close_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/unmatched_close_pp.cpp
index b79d12fd..b79d12fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/input/unmatched_close_pp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/input/unmatched_close_pp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/21.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/21.txt
index 7c702d87..7c702d87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/21.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/21.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/25.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/25.txt
index 12967a1b..12967a1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/25.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/25.txt
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
new file mode 100644
index 00000000..f49f675e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.73.0/tests/cli/output/31.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/31.txt
index a890e117..a890e117 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/31.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/31.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/36.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/36.txt
index 892f5af5..892f5af5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/36.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/36.txt
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
new file mode 100644
index 00000000..71b7804d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.73.0/tests/cli/output/9.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/9.txt
index 98afe921..98afe921 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/9.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/9.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/92.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/92.txt
index eb0d7c05..eb0d7c05 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/92.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/92.txt
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.74.0/tests/cli/output/Debug_tracking_space.html
new file mode 100644
index 00000000..b7adc237
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/Debug_tracking_space.html
@@ -0,0 +1,23 @@
+<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">
+<p>
+</p>
+<pre>
+{<a title="1,REMOVE"><font color="red">M</font></a>
+ a<a title="2,sp_assign"><font color="red">M</font></a>=<a title="3,86,sp_assign"><font color="red">M</font></a>b<a title="4,87,93,sp_arith"><font color="red">M</font></a>+<a title="5,88,94,99,sp_arith"><font color="red">M</font></a>111<a title="6,89,95,100,104,sp_arith"><font color="red">M</font></a>-<a title="7,90,96,101,105,108,sp_arith"><font color="red">M</font></a>55<a title="8,91,97,102,106,109,111,sp_before_semi"><font color="red">M</font></a>;<a title="9,92,98,103,107,110,112,113,REMOVE"><font color="red">M</font></a>
+}<a title="10,REMOVE"><font color="red">M</font></a>
+template<a title="11,sp_before_angle"><font color="red">M</font></a>&lt;<a title="12,114,sp_inside_angle"><font color="red">M</font></a>typename<a title="13,115,123,ADD from add_space_table"><font color="red">M</font></a>...<a title="14,116,124,131,sp_ellipsis_parameter_pack"><font color="red">M</font></a>A<a title="15,117,125,132,138,sp_before_comma"><font color="red">M</font></a>,<a title="16,118,126,133,139,144,sp_after_comma"><font color="red">M</font></a>int<a title="17,119,127,134,140,145,149,sp_type_ellipsis"><font color="red">M</font></a>...<a title="18,120,128,135,141,146,150,153,FORCE"><font color="red">M</font></a>B<a title="19,121,129,136,142,147,151,154,156,sp_inside_angle"><font color="red">M</font></a>&gt;<a title="20,122,130,137,143,148,152,155,157,158,REMOVE"><font color="red">M</font></a>
+struct<a title="21,ADD from add_space_table"><font color="red">M</font></a>foo1<a title="22,159,sp_after_type"><font color="red">M</font></a>:<a title="23,160,177,ADD from add_space_table"><font color="red">M</font></a>foo1<a title="24,161,178,194,sp_before_angle"><font color="red">M</font></a>&lt;<a title="25,162,179,195,210,sp_inside_angle"><font color="red">M</font></a>A<a title="26,163,180,196,211,225,sp_parameter_pack_ellipsis"><font color="red">M</font></a>...<a title="27,164,181,197,212,226,239,sp_before_comma"><font color="red">M</font></a>,<a title="28,165,182,198,213,227,240,252,sp_after_comma"><font color="red">M</font></a>(<a title="29,166,183,199,214,228,241,253,264,sp_inside_paren"><font color="red">M</font></a>sizeof<a title="30,167,184,200,215,229,242,254,265,275,sp_sizeof_ellipsis"><font color="red">M</font></a>...<a title="31,168,185,201,216,230,243,255,266,276,285,sp_sizeof_ellipsis_paren"><font color="red">M</font></a>(<a title="32,169,186,202,217,231,244,256,267,277,286,294,sp_inside_paren"><font color="red">M</font></a>A<a title="33,170,187,203,218,232,245,257,268,278,287,295,302,sp_inside_paren"><font color="red">M</font></a>)<a title="34,171,188,204,219,233,246,258,269,279,288,296,303,309,sp_arith"><font color="red">M</font></a>+<a title="35,172,189,205,220,234,247,259,270,280,289,297,304,310,315,sp_arith"><font color="red">M</font></a>B<a title="36,173,190,206,221,235,248,260,271,281,290,298,305,311,316,320,sp_inside_paren"><font color="red">M</font></a>)<a title="37,174,191,207,222,236,249,261,272,282,291,299,306,312,317,321,324,sp_paren_ellipsis"><font color="red">M</font></a>...<a title="38,175,192,208,223,237,250,262,273,283,292,300,307,313,318,322,325,327,sp_inside_angle"><font color="red">M</font></a>&gt;<a title="39,176,193,209,224,238,251,263,274,284,293,301,308,314,319,323,326,328,329,REMOVE"><font color="red">M</font></a>
+{<a title="40,REMOVE"><font color="red">M</font></a>
+ foo1<a title="41,64,sp_func_class_paren"><font color="red">M</font></a>(<a title="42,65,330,sp_inside_fparens"><font color="red">M</font></a>)<a title="43,66,331,333,sp_fparen_brace"><font color="red">M</font></a>{<a title="44,67,332,334,335,REMOVE"><font color="red">M</font></a>
+ int<a title="45,68,sp_after_type"><font color="red">M</font></a>x<a title="46,69,336,sp_assign"><font color="red">M</font></a>=<a title="47,70,337,344,sp_assign"><font color="red">M</font></a>sizeof<a title="48,71,338,345,351,sp_sizeof_ellipsis"><font color="red">M</font></a>...<a title="49,72,339,346,352,357,sp_sizeof_ellipsis_paren"><font color="red">M</font></a>(<a title="50,73,340,347,353,358,362,sp_inside_paren"><font color="red">M</font></a>A<a title="51,74,341,348,354,359,363,366,sp_inside_paren"><font color="red">M</font></a>)<a title="52,75,342,349,355,360,364,367,369,sp_before_semi"><font color="red">M</font></a>;<a title="53,76,343,350,356,361,365,368,370,371,REMOVE"><font color="red">M</font></a>
+ bool<a title="54,77,sp_after_type"><font color="red">M</font></a>b<a title="55,78,372,sp_assign"><font color="red">M</font></a>=<a title="56,79,373,378,sp_assign"><font color="red">M</font></a>x<a title="57,80,374,379,383,sp_compare"><font color="red">M</font></a>><a title="58,81,375,380,384,387,sp_compare"><font color="red">M</font></a>1<a title="59,82,376,381,385,388,390,sp_before_semi"><font color="red">M</font></a>;<a title="60,83,377,382,386,389,391,392,REMOVE"><font color="red">M</font></a>
+ }<a title="61,84,REMOVE"><font color="red">M</font></a>
+}<a title="62,sp_before_semi"><font color="red">M</font></a>;<a title="63,393,REMOVE"><font color="red">M</font></a>
+</pre>
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/unmatched_close_pp.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/I-842.txt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/unmatched_close_pp.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/I-842.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/backup.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/backup.h
index 210c6f7c..210c6f7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/backup.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/backup.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/class_enum_struct_union.csv b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.csv
index 3b5c4a4e..3b5c4a4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/class_enum_struct_union.csv
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/class_enum_struct_union.csv
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 4cf1a681..4cf1a681 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/copyright-header.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/copyright-header.cpp
new file mode 100644
index 00000000..348902a5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/copyright-header.cpp
@@ -0,0 +1,18 @@
+// Copyright this year
+
+struct TelegramIndex
+{
+ TelegramIndex(const char* pN, unsigned long nI) :
+ pTelName(pN),
+ nTelIndex(n)
+ {
+ }
+
+ ~TelegramIndex()
+ {
+ }
+
+ const char* const pTelName;
+ unsigned long nTelIndex;
+};
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/help.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/help.txt
new file mode 100644
index 00000000..ff83f72b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/help.txt
@@ -0,0 +1,83 @@
+Usage:
+uncrustify [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
+or specify a filename using --assume for automatic language detection.
+
+If -F is used or files are specified on the command line,
+the output filename is 'prefix/filename' + suffix
+
+When reading from stdin or doing a single file via the '-f' option,
+the output is dumped to stdout, unless redirected with -o FILE.
+
+Errors are always dumped to stderr
+
+The '-f' and '-o' options may not be used with '-F' or '--replace'.
+The '--prefix' and '--suffix' options may not be used with '--replace'.
+
+Basic Options:
+ -c CFG : Use the config file CFG, or defaults if CFG is set to '-'.
+ -f FILE : Process the single file FILE (output to stdout, use with -o).
+ -o FILE : Redirect stdout to FILE.
+ -F FILE : Read files to process from FILE, one filename per line (- is stdin).
+ --check : Do not output the new text, instead verify that nothing changes when
+ the file(s) are processed.
+ The status of every file is printed to stderr.
+ The exit code is EXIT_SUCCESS if there were no changes, EXIT_FAILURE otherwise.
+ files : Files to process (can be combined with -F).
+ --suffix SFX : Append SFX to the output filename. The default is '.uncrustify'
+ --prefix PFX : Prepend PFX to the output filename path.
+ --replace : Replace source files (creates a backup).
+ --no-backup : Do not create backup and md5 files. Useful if files are under source control.
+ --if-changed : Write to stdout (or create output FILE) only if a change was detected.
+ -l : Language override: C, CPP, D, CS, JAVA, PAWN, OC, OC+, VALA.
+ -t : Load a file with types (usually not needed).
+ -q : Quiet mode - no output on stderr (-L will override).
+ --frag : Code fragment, assume the first line is indented correctly.
+ --assume FN : Uses the filename FN for automatic language detection if reading
+ from stdin unless -l is specified.
+
+Config/Help Options:
+ -h -? --help --usage : Print this message and exit.
+ --version : Print the version and exit.
+ --count-options : Print the number of available options and exit.
+ --show-config : Print out option documentation and exit.
+ --update-config : Output a new config file. Use with -o FILE.
+ --update-config-with-doc : Output a new config file. Use with -o FILE.
+ --universalindent : Output a config file for Universal Indent GUI.
+ --detect : Detects the config from a source file. Use with '-f FILE'.
+ Detection is fairly limited.
+ --set <option>=<value> : Sets a new value to a config option.
+
+Debug Options:
+ -p FILE : Dump debug info into FILE, or to stdout if FILE is set to '-'.
+ Must be used in combination with '-f FILE'
+ -ds FILE : Dump parsing info at various moments of the formatting process.
+ --dump-steps FILE This creates a series of files named 'FILE_nnn.log', each
+ corresponding to a formatting step in uncrustify.
+ The file 'FILE_000.log' lists the formatting options in use.
+ Must be used in combination with '-f FILE'
+ -L SEV : Set the log severity (see log_levels.h; note 'A' = 'all')
+ -s : Show the log severity in the logs.
+ --decode : Decode remaining args (chunk flags) and exit.
+ --tracking_space FILE : Prepare tracking informations for debugging.
+ Cannot be used with the -o option'
+
+Usage Examples
+cat foo.d | uncrustify -q -c my.cfg -l d
+uncrustify -c my.cfg -f foo.d
+uncrustify -c my.cfg -f foo.d -L0-2,20-23,51
+uncrustify -c my.cfg -f foo.d -o foo.d
+uncrustify -c my.cfg -f foo.d -o foo.d -ds dump
+uncrustify -c my.cfg foo.d
+uncrustify -c my.cfg --replace foo.d
+uncrustify -c my.cfg --no-backup foo.d
+uncrustify -c my.cfg --prefix=out -F files.txt
+
+Note: Use comments containing ' *INDENT-OFF*' and ' *INDENT-ON*' to disable
+ processing of parts of the source file (these can be overridden with
+ enable_processing_cmt and disable_processing_cmt).
+
+There are currently x options and minimal documentation.
+Try UniversalIndentGUI and good luck.
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index e839831f..e839831f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/p.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/p.txt
index f74c1cb2..f74c1cb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/p.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/p.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/pc-.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/pc-.txt
index 63ed3d2c..63ed3d2c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/pc-.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/pc-.txt
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
new file mode 100644
index 00000000..6addb57b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/replace.txt
@@ -0,0 +1,2 @@
+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/tracking_space.html b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/tracking_space.html
new file mode 100644
index 00000000..b0098a0e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/tracking_space.html
@@ -0,0 +1,23 @@
+<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">
+<p>
+</p>
+<pre>
+{
+ a = b + 111 - 55;
+}
+template<typename ...A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A) + B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ bool b = x > 1;
+ }
+};
+</pre>
+</body>
+</html>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/truncate.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/truncate.txt
index 8c428d84..8c428d84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/truncate.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/truncate.txt
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
new file mode 100644
index 00000000..bdf8aaba
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/universalindent.cfg
@@ -0,0 +1,7018 @@
+[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.73.0/tests/config/Issue_2302.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/unmatched_close_pp.txt
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2302.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/unmatched_close_pp.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/v-out.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/v-out.txt
index 129af768..129af768 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/v-out.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/v-out.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/xyz-err.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/output/xyz-err.txt
index a16550ed..a16550ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/cli/output/xyz-err.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/cli/test_cli_options.py
new file mode 100755
index 00000000..69c1c620
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cli/test_cli_options.py
@@ -0,0 +1,853 @@
+#!/usr/bin/python
+
+"""
+test_cli_options.py
+
+Tests output generated by Uncrustifys commandline options
+(excluding actual source code formatting)
+
+:author: DanielChumak
+:license: GPL v2+
+"""
+
+from __future__ import print_function
+from sys import stderr, argv, exit as sys_exit
+from os import makedirs, remove, name as os_name
+from os.path import dirname, relpath, isdir, isfile, join as path_join, split as path_split
+from shutil import rmtree, copyfile
+from subprocess import Popen, PIPE
+from io import open
+from datetime import date
+import re
+import difflib
+import argparse
+import pprint
+
+if os_name == 'nt':
+ EX_OK = 0
+ EX_USAGE = 64
+ EX_SOFTWARE = 70
+ NULL_DEVICE = 'nul'
+else:
+ from os import EX_OK, EX_USAGE, EX_SOFTWARE
+ NULL_DEVICE = '/dev/null'
+
+RE_CALLSTACK = r'\[CallStack:( \w+:\w+(, \w+:\w+)*|-DEBUG NOT SET-)?\]'
+RE_DO_SPACE = (r'\n\ndo_space : WARNING: unrecognized do_space:'
+ r'\n[^\n]+\n[^\n]+\n')
+
+
+def eprint(*args, **kwargs):
+ """
+ print() wrapper that sets file=stderr
+ """
+ print(*args, file=stderr, **kwargs)
+
+
+def decode_out(text):
+ text = text.decode('utf-8')
+ text = text.replace(u'\r\n', u'\n')
+ text = text.replace(u'\r', u'\n')
+ return text
+
+
+def proc(bin_path, args_arr=()):
+ """
+ simple Popen wrapper to return std out/err utf8 strings
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param bin_path: string
+ path to the binary that is going to be called
+
+ :param args_arr : list/tuple
+ all needed arguments
+
+
+ :return: string, string
+ ----------------------------------------------------------------------------
+ generated output of both stdout and stderr
+
+ >>> proc("echo", "test")
+ 'test'
+ """
+ if not isfile(bin_path):
+ eprint("bin is not a file: %s" % bin_path)
+ return False
+
+ # call uncrustify, hold output in memory
+ call_arr = [bin_path]
+ call_arr.extend(args_arr)
+ proc = Popen(call_arr, stdout=PIPE, stderr=PIPE)
+
+ out_txt, err_txt = proc.communicate()
+
+ return decode_out(out_txt), decode_out(err_txt)
+
+
+def write_to_output_path(output_path, result_str):
+ """
+ writes the contents of result_str to the output path
+ """
+ print("Auto appending differences to: " + output_path)
+
+ '''
+ newline = None: this outputs \r\n
+ newline = "\r": this outputs \r
+ newline = "\n": this outputs \n
+ newline = "" : this outputs \n
+ For the sake of consistency, all newlines are now being written out as \n
+ However, if the result_str itself contains \r\n, then \r\n will be output
+ as this code doesn't post process the data being written out
+ '''
+ with open(output_path, 'w', encoding="utf-8", newline="\n") as f:
+ f.write(result_str)
+
+
+def get_file_content(fp):
+ """
+ returns file content as an utf8 string or None if fp is not a file
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param fp: string
+ path of the file that will be read
+
+
+ :return: string or None
+ ----------------------------------------------------------------------------
+ the file content
+
+ """
+ out = None
+
+ if isfile(fp):
+ with open(fp, encoding="utf-8", newline="\n") as f:
+ out = f.read()
+ else:
+ eprint("is not a file: %s" % fp)
+
+ return out
+
+
+def check_generated_output(gen_expected_path, gen_result_path,
+ result_manip=None, program_args=None):
+ """
+ compares the content of two files,
+
+ is intended to compare a file that was generated during a call of Uncrustify
+ with a file that has the expected content
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param gen_expected_path: string
+ path to a file that will be compared with the generated file
+
+ :param gen_result_path: string
+ path to the file that will be generated by Uncrustify
+
+ :param result_manip: lambda OR list or tuple of lambdas
+ optional lambda function(s) that will be applied (before the comparison)
+ on the content of the generated file,
+ the lambda function(s) should accept one string parameter
+
+ :param program_args: tuple of options
+ a collection of multiple options used to add extra functionality to the
+ script (i.e. auto apply changes or show diffs on command line)
+
+ :return: bool
+ ----------------------------------------------------------------------------
+ True or False depending on whether both files have the same content
+
+ >>> check_generated_output("/dev/null", "/dev/null")
+ True
+ """
+
+ gen_exp_txt = get_file_content(gen_expected_path)
+ if gen_exp_txt is None:
+ return False
+
+ gen_res_txt = get_file_content(gen_result_path)
+ if gen_res_txt is None:
+ return False
+
+ if result_manip is not None:
+ if type(result_manip) is list or type(result_manip) is tuple:
+ for m in result_manip:
+ gen_res_txt = m(gen_res_txt)
+ else:
+ gen_res_txt = result_manip(gen_res_txt)
+
+ if gen_res_txt != gen_exp_txt:
+ with open(gen_result_path, 'w', encoding="utf-8", newline="") as f:
+ f.write(gen_res_txt)
+
+ if program_args.apply and program_args.auto_output_path:
+ write_to_output_path(program_args.auto_output_path, gen_res_txt)
+ return True
+ elif program_args.diff:
+ print("\n************************************")
+ print("Problem (1) with %s" % gen_result_path)
+ print("************************************")
+
+ file_diff = difflib.ndiff(gen_res_txt.splitlines(False),
+ gen_exp_txt.splitlines(False))
+
+ for line in file_diff:
+ pprint.PrettyPrinter(indent=4, width=280).pprint(line)
+
+ return False
+ else:
+ print("\nProblem (2) with %s" % gen_result_path)
+ print("use(gen): '--diff' to find out why %s %s are different"
+ % (gen_result_path, gen_expected_path))
+ return False
+
+ remove(gen_result_path)
+
+ return True
+
+
+def check_std_output(expected_path, result_path, result_str, result_manip=None,
+ program_args=None):
+ """
+ compares output generated by Uncrustify (std out/err) with a the content of
+ a file
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param expected_path: string
+ path of the file that will be compared with the output of Uncrustify
+
+ :param result_path: string
+ path to which the Uncrustifys output will be saved in case of a mismatch
+
+ :param result_str: string (utf8)
+ the output string generated by Uncrustify
+
+ :param result_manip: lambda OR list or tuple of lambdas
+ see result_manip for check_generated_output
+
+ :param program_args: tuple of options
+ a collection of multiple options used to add extra functionality to the
+ script (i.e. auto apply changes or show diffs on command line)
+
+ :return: bool
+ ----------------------------------------------------------------------------
+ True or False depending on whether both files have the same content
+
+ """
+ exp_txt = get_file_content(expected_path)
+ if exp_txt is None:
+ return False
+
+ if result_manip is not None:
+ if type(result_manip) is list or type(result_manip) is tuple:
+ for m in result_manip:
+ result_str = m(result_str)
+ else:
+ result_str = result_manip(result_str)
+
+ if result_str != exp_txt:
+ with open(result_path, 'w', encoding="utf-8", newline="\n") as f:
+ f.write(result_str)
+
+ if program_args.apply and program_args.auto_output_path:
+ write_to_output_path(program_args.auto_output_path, result_str)
+ return True
+
+ if program_args.diff:
+ print("\n************************************")
+ print("Problem (3) with result_path is %s" % result_path)
+ print(" expected_path is %s" % expected_path)
+ print("************************************")
+
+ file_diff = difflib.ndiff(result_str.splitlines(False),
+ exp_txt.splitlines(False))
+
+ """
+ change the value of width
+ look at: If compact is false (the default)...
+ """
+ for line in file_diff:
+ pprint.PrettyPrinter(indent=4, width=280).pprint(line)
+ else:
+ print("\nProblem (4) with %s" % result_path)
+ print("use: '--diff' to find out why %s %s are different"
+ % (result_path, expected_path))
+ return False
+ return True
+
+
+def check_uncrustify_output(
+ uncr_bin,
+ program_args,
+ args_arr=(),
+ out_expected_path=None, out_result_manip=None, out_result_path=None,
+ err_expected_path=None, err_result_manip=None, err_result_path=None,
+ gen_expected_path=None, gen_result_manip=None, gen_result_path=None):
+ """
+ compares outputs generated by Uncrustify with files
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param uncr_bin: string
+ path to the Uncrustify binary
+
+ :param program_args: tuple of options
+ a collection of multiple options used to add extra functionality to the
+ script (i.e. auto apply changes or show diffs on command line)
+
+ :param args_arr: list/tuple
+ Uncrustify commandline arguments
+
+ :param out_expected_path: string
+ file that will be compared with Uncrustifys stdout output
+
+ :param out_result_manip: string
+ lambda function that will be applied to Uncrustifys stdout output
+ (before the comparison with out_expected_path),
+ the lambda function should accept one string parameter
+
+ :param out_result_path: string
+ path where Uncrustifys stdout output will be saved to in case of a
+ mismatch
+
+ :param err_expected_path: string
+ path to a file that will be compared with Uncrustifys stderr output
+
+ :param err_result_manip: string
+ see out_result_manip (is applied to Uncrustifys stderr instead)
+
+ :param err_result_path: string
+ see out_result_path (is applied to Uncrustifys stderr instead)
+
+ :param gen_expected_path: string
+ path to a file that will be compared with a file generated by Uncrustify
+
+ :param gen_result_path: string
+ path to a file that will be generated by Uncrustify
+
+ :param gen_result_manip:
+ see out_result_path (is applied, in memory, to the file content of the
+ file generated by Uncrustify instead)
+
+
+ :return: bool
+ ----------------------------------------------------------------------------
+ True if all specified files match up, False otherwise
+ """
+ # check param sanity
+ if not out_expected_path and not err_expected_path and not gen_expected_path:
+ eprint("No expected comparison file provided")
+ return False
+
+ if bool(gen_expected_path) != bool(gen_result_path):
+ eprint("'gen_expected_path' and 'gen_result_path' must be used in "
+ "combination")
+ return False
+
+ if gen_result_manip and not gen_result_path:
+ eprint("Set up 'gen_result_path' if 'gen_result_manip' is used")
+
+ out_res_txt, err_res_txt = proc(uncr_bin, args_arr)
+
+ ret_flag = True
+
+ if program_args.apply:
+ valid_path = [out_expected_path, err_expected_path, gen_expected_path]
+ program_args.auto_output_path = next(item for item in valid_path if item is not None)
+
+ if out_expected_path and not check_std_output(
+ out_expected_path, out_result_path, out_res_txt,
+ result_manip=out_result_manip,
+ program_args=program_args):
+ ret_flag = False
+
+ if program_args.apply:
+ valid_path = [err_expected_path, out_expected_path, gen_expected_path]
+ program_args.auto_output_path = next(item for item in valid_path if item is not None)
+
+ if err_expected_path and not check_std_output(
+ err_expected_path, err_result_path, err_res_txt,
+ result_manip=err_result_manip,
+ program_args=program_args):
+ ret_flag = False
+
+ if gen_expected_path and not check_generated_output(
+ gen_expected_path, gen_result_path,
+ result_manip=gen_result_manip,
+ program_args=program_args):
+ ret_flag = False
+
+ return ret_flag
+
+
+def clear_dir(path):
+ """
+ clears a directory by deleting and creating it again
+
+
+ Parameters
+ ----------------------------------------------------------------------------
+ :param path:
+ path of the directory
+
+
+ :return: void
+ """
+ if isdir(path):
+ rmtree(path)
+ makedirs(path)
+
+
+def reg_replace(pattern, replacement):
+ """
+ returns a generated lambda function that applies a regex string replacement
+
+
+ Parameters:
+ ----------------------------------------------------------------------------
+
+ :param pattern: regex pattern
+ the pattern that will be used to find targets to replace
+
+ :param replacement: string
+ the replacement that will be applied
+
+
+ :return: lambda function
+ ----------------------------------------------------------------------------
+ the generated lambda function, takes in a string on which the
+ replacement will be applied and returned
+
+ >>> l = reg_replace(r"a", "b")
+ >>> a = l("a")
+ 'b'
+ """
+ return lambda text: re.sub(pattern, replacement, text)
+
+
+def string_replace(string_target, replacement):
+ """
+ returns a generated lambda function that applies a string replacement
+
+ like reg_replace, uses string.replace() instead
+ """
+ return lambda text: text.replace(string_target, replacement)
+
+
+def s_path_join(path, *paths):
+ """
+ Wrapper for the os.path.join function, splits every path component to
+ replace it with a system specific path separator. This is for consistent
+ path separators (and also systems that don't use either '\' or '/')
+
+
+ Parameter
+ ----------------------------------------------------------------------------
+ :params path, paths: string
+ see os.path.join
+
+ :return: string
+ ----------------------------------------------------------------------------
+ a joined path, see os.path.join
+
+ >>> s_path_join('./z/d/', '../a/b/c/f')
+ r'.\z\a\b\c\f'
+ """
+ p_splits = list(path_split(path))
+ for r in map(path_split, paths):
+ p_splits.extend(r)
+ return path_join(*p_splits)
+
+
+def main(args):
+ # set working dir to script dir
+ script_dir = dirname(relpath(__file__))
+
+ parser = argparse.ArgumentParser(description='Test CLI Options')
+ parser.add_argument('--diff', action='store_true',
+ help='show diffs when there is a test mismatch')
+ parser.add_argument('--apply', action='store_true',
+ help='auto apply the changes from the results folder to the output folder')
+ parser.add_argument('--build',
+ default=s_path_join(script_dir, '../../build'),
+ help='specify location of the build directory')
+ parser.add_argument('--config',
+ default='Release',
+ help='the build_type value (Release or Debug)')
+ parser.add_argument('--test',
+ default=s_path_join(script_dir, '../../build/tests/cli'),
+ help='specify the location of the test cli build folder')
+
+ parsed_args = parser.parse_args()
+
+ # find the uncrustify binary
+ bin_found = False
+ uncr_bin = ''
+ 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')]
+ for uncr_bin in bin_paths:
+ if not isfile(uncr_bin):
+ eprint("is not a file: %s" % uncr_bin)
+ else:
+ print("Uncrustify binary found: %s" % uncr_bin)
+ bin_found = True
+ break
+ if not bin_found:
+ eprint("No Uncrustify binary found")
+ sys_exit(EX_USAGE)
+
+ clear_dir(s_path_join(test_dir, 'results'))
+
+ return_flag = True
+
+ #
+ # Test help
+ # -h -? --help --usage
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ out_expected_path=s_path_join(script_dir, 'output/help.txt'),
+ out_result_path=s_path_join(test_dir, 'results/help.txt'),
+ out_result_manip=[
+ string_replace(' --mtime : Preserve mtime on replaced files.\n', ''),
+ string_replace('.exe', ''),
+ reg_replace(r'currently \d+ options', 'currently x options')
+ ]):
+ return_flag = False
+
+ #
+ # Test false parameter
+ # --xyz
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['--xyz'],
+ err_expected_path=s_path_join(script_dir, 'output/xyz-err.txt'),
+ err_result_path=s_path_join(test_dir, 'results/xyz-err.txt')
+ ):
+ return_flag = False
+
+ #
+ # Test Version
+ # -v
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-v'],
+ out_expected_path=s_path_join(script_dir, 'output/v-out.txt'),
+ out_result_path=s_path_join(test_dir, 'results/v-out.txt'),
+ out_result_manip=reg_replace(r'Uncrustify.+', 'Uncrustify')
+ ):
+ return_flag = False
+
+ # temporary removed
+ ##
+ ## Test --show-config
+ ##
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['--show-config'],
+ # out_expected_path=s_path_join(script_dir, 'output/show_config.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/show_config.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', '')
+ # ):
+ # return_flag = False
+
+ #
+ # Test the truncate option
+ #
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/truncate.cfg'),
+ '-f', s_path_join(script_dir, 'input/truncate.cpp'),
+ '-o', NULL_DEVICE,
+ '-L', '83'],
+ err_expected_path=s_path_join(script_dir, 'output/truncate.txt'),
+ err_result_path=s_path_join(test_dir, 'results/truncate.txt'),
+ err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
+ reg_replace(RE_DO_SPACE, '')]
+ ):
+ return_flag = False
+
+ # temporary removed
+ ##
+ ## Test --update-config
+ ##
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
+ # '--update-config'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_d_uc.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_d_uc.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error0.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
+ # '--update-config'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_nd_uc.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_nd_uc.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error1.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+
+ ##
+ ## Test --update-config-with-doc
+ ##
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
+ # '--update-config-with-doc'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_d_ucwd.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_d_ucwd.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error2.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+
+ #if not check_uncrustify_output(
+ # uncr_bin,
+ # parsed_args,
+ # args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
+ # '--update-config-with-doc'],
+ # out_expected_path=s_path_join(script_dir, 'output/mini_nd_ucwd.txt'),
+ # out_result_path=s_path_join(test_dir, 'results/mini_nd_ucwd.txt'),
+ # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
+ # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
+ # err_result_path=s_path_join(test_dir, 'results/mini_d_error3.txt'),
+ # err_result_manip=string_replace('\\', '/')
+ # ):
+ # return_flag = False
+
+ #
+ # Test -p
+ #
+ if os_name != 'nt':
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
+ '-f', s_path_join(script_dir, 'input/testSrcP.cpp'),
+ '-p', s_path_join(test_dir, 'results/p.txt')],
+ gen_expected_path=s_path_join(script_dir, 'output/p.txt'),
+ gen_result_path=s_path_join(test_dir, 'results/p.txt'),
+ gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
+ ):
+ return_flag = False
+
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
+ '-p', s_path_join(test_dir, 'results/class_enum_struct_union.txt')],
+ gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.txt'),
+ gen_result_path=s_path_join(test_dir, 'results/class_enum_struct_union.txt'),
+ gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
+ ):
+ return_flag = False
+
+ if os_name == 'nt' or check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', '-',
+ '-f', NULL_DEVICE,
+ '-p', '-'],
+ out_expected_path=s_path_join(script_dir, 'output/pc-.txt'),
+ out_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', ''),
+ out_result_path=s_path_join(test_dir, 'results/pc-.txt')
+ ):
+ pass
+ #
+ # Test -p and -c with '-' input
+ #
+ else:
+ return_flag = False
+
+ #
+ # Test -p and --debug-csv-format option
+ #
+ if os_name != 'nt' and not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', '-',
+ '-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
+ '-p', s_path_join(test_dir, 'results/class_enum_struct_union.csv'),
+ '--debug-csv-format'],
+ gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.csv'),
+ gen_result_path=s_path_join(test_dir, 'results/class_enum_struct_union.csv'),
+ ):
+ return_flag = False
+
+ #
+ # Test --tracking_space FILE
+ #
+ if parsed_args.config == 'Debug':
+ eprint("Debug")
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/tracking_space.cfg'),
+ '-f', s_path_join(script_dir, 'input/tracking_space.cpp'),
+ '--tracking_space', s_path_join(test_dir, 'results/Debug_tracking_space.html')],
+ gen_expected_path=s_path_join(script_dir, 'output/Debug_tracking_space.html'),
+ gen_result_path=s_path_join(test_dir, 'results/Debug_tracking_space.html'),
+ ):
+ return_flag = False
+ else:
+ eprint(parsed_args.config)
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/tracking_space.cfg'),
+ '-f', s_path_join(script_dir, 'input/tracking_space.cpp'),
+ '--tracking_space', s_path_join(test_dir, 'results/tracking_space.html')],
+ gen_expected_path=s_path_join(script_dir, 'output/tracking_space.html'),
+ gen_result_path=s_path_join(test_dir, 'results/tracking_space.html'),
+ ):
+ return_flag = False
+
+ #
+ # Test --replace
+ #
+ copyfile("input/backup.h-save", "input/backup.h")
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/replace.cfg'),
+ '-F', s_path_join(script_dir, 'input/replace.list'),
+ '--replace', '--no-backup'],
+ gen_expected_path=s_path_join(script_dir, 'output/backup.h'),
+ gen_result_path=s_path_join(script_dir, 'input/backup.h'),
+ err_expected_path=s_path_join(script_dir, 'output/replace.txt'),
+ err_result_path=s_path_join(test_dir, 'results/replace.txt'),
+ ):
+ return_flag = False
+
+ # The flag CMAKE_BUILD_TYPE must be set to "Release", or all lines with
+ # 'Description="<html>(<number>)text abc.</html>" must be changed to
+ # 'Description="<html>text abc.</html>"
+ #
+ # OR it is possible to introduce a new parameter: gen_expected_manip
+ #
+ # The last "reg_replace(r'\r', '')" is necessary under Windows, because
+ # fprintf puts a \r\n at the end of a line. To make the check, we use
+ # output/universalindent.cfg, generated under Linux, with only \n at the
+ # end of a line.
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-o', s_path_join(test_dir, 'results/universalindent.cfg'),
+ '--universalindent'],
+ gen_expected_path=s_path_join(script_dir, 'output/universalindent.cfg'),
+ gen_result_path=s_path_join(test_dir, 'results/universalindent.cfg'),
+ gen_result_manip=[reg_replace(r'version=U.+', ''),
+ reg_replace(r'\(\d+\)', ''),
+ reg_replace(r'\r', '')]
+ ):
+ return_flag = False
+
+ # Debug Options:
+ # -L
+ # look at src/log_levels.h
+ Ls_A = ['9', '21', '25', '28', '31', '36', '66', '92']
+ for L in Ls_A:
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', NULL_DEVICE, '-L', L, '-o', NULL_DEVICE,
+ '-f', s_path_join(script_dir, 'input/testSrc.cpp')],
+ err_expected_path=s_path_join(script_dir, 'output/%s.txt' % L),
+ err_result_path=s_path_join(test_dir, 'results/%s.txt' % L),
+ err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
+ reg_replace(r'\:[0-9]+\)', ' '),
+ reg_replace(r'\[line [0-9]+', '[ '),
+ reg_replace(r' \[[_|,|1|A-Z]*\]', ' []'),
+ reg_replace(r', \[[_|,|1|A-Z]*\]', ', []'),
+ reg_replace(r', \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ', []'),
+ reg_replace(r' \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ' []'),
+ reg_replace(r'^[ \t]*[_A-Za-z][_A-Za-z0-9]*::', ''),
+ reg_replace(RE_CALLSTACK, '[CallStack]'),
+ reg_replace(RE_DO_SPACE, '')]
+ ):
+ return_flag = False
+
+ # Test logger buffer overflow
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', NULL_DEVICE, '-L', '99', '-o', NULL_DEVICE,
+ '-f', s_path_join(script_dir, 'input/logger.cs')],
+ err_expected_path=s_path_join(script_dir, 'output/logger_cs_L_99.txt'),
+ err_result_path=s_path_join(test_dir, 'results/logger_cs_L_99.txt'),
+ err_result_manip=reg_replace(r'[0-9]', '')
+ ):
+ return_flag = False
+
+ # misc error_tests
+ error_tests = ["I-842", "unmatched_close_pp"]
+ for test in error_tests:
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/%s.cfg' % test),
+ '-f', s_path_join(script_dir, 'input/%s.cpp' % test),
+ '-o', NULL_DEVICE, '-q'],
+ err_expected_path=s_path_join(script_dir, 'output/%s.txt' % test),
+ err_result_path=s_path_join(test_dir, 'results/%s.txt' % test)
+ ):
+ return_flag = False
+
+ # Test $(year) keyword (issue #3251)
+ if not check_uncrustify_output(
+ uncr_bin,
+ parsed_args,
+ args_arr=['-c', s_path_join(script_dir, 'config/copyright-header.cfg'),
+ '-f', s_path_join(script_dir, 'input/testSrc.cpp')],
+ out_expected_path=s_path_join(script_dir, 'output/copyright-header.cpp'),
+ out_result_path=s_path_join(test_dir, 'results/copyright-header.cpp'),
+ out_result_manip=string_replace(str(date.today().year), 'this year'),
+ ):
+ return_flag = False
+
+ if return_flag:
+ print("all tests are OK")
+ sys_exit(EX_OK)
+ else:
+ print("some problem(s) are still present")
+ sys_exit(EX_SOFTWARE)
+
+
+if __name__ == "__main__":
+ main(argv[1:])
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1225.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1225.cfg
index cbc83adb..cbc83adb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1225.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1225.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1liner-no-split.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-no-split.cfg
index 84eba64d..84eba64d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1liner-no-split.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-no-split.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1liner-split.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-split.cfg
index e666ea24..e666ea24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1liner-split.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/1liner-split.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue-2278.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue-2278.cfg
index 80ba4f6f..80ba4f6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue-2278.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue-2278.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2279.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2279.cfg
index 1f646668..1f646668 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2279.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2279.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2360-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-a.cfg
index 85052020..85052020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2360-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2360-b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-b.cfg
index b61841cc..b61841cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2360-b.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2360-b.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2411.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2411.cfg
index a4770ec9..a4770ec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2411.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2411.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2640.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_2640.cfg
index a4dd2354..a4dd2354 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2640.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/Issue_3169.cfg
new file mode 100644
index 00000000..9feaa3d8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3169.cfg
@@ -0,0 +1,4 @@
+sp_pp_concat = ignore
+indent_columns = 2
+align_var_def_span = 1
+align_nl_cont = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3233.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3233.cfg
new file mode 100644
index 00000000..71ee918b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3233.cfg
@@ -0,0 +1,2 @@
+sp_arith = force
+sp_after_ptr_star = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3269.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3269.cfg
new file mode 100644
index 00000000..3a4bb6bf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3269.cfg
@@ -0,0 +1 @@
+sp_inside_sparen = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3272.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3272.cfg
new file mode 100644
index 00000000..2cda9402
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3272.cfg
@@ -0,0 +1 @@
+sp_cmt_cpp_start = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3274.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3274.cfg
new file mode 100644
index 00000000..63aa1d0c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3274.cfg
@@ -0,0 +1,2 @@
+nl_func_decl_args_multi_line = true
+nl_func_leave_one_liners = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3327.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3327.cfg
new file mode 100644
index 00000000..1470c6b5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3327.cfg
@@ -0,0 +1,3 @@
+pp_define_at_level = true
+pp_if_indent_code = true
+pp_indent_at_level = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3350.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3350.cfg
new file mode 100644
index 00000000..d53c8094
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3350.cfg
@@ -0,0 +1,2 @@
+indent_comment = false
+cmt_indent_multi = false
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3351.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3351.cfg
new file mode 100644
index 00000000..67df4d20
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3351.cfg
@@ -0,0 +1,3 @@
+mod_full_brace_while = force
+nl_while_brace = force
+mod_remove_extra_semicolon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3356.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3356.cfg
new file mode 100644
index 00000000..2791f6c6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3356.cfg
@@ -0,0 +1 @@
+code_width = 80
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3370.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3370.cfg
new file mode 100644
index 00000000..05f38590
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3370.cfg
@@ -0,0 +1,3 @@
+indent_col1_comment = true
+pp_if_indent_code = true
+pp_indent_at_level = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3377.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3377.cfg
new file mode 100644
index 00000000..ca7a07db
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/Issue_3377.cfg
@@ -0,0 +1,2 @@
+sp_inside_sparen = add
+sp_inside_for = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/add_long_closebrace_comment_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/add_long_closebrace_comment_1.cfg
index b8190eb1..b8190eb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/add_long_closebrace_comment_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/add_long_closebrace_comment_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-2.cfg
index ea78a8d4..ea78a8d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-3.cfg
index 1b46c840..1b46c840 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_attr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_attr.cfg
index 3249cd7b..3249cd7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_attr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/align_func_proto_star_amp-1.cfg
new file mode 100644
index 00000000..83874b8b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-1.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 0
+align_func_proto_span = 1
+align_func_proto_star_style = 0
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.74.0/tests/config/c/align_func_proto_star_amp-2.cfg
new file mode 100644
index 00000000..3afaa70a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-2.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 0
+align_func_proto_span = 1
+align_func_proto_star_style = 1
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.74.0/tests/config/c/align_func_proto_star_amp-3.cfg
new file mode 100644
index 00000000..1b1e7541
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-3.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 0
+align_func_proto_span = 1
+align_func_proto_star_style = 2
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.74.0/tests/config/c/align_func_proto_star_amp-4.cfg
new file mode 100644
index 00000000..391526e0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-4.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 1
+align_func_proto_span = 1
+align_func_proto_star_style = 0
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.74.0/tests/config/c/align_func_proto_star_amp-5.cfg
new file mode 100644
index 00000000..7fd9cd6c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-5.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 1
+align_func_proto_span = 1
+align_func_proto_star_style = 1
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.74.0/tests/config/c/align_func_proto_star_amp-6.cfg
new file mode 100644
index 00000000..00d18433
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-6.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 1
+align_func_proto_span = 1
+align_func_proto_star_style = 2
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.74.0/tests/config/c/align_func_proto_star_amp-7.cfg
new file mode 100644
index 00000000..64af8258
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-7.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 2
+align_func_proto_span = 1
+align_func_proto_star_style = 0
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.74.0/tests/config/c/align_func_proto_star_amp-8.cfg
new file mode 100644
index 00000000..4531b895
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-8.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 2
+align_func_proto_span = 1
+align_func_proto_star_style = 1
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.74.0/tests/config/c/align_func_proto_star_amp-9.cfg
new file mode 100644
index 00000000..2b2b6b02
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_func_proto_star_amp-9.cfg
@@ -0,0 +1,4 @@
+align_var_def_span = 1
+align_var_def_star_style = 2
+align_func_proto_span = 1
+align_func_proto_star_style = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_keep_extra.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_keep_extra.cfg
index fcaab9f2..fcaab9f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_keep_extra.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_keep_extra.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_right_cmt_gap-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_right_cmt_gap-1.cfg
index 46aaf838..46aaf838 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_right_cmt_gap-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_right_cmt_gap-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_span_418.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_418.cfg
index cdf7f052..cdf7f052 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_span_418.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_418.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_span_419.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_419.cfg
index a11c2102..a11c2102 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_span_419.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_span_419.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_thresh_416.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_416.cfg
index 6280b856..6280b856 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_thresh_416.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_416.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_thresh_417.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_417.cfg
index 9d09abb2..9d09abb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_sf_call_thresh_417.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_sf_call_thresh_417.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_stack.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_stack.cfg
index d53a6bb3..d53a6bb3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_stack.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_stack.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-1.cfg
index ea45e4d8..ea45e4d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_func-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-2.cfg
index 252f07ea..252f07ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_func-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_func-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_gap-3_span-5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/align_typedef_gap-3_span-5.cfg
index 338f078f..338f078f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_typedef_gap-3_span-5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/ben_047.cfg
new file mode 100644
index 00000000..2af44bb3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_047.cfg
@@ -0,0 +1,3 @@
+indent_columns = 3
+align_right_cmt_span = 3
+sp_endif_cmt = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_048.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_048.cfg
index 81d0ba54..81d0ba54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_048.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_048.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_049.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_049.cfg
index b8e6f708..b8e6f708 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_049.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_049.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_050.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_050.cfg
index 0f0e30ac..0f0e30ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_050.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_050.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_051.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_051.cfg
index 786fb030..786fb030 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_051.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_051.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_052.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_052.cfg
index ba150be7..ba150be7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_052.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_052.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_053.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_053.cfg
index 7cf1c682..7cf1c682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_053.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_053.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_054.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_054.cfg
index 56661763..56661763 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_054.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_054.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_055.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_055.cfg
index f050b219..f050b219 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_055.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_055.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_056.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_056.cfg
index 43e9f6cc..43e9f6cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_056.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_056.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_057.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_057.cfg
index fbf24d72..fbf24d72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_057.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/ben_058.cfg
new file mode 100644
index 00000000..7c908d56
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_058.cfg
@@ -0,0 +1,9 @@
+sp_inside_paren = remove
+sp_before_sparen = force
+sp_return_paren = remove
+indent_columns = 3
+indent_switch_body = 3
+nl_switch_brace = add
+eat_blanks_before_close_brace = true
+align_nl_cont = true
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_061.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_061.cfg
index 89f76fae..89f76fae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_061.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_061.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_063.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_063.cfg
index 3c5e88f1..3c5e88f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_063.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_063.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_064.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_064.cfg
index f56efbdf..f56efbdf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_064.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_064.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_065.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_065.cfg
index 21d55b16..21d55b16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_065.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_065.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_069.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_069.cfg
index d42173e1..d42173e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_069.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_069.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_070.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_070.cfg
index f304ca8a..f304ca8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_070.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_070.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_071.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_071.cfg
index 869f2a94..869f2a94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_071.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_071.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_072.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_072.cfg
index 973d8c6c..973d8c6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_072.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_072.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_073.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_073.cfg
index 49f69643..49f69643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_073.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/ben_074.cfg
new file mode 100644
index 00000000..31a1de44
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_074.cfg
@@ -0,0 +1,4 @@
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_after_ptr_star_func = remove
+indent_columns = 3
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_075.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_075.cfg
index 9eca8a9b..9eca8a9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_075.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_075.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_076.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_076.cfg
index fb27ba74..fb27ba74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_076.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_076.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_077.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_077.cfg
index 4e9760f7..4e9760f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_077.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_077.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_078.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_078.cfg
index 54fcc628..54fcc628 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_078.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_078.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_079.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_079.cfg
index 77a732e5..77a732e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_079.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_079.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_080.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_080.cfg
index 45e16a8d..45e16a8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_080.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_080.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_081.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_081.cfg
index dc15820d..dc15820d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_081.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_081.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_083.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_083.cfg
index 2ccee465..2ccee465 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_083.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_083.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_084.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_084.cfg
index bbb0e675..bbb0e675 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_084.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_084.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_085.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_085.cfg
index b02673d7..b02673d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_085.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/ben_086.cfg
new file mode 100644
index 00000000..7ffcd831
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_086.cfg
@@ -0,0 +1,23 @@
+sp_compare = force
+sp_inside_paren = remove
+sp_before_sparen = force
+sp_inside_sparen = remove
+sp_before_semi_for_empty = force
+sp_between_semi_for_empty = force
+sp_after_semi_for_empty = force
+indent_columns = 3
+indent_with_tabs = 0
+nl_enum_brace = add
+nl_struct_brace = add
+nl_if_brace = add
+nl_else_brace = add
+nl_for_brace = add
+nl_before_case = true
+nl_after_brace_open = true
+align_var_def_star_style = 1
+align_var_struct_span = 3
+mod_full_brace_for = add
+mod_full_brace_if = add
+mod_paren_on_return = add
+mod_remove_extra_semicolon = true
+mod_add_long_function_closebrace_comment = 40
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_087.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_087.cfg
new file mode 100644
index 00000000..2184c985
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_087.cfg
@@ -0,0 +1,37 @@
+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_after_comma = force
+sp_inside_braces = force
+sp_cond_colon = add
+sp_cond_question = add
+indent_columns = 3
+indent_with_tabs = 0
+indent_label = 2
+nl_assign_brace = add
+nl_func_var_def_blk = 1
+nl_fcall_brace = add
+nl_if_brace = add
+nl_else_brace = add
+nl_for_brace = add
+nl_switch_brace = add
+nl_before_case = true
+eat_blanks_after_open_brace = true
+nl_after_return = true
+align_var_def_span = 2
+align_var_def_star_style = 1
+align_assign_span = 1
+align_struct_init_span = 3
+cmt_star_cont = true
+mod_full_brace_for = add
+mod_full_brace_if = add
+mod_paren_on_return = add
+mod_add_long_function_closebrace_comment = 40
+mod_add_long_switch_closebrace_comment = 40
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_088.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_088.cfg
index 19cc7dc4..19cc7dc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_088.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_088.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_089.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_089.cfg
index d3c152df..d3c152df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_089.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_089.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_090.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_090.cfg
index eba1ab79..eba1ab79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_090.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_090.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_091.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_091.cfg
index aec90af1..aec90af1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_091.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_091.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_092.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_092.cfg
index bb993d75..bb993d75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_092.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_092.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_093.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_093.cfg
index 4e50b52b..4e50b52b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_093.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_093.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_094.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_094.cfg
index 9ab0c51f..9ab0c51f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_094.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_094.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_095.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_095.cfg
index edb10a4f..edb10a4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_095.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ben_095.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol-break.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol-break.cfg
index d2abdeb6..d2abdeb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol-break.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol-break.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol.cfg
index f7fe1330..f7fe1330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-eol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol-break.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-break.cfg
index e07ab7e9..e07ab7e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol-break.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-break.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-force.cfg
index 36f81a26..36f81a26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol-force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol-force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol.cfg
index 9dbcbaf2..9dbcbaf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-sol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bool-pos-sol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-banner.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.cfg
index 2fc753a6..2fc753a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-banner.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-banner.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.rerun.cfg
index df289545..df289545 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-banner.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-banner.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-gnu.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-gnu.cfg
index c5bd1371..c5bd1371 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-gnu.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-gnu.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr-br.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-br.cfg
index 59bc4084..59bc4084 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr-br.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-br.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr-nobr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-nobr.cfg
index 970b1ab0..970b1ab0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr-nobr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr-nobr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr.cfg
index 7ef5aa16..7ef5aa16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-kr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-kr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-remove-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-2.cfg
index 9aa693fc..9aa693fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-remove-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-remove-all.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-all.cfg
index ca279abd..ca279abd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-remove-all.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-remove-all.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-ws.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws.cfg
index 76d8908a..76d8908a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-ws.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-ws2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws2.cfg
index 55eb6ece..55eb6ece 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-ws2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/brace-ws2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1702.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1702.cfg
index 1c415eec..1c415eec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1702.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1702.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1718.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1718.cfg
index e55de095..e55de095 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1718.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_1718.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2331.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_2331.cfg
index 4a4af2f3..4a4af2f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2331.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_2331.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_489.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_489.cfg
index 61d4693c..61d4693c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_489.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_489.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_771.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_i_771.cfg
index 69b6e1a3..69b6e1a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_771.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/bug_i_771.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-1.cfg
index 7c65a819..7c65a819 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-2.cfg
index 07c0566d..07c0566d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-3.cfg
index 74f16293..74f16293 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/case-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/case-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-sp-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-a.cfg
index 488198a9..488198a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-sp-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-sp-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-r.cfg
index 1d0138a2..1d0138a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-sp-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-sp-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-type.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-type.cfg
index 5900ffd5..5900ffd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast-type.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cast-type.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cgal.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cgal.cfg
index a4ec1fa0..a4ec1fa0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cgal.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cgal.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clang-has_include.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/clang-has_include.cfg
index 35d668f3..35d668f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clang-has_include.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/clang-has_include.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent_multi-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_indent_multi-f.cfg
index 1bd265a3..1bd265a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent_multi-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_indent_multi-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_multi_check_last-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_multi_check_last-f.cfg
index 7fdebde0..7fdebde0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_multi_check_last-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_multi_check_last-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_nl_end.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_nl_end.cfg
index 1c0b396a..1c0b396a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_nl_end.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_nl_end.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_reflow.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_reflow.cfg
index 9b280d18..9b280d18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_reflow.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cmt_reflow.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/code_width-80.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/code_width-80.cfg
index 4bdb0ce7..4bdb0ce7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/code_width-80.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/code_width-80.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cond-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cond-1.cfg
index 61669da9..61669da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cond-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cond-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-1.cfg
index 83e3aa7c..83e3aa7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-2.cfg
index 9f0d9e3a..9f0d9e3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-3.cfg
index 20bbb9e1..20bbb9e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp_to_c-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/cpp_to_c-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom_types_ssl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/custom_types_ssl.cfg
index 4005234e..4005234e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom_types_ssl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/custom_types_ssl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-comment-no.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-no.cfg
index bd2bd258..bd2bd258 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-comment-no.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-no.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-comment-yes.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-yes.cfg
index 74043b68..74043b68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-comment-yes.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/doxy-comment-yes.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/else-if-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-1.cfg
index b4e4aecb..b4e4aecb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/else-if-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/else-if-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/else-if-2.cfg
index 75d7936e..75d7936e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/else-if-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/empty_body.cfg
new file mode 100644
index 00000000..4563a84f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/empty_body.cfg
@@ -0,0 +1,6 @@
+sp_arith = force
+sp_before_ptr_star = remove
+sp_after_ptr_star = force
+sp_after_ptr_star_func = force
+indent_columns = 4
+nl_collapse_empty_body = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/endif.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/endif.cfg
index ff69251b..ff69251b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/endif.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/endif.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/enum_comma_ifdef.cfg
index a2622767..a2622767 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/enum_comma_ifdef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/force_tab_after_define-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/force_tab_after_define-t.cfg
index 67b04e78..67b04e78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/force_tab_after_define-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/freebsd.cfg
new file mode 100644
index 00000000..725b00b0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/freebsd.cfg
@@ -0,0 +1,27 @@
+sp_arith = force
+sp_bool = force
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_before_semi_for_empty = force
+sp_between_semi_for_empty = force
+sp_after_semi_for_empty = force
+sp_type_func = force
+sp_brace_else = force
+indent_continue = 4
+nl_brace_else = remove
+nl_for_brace = add
+nl_while_brace = add
+nl_switch_brace = add
+nl_before_case = true
+nl_after_func_proto_group = 2
+nl_after_func_body = 3
+pos_arith = trail
+align_var_def_span = 1
+align_var_def_star_style = 1
+align_typedef_gap = 3
+align_typedef_span = 5
+mod_full_brace_for = add
+mod_full_brace_if = add
+mod_full_brace_while = add
+mod_full_paren_if_bool = true
+mod_remove_extra_semicolon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_call_user.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/func_call_user.cfg
index 504fb3d8..504fb3d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_call_user.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/func_call_user.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ger.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ger.cfg
index 976c0c35..976c0c35 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ger.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ger.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1564.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/i1564.cfg
index 74c53e52..74c53e52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1564.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/i1564.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/if_chain.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/if_chain.cfg
index b59d69f8..b59d69f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/if_chain.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/if_chain.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-1.cfg
index 943d0eb6..943d0eb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-vbrace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-vbrace.cfg
index 7e6ca7c1..7e6ca7c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-vbrace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent-vbrace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_assign.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_assign.cfg
index 6bad61f1..6bad61f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_assign.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/indent_case_comment-false.cfg
new file mode 100644
index 00000000..15e0e2e8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-false.cfg
@@ -0,0 +1,2 @@
+# test for issue #3362
+indent_case_comment = false
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.74.0/tests/config/c/indent_case_comment-true.cfg
new file mode 100644
index 00000000..abcadd59
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_case_comment-true.cfg
@@ -0,0 +1,2 @@
+# test for issue #3362
+indent_case_comment = true
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.74.0/tests/config/c/indent_comment_align_thresh-0.cfg
new file mode 100644
index 00000000..dc730bf8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_comment_align_thresh-0.cfg
@@ -0,0 +1 @@
+indent_comment_align_thresh = 0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_compound_literal_return-false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-false.cfg
index b686aabe..b686aabe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_compound_literal_return-false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_compound_literal_return-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-true.cfg
index 9fa1d2ef..9fa1d2ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_compound_literal_return-true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_compound_literal_return-true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_call_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_call_param.cfg
index 26b4e03a..26b4e03a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_call_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_call_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_def_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_def_param.cfg
index c448b21f..c448b21f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_def_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_def_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_param.cfg
index 7db464b4..7db464b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_proto_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_proto_param.cfg
index 6cfb83ed..6cfb83ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_func_proto_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_func_proto_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_macro_brace-false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-false.cfg
index f9e3bdca..f9e3bdca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_macro_brace-false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_macro_brace-true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-true.cfg
index 62573cad..62573cad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_macro_brace-true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_macro_brace-true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_close-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-1.cfg
index 309be3e5..309be3e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_close-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_close-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_paren_close-2.cfg
index 2a77fedf..2a77fedf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_close-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/indent_single_line_comments_after.cfg
new file mode 100644
index 00000000..bae9787c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_single_line_comments_after.cfg
@@ -0,0 +1,4 @@
+# test for issue #3249
+indent_columns = 4
+indent_single_line_comments_after = 4
+indent_with_tabs = 0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_sparen_extra-8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_sparen_extra-8.cfg
index 6344ceb2..6344ceb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_sparen_extra-8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_sparen_extra-8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ternary_operator-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-1.cfg
index 80ea4e7a..80ea4e7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ternary_operator-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ternary_operator-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-2.cfg
index 1d5a91ab..1d5a91ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ternary_operator-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/indent_ternary_operator-2.cfg
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
new file mode 100644
index 00000000..1ab56eb9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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 = 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.73.0/tests/config/label_colon_nl_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_1.cfg
index 5c394f28..5c394f28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/label_colon_nl_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/label_colon_nl_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_2.cfg
index b1fafca7..b1fafca7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/label_colon_nl_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/label_colon_nl_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/leave_one_liners.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/leave_one_liners.cfg
index 931e9465..931e9465 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/leave_one_liners.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/leave_one_liners.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod-paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren.cfg
index 2c0049ab..2c0049ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod-paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod-paren2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren2.cfg
index 113ee868..113ee868 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod-paren2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod-paren2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_case_brace_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_case_brace_add.cfg
index bfcca51a..bfcca51a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_case_brace_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_case_brace_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_move_case_brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_move_case_brace.cfg
index acb25734..acb25734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_move_case_brace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/mod_move_case_brace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/my_conf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/my_conf.cfg
index 6bfddbb5..6bfddbb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/my_conf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/my_conf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nepenthes.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nepenthes.cfg
index 150294da..150294da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nepenthes.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nepenthes.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/newline_after_endif.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/newline_after_endif.cfg
index afd7693d..afd7693d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/newline_after_endif.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/newline_after_endif.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl-comment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl-comment.cfg
index c6ef78f9..c6ef78f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl-comment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl-comment.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign1.cfg
index 1f4da850..1f4da850 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign2.cfg
index b4cfb4d1..b4cfb4d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_assign2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_return_false.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_false.cfg
index 7636745b..7636745b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_return_false.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_false.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_return_true.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_true.cfg
index 1e6976fc..1e6976fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_return_true.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_before_return_true.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_test.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_brace_test.cfg
index c9faeb04..c9faeb04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_test.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_brace_test.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_create_one_liner.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_create_one_liner.cfg
index ec8b120c..ec8b120c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_create_one_liner.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_create_one_liner.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_ds_struct_enum-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum-2.cfg
index 01c60de4..01c60de4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_ds_struct_enum-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_ds_struct_enum_cmt-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg
index 1864b51d..1864b51d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_ds_struct_enum_cmt-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_ds_struct_enum_cmt-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_endif.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_endif.cfg
index b056153e..b056153e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_endif.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_endif.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.cfg
index b6a28869..b6a28869 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-3.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg
index f0d3f7b2..f0d3f7b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-3.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-3.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-4.cfg
index 70973ec8..70973ec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-a.cfg
index 66e7dbfa..66e7dbfa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_enum_own_lines-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_enum_own_lines-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_semicolon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_semicolon.cfg
index d099e0c7..d099e0c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_semicolon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_semicolon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_whole_file_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/nl_whole_file_ifdef.cfg
index 1d6a585a..1d6a585a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_whole_file_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/pascal_ptr.cfg
new file mode 100644
index 00000000..1760abca
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pascal_ptr.cfg
@@ -0,0 +1,5 @@
+sp_arith = force
+sp_before_ptr_star = remove
+sp_after_ptr_star = force
+sp_after_ptr_star_func = force
+indent_columns = 4
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_compare-eol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-eol.cfg
index 90267209..90267209 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_compare-eol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-eol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_compare-sol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-sol.cfg
index a4235d7d..a4235d7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_compare-sol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_compare-sol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_conditional-l.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-l.cfg
index 11eb46fd..11eb46fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_conditional-l.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-l.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_conditional-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-t.cfg
index 79bb52d0..79bb52d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_conditional-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pos_conditional-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-indent-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-indent-2.cfg
index 64f53643..64f53643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-indent-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-indent-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-space.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-space.cfg
index e91685ab..e91685ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-space.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp-space.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-0.cfg
index 82f11f27..82f11f27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-1.cfg
index 7c01e819..7c01e819 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-2.cfg
index 6f912806..6f912806 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-3.cfg
index 4b876498..4b876498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-4.cfg
index fe29f734..fe29f734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_if_indent-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_if_indent-4.cfg
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.74.0/tests/config/c/pp_include_at_level-false.cfg
new file mode 100644
index 00000000..6f780147
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-false.cfg
@@ -0,0 +1,4 @@
+# test for issue #3343
+pp_indent_at_level = true
+pp_if_indent_code = true
+pp_include_at_level = false
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.74.0/tests/config/c/pp_include_at_level-true.cfg
new file mode 100644
index 00000000..bc062b9f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_include_at_level-true.cfg
@@ -0,0 +1,4 @@
+# test for issue #3343
+pp_indent_at_level = true
+pp_if_indent_code = true
+pp_include_at_level = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_indent-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent-a.cfg
index f9f9b3b3..f9f9b3b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_indent-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent-a.cfg
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.74.0/tests/config/c/pp_indent_in_guard.cfg
new file mode 100644
index 00000000..2c4e2545
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_indent_in_guard.cfg
@@ -0,0 +1,5 @@
+# test for issue #3246
+pp_if_indent_code = true
+pp_indent = add
+pp_indent_count = 8
+pp_indent_in_guard = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_ret.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/pp_ret.cfg
index b1fb2000..b1fb2000 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_ret.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/preproc-cleanup.cfg
new file mode 100644
index 00000000..73fc557c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/preproc-cleanup.cfg
@@ -0,0 +1,37 @@
+# Clean up preprocessor output, ie from "gcc -E"
+sp_arith = force
+sp_inside_paren = remove
+sp_paren_paren = remove
+sp_after_ptr_star = remove
+sp_after_ptr_star_func = remove
+sp_after_cast = remove
+sp_sizeof_paren = remove
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_inside_fparen = remove
+sp_after_tparen_close = remove
+sp_func_call_paren = remove
+sp_return_paren = remove
+sp_attribute_paren = remove
+sp_cond_colon = add
+sp_cond_question = add
+indent_columns = 3
+nl_enum_brace = add
+nl_struct_brace = add
+nl_union_brace = add
+nl_after_semicolon = true
+nl_after_brace_open = true
+nl_max = 4
+nl_after_func_proto_group = 2
+nl_after_func_body = 2
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+align_var_def_star_style = 1
+align_var_def_inline = true
+align_enum_equ_span = 16
+align_var_struct_span = 99
+align_typedef_gap = 3
+align_typedef_span = 5
+mod_paren_on_return = add
+pp_space = remove
+sp_before_vardef_square = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ptr-arith.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ptr-arith.cfg
new file mode 100644
index 00000000..ff1949d3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/ptr-arith.cfg
@@ -0,0 +1,4 @@
+sp_arith = add
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_after_ptr_star_qualifier = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/rdan.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/rdan.cfg
index b000b33d..b000b33d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/rdan.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/rdan.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-1.cfg
index 996ca632..996ca632 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-2.cfg
index 87b361d8..87b361d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-3.cfg
index 9caf1a7e..9caf1a7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-4.cfg
index 9a885287..9a885287 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/return-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/return-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf537.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf537.cfg
index 400c7e0b..400c7e0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf537.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf537.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf538.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sf538.cfg
index 8c6d149b..8c6d149b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf538.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/sp_after_pointer_star-r.cfg
new file mode 100644
index 00000000..92a637a1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_pointer_star-r.cfg
@@ -0,0 +1 @@
+sp_after_ptr_star = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_sparen.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_after_sparen.cfg
index c9b9afbf..c9b9afbf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_sparen.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/sp_between_semi_for_empty-i.cfg
new file mode 100644
index 00000000..146f6d61
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-i.cfg
@@ -0,0 +1,4 @@
+# test for issue #3280
+sp_before_semi_for_empty = remove
+sp_between_semi_for_empty = ignore
+sp_after_semi_for_empty = remove
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.74.0/tests/config/c/sp_between_semi_for_empty-r.cfg
new file mode 100644
index 00000000..26dcc001
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_between_semi_for_empty-r.cfg
@@ -0,0 +1,4 @@
+# test for issue #3280
+sp_before_semi_for_empty = add
+sp_between_semi_for_empty = remove
+sp_after_semi_for_empty = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cmt_cpp_start-r.cfg
index 13ceebfc..13ceebfc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cmt_cpp_start-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cond_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_cond_colon.cfg
index d39afa14..d39afa14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cond_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/sp_emb_cmt-f.cfg
new file mode 100644
index 00000000..68a83e91
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-f.cfg
@@ -0,0 +1,2 @@
+sp_before_emb_cmt = force
+sp_after_emb_cmt = force
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.74.0/tests/config/c/sp_emb_cmt-i.cfg
new file mode 100644
index 00000000..04f49ee7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-i.cfg
@@ -0,0 +1,2 @@
+sp_before_emb_cmt = ignore
+sp_after_emb_cmt = ignore
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.74.0/tests/config/c/sp_emb_cmt-r.cfg
new file mode 100644
index 00000000..f45d357b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_emb_cmt-r.cfg
@@ -0,0 +1,2 @@
+sp_before_emb_cmt = remove
+sp_after_emb_cmt = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_user_inside_fparen.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_func_call_user_inside_fparen.cfg
index e5650760..e5650760 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_user_inside_fparen.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/c/sp_ptr_star_func_var-a.cfg
new file mode 100644
index 00000000..a21ed3da
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-a.cfg
@@ -0,0 +1 @@
+sp_ptr_star_func_var = add
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.74.0/tests/config/c/sp_ptr_star_func_var-f.cfg
new file mode 100644
index 00000000..9562f157
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-f.cfg
@@ -0,0 +1 @@
+sp_ptr_star_func_var = force
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.74.0/tests/config/c/sp_ptr_star_func_var-i.cfg
new file mode 100644
index 00000000..e18cc959
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-i.cfg
@@ -0,0 +1 @@
+sp_ptr_star_func_var = ignore
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.74.0/tests/config/c/sp_ptr_star_func_var-r.cfg
new file mode 100644
index 00000000..ec9bf9c0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_ptr_star_func_var-r.cfg
@@ -0,0 +1 @@
+sp_ptr_star_func_var = remove
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.74.0/tests/config/c/sp_sparen_paren-a.cfg
new file mode 100644
index 00000000..0d477f4d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-a.cfg
@@ -0,0 +1,2 @@
+# test for issue #3209
+sp_sparen_paren = add
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.74.0/tests/config/c/sp_sparen_paren-i.cfg
new file mode 100644
index 00000000..750b77ff
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/sp_sparen_paren-i.cfg
@@ -0,0 +1,3 @@
+# test for issue #3209
+sp_sparen_paren = ignore
+sp_paren_paren = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_columns-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/space_indent_columns-3.cfg
index ec130371..ec130371 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_columns-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/space_indent_columns-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/type_wrap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/type_wrap.cfg
index eeea5786..eeea5786 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/type_wrap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/type_wrap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width-3.cfg
index 843f6669..843f6669 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width.cfg
index 10cb731c..10cb731c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/width.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/xml-str.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/xml-str.cfg
index bd667ab4..bd667ab4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/xml-str.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/c/xml-str.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18777.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/UNI-18777.cfg
index 7d4c013e..7d4c013e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18777.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/UNI-18777.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-func_call_user.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_call_user.cfg
index 3219bc4b..3219bc4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-func_call_user.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_call_user.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-func_def.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_def.cfg
index c4575b88..c4575b88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-func_def.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-func_def.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-sp_after_oc_msg_receiver.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg
index 8e25aaed..8e25aaed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-sp_after_oc_msg_receiver.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_after_oc_msg_receiver.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-sp_inside_braces_oc_dict.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg
index 57e2463e..57e2463e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/aet-sp_inside_braces_oc_dict.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet-sp_inside_braces_oc_dict.cfg
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
new file mode 100644
index 00000000..a5d95a8a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/aet.cfg
@@ -0,0 +1,508 @@
+# 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.73.0/tests/config/align-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align-1.cfg
index 720f003e..720f003e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_same_func_call_params-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align_same_func_call_params-t.cfg
index d1496108..d1496108 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_same_func_call_params-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/align_same_func_call_params-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/attribute_specifier_seqs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/attribute_specifier_seqs.cfg
index 8eec117f..8eec117f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/attribute_specifier_seqs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/attribute_specifier_seqs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben2.cfg
new file mode 100644
index 00000000..8398a6b9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben2.cfg
@@ -0,0 +1,45 @@
+utf8_byte = true
+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_after_comma = force
+sp_inside_braces = force
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_func_call_paren = remove
+sp_cond_colon = add
+sp_cond_question = add
+indent_columns = 3
+indent_with_tabs = 0
+indent_class = true
+indent_label = 2
+nl_assign_brace = add
+nl_func_var_def_blk = 1
+nl_fcall_brace = add
+nl_if_brace = add
+nl_else_brace = add
+nl_for_brace = add
+nl_switch_brace = add
+nl_before_case = true
+nl_fdef_brace = add
+eat_blanks_after_open_brace = true
+nl_after_return = true
+align_var_def_span = 2
+align_var_def_star_style = 1
+align_assign_span = 1
+align_struct_init_span = 3
+cmt_convert_tab_to_spaces = true
+cmt_star_cont = true
+mod_full_brace_for = add
+mod_full_brace_if = add
+mod_paren_on_return = add
+mod_remove_extra_semicolon = true
+mod_add_long_function_closebrace_comment = 40
+mod_add_long_switch_closebrace_comment = 40
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_011.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_011.cfg
index 6ade29ad..6ade29ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_011.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_011.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_042.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_042.cfg
index c98cdf54..c98cdf54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_042.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/ben_042.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol-force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bool-pos-eol-force.cfg
index 51044559..51044559 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bool-pos-eol-force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bool-pos-eol-force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-allman.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/brace-allman.cfg
index 0e903302..0e903302 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/brace-allman.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/brace-allman.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_671.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/bug_671.cfg
index 00c0cf36..00c0cf36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_671.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/common/clark.cfg
new file mode 100644
index 00000000..0ca4890e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.cfg
@@ -0,0 +1,39 @@
+input_tab_size = 2
+sp_arith = add
+sp_assign = add
+sp_compare = add
+sp_before_sparen = add
+sp_inside_sparen = remove
+sp_inside_for = remove
+sp_after_comma = add
+sp_inside_braces = force
+sp_cond_colon = add
+sp_cond_question = add
+indent_columns = 2
+indent_switch_body = 2
+indent_with_tabs = 0
+indent_braces = true
+indent_single_line_comments_before = 2
+indent_switch_case = 2
+nl_func_var_def_blk = 1
+nl_if_brace = add
+nl_else_brace = add
+nl_for_brace = add
+nl_brace_while = add
+nl_switch_brace = add
+nl_before_case = true
+nl_before_if = force
+nl_after_if = force
+nl_before_for = force
+nl_after_for = force
+nl_before_while = force
+nl_after_while = force
+nl_before_switch = force
+nl_after_switch = force
+nl_before_do = force
+nl_after_func_body = 2
+mod_full_brace_for = remove
+mod_full_brace_if = remove
+mod_full_brace_nl = 3
+mod_full_brace_while = remove
+mod_paren_on_return = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clark.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.rerun.cfg
index 3b33c7d6..3b33c7d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/clark.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/clark.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/class-header.h
index 32e68a34..32e68a34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/class-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_insert-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-0.cfg
index 86d05f95..86d05f95 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_insert-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_insert-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-1.cfg
index 91dbf03a..91dbf03a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_insert-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/cmt_insert-1.cfg
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
new file mode 100644
index 00000000..d6261dd9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/d.cfg
@@ -0,0 +1,49 @@
+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.73.0/tests/config/del_semicolon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/del_semicolon.cfg
index 13434168..13434168 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/del_semicolon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/del_semicolon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/empty.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file-header.h
index 63fb5185..63fb5185 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file_footer.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_footer.txt
index 7ce80bad..7ce80bad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file_footer.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_footer.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file_header.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_header.txt
index 5431d0ff..5431d0ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/file_header.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/file_header.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-1.cfg
index 14879a94..14879a94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-2.cfg
index f9cf836c..f9cf836c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-3.cfg
index c868ae02..c868ae02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-def-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-def-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header.h
index e6f83943..e6f83943 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-header2.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header2.h
index 52bdf970..52bdf970 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func-header2.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/func-header2.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/function_header.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/function_header.txt
index c6508a02..c6508a02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/function_header.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/function_header.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_columns-3.cfg
index 9c9e205f..9c9e205f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_columns-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_continue-8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_continue-8.cfg
index 9bc69559..9bc69559 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_continue-8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_continue-8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_inside_ternary_operator.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_inside_ternary_operator.cfg
index ad5f98ed..ad5f98ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_inside_ternary_operator.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_inside_ternary_operator.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_var_def.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_var_def.cfg
index 2faffc24..2faffc24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_var_def.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/indent_var_def.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_672.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/issue_672.cfg
index fb436753..fb436753 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_672.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/issue_672.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst.cfg
index 163d6f64..163d6f64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst2.cfg
index 7f531264..7f531264 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/common/kw_subst3.cfg
new file mode 100644
index 00000000..b96dc493
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst3.cfg
@@ -0,0 +1,71 @@
+input_tab_size = 4
+output_tab_size = 4
+sp_arith = add
+sp_assign = add
+sp_enum_assign = add
+sp_bool = add
+sp_compare = add
+sp_before_sparen = add
+sp_inside_sparen = remove
+sp_after_sparen = add
+sp_sparen_brace = add
+sp_special_semi = add
+sp_after_comma = add
+sp_sizeof_paren = remove
+sp_type_func = add
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_inside_fparens = remove
+sp_inside_fparen = remove
+sp_func_call_paren = remove
+sp_else_brace = add
+sp_after_ptr_star_func = force
+indent_columns = 4
+indent_with_tabs = 0
+indent_switch_case = 4
+nl_end_of_file = add
+nl_end_of_file_min = 1
+nl_assign_brace = add
+nl_func_var_def_blk = 1
+nl_enum_brace = add
+nl_struct_brace = add
+nl_union_brace = add
+nl_if_brace = add
+nl_brace_else = add
+nl_elseif_brace = add
+nl_else_brace = add
+nl_for_brace = add
+nl_while_brace = add
+nl_do_brace = add
+nl_switch_brace = add
+nl_before_case = true
+nl_after_case = true
+nl_fdef_brace = add
+nl_after_semicolon = true
+nl_after_brace_open = true
+nl_after_brace_open_cmt = true
+nl_after_func_proto_group = 4
+nl_after_func_body = 4
+nl_after_func_body_one_liner = 4
+nl_after_return = true
+align_var_def_span = 10
+align_var_def_star_style = 1
+align_var_def_amp_style = 1
+align_var_def_colon = true
+align_assign_span = 10
+align_assign_thresh = 4
+align_enum_equ_span = 10
+cmt_sp_before_star_cont = 1
+cmt_insert_file_header = "file_header.txt"
+cmt_insert_file_footer = "file_footer.txt"
+cmt_insert_func_header = "function_header.txt"
+mod_full_brace_do = add
+mod_full_brace_for = add
+mod_full_brace_if = add
+mod_full_brace_while = add
+mod_remove_extra_semicolon = true
+mod_add_long_function_closebrace_comment = 50
+mod_add_long_switch_closebrace_comment = 50
+pp_indent_at_level = true
+pp_if_indent_code = true
+pp_define_at_level = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst4.cfg
index a269bdf8..a269bdf8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kw_subst4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/kw_subst4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_case_brace_rm.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_case_brace_rm.cfg
index 51252b69..51252b69 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_case_brace_rm.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_case_brace_rm.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_if_chain_only-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg
index ec61c84b..ec61c84b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_if_chain_only-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_full_brace_if_chain_only-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_paren_on_return-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-a.cfg
index 6e5a38ec..6e5a38ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_paren_on_return-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_paren_on_return-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-r.cfg
index fb547f72..fb547f72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_paren_on_return-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/mod_paren_on_return-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/msg-header.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/msg-header.h
index 79a0919f..79a0919f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/msg-header.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/msg-header.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_after.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_after.cfg
index b80dafa0..b80dafa0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_after.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/common/nl_before_ignore_after_case.cfg
new file mode 100644
index 00000000..6d1bbb7d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/nl_before_ignore_after_case.cfg
@@ -0,0 +1,11 @@
+# We need all these on, to check that nl_before_ignore_after_case
+# overrides them after case CASE_LABEL:
+
+nl_before_if = force
+nl_before_for = force
+nl_before_switch = force
+nl_before_do = force
+nl_before_while = force
+nl_before_synchronized = force
+
+nl_before_ignore_after_case = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-0.cfg
index a837d86f..a837d86f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-1.cfg
index 48ae77f3..48ae77f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-2.cfg
index 5beed445..5beed445 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-3.cfg
index 30a01c96..30a01c96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/region-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/region-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sort_imports.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sort_imports.cfg
index 655a684f..655a684f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sort_imports.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sort_imports.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_cast.cfg
index c16cc978..c16cc978 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_cast.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-f.cfg
index b7fa74f4..b7fa74f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-r.cfg
index 78a64119..78a64119 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_after_type-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_arith-f.cfg
index 6cd2b6b0..6cd2b6b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/common/sp_before_byref-r.cfg
new file mode 100644
index 00000000..2f5d1eff
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_before_byref-r.cfg
@@ -0,0 +1,2 @@
+sp_before_byref = remove
+sp_before_byref_func = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start-a.cfg
index d7e6adf1..d7e6adf1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start_force.cfg
index e87c9b0d..e87c9b0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_start_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cmt_cpp_start_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cparen_oparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cparen_oparen-f.cfg
index c2af4d15..c2af4d15 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cparen_oparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_cparen_oparen-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_inside_fparen-f.cfg
index 2b159a36..2b159a36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/sp_inside_fparen-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/space_indent_columns-4.cfg
index f05c685f..f05c685f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/space_indent_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/star_pos-0.cfg
index 6798b186..6798b186 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/star_pos-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.cfg
index 6c18a158..6c18a158 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-2.rerun.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.rerun.cfg
index c74e4020..c74e4020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/width-2.rerun.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/common/width-2.rerun.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/2185.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2185.cfg
index fda2290c..fda2290c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/2185.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2185.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/2203.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2203.cfg
index e9c359cf..e9c359cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/2203.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/2203.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/623_caret-spacing.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/623_caret-spacing.cfg
index 4d60daa9..4d60daa9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/623_caret-spacing.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/623_caret-spacing.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/633_decl-in-func-typedef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/633_decl-in-func-typedef.cfg
index 5ca47821..5ca47821 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/633_decl-in-func-typedef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/633_decl-in-func-typedef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-0.cfg
index 8aef4713..8aef4713 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-1.cfg
index f97e0abe..f97e0abe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-2.cfg
index 6c39bace..6c39bace 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/DefaultAndDelete-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/DefaultAndDelete-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/I1112-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I1112-2.cfg
index 6b1bba41..6b1bba41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/I1112-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I1112-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/I2103.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I2103.cfg
index 5c34ca18..5c34ca18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/I2103.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/I2103.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1052.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1052.cfg
index 91fe8899..91fe8899 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1052.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1052.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1167.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1167.cfg
index feb56c83..feb56c83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1167.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1167.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1184.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1184.cfg
index 0fdd95de..0fdd95de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1184.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1184.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1460.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1460.cfg
index 7adee60a..7adee60a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1460.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1460.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1511.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1511.cfg
index 71c01f4d..71c01f4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1511.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1511.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1692.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1692.cfg
index db3cbdbe..db3cbdbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1692.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1692.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1703.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1703.cfg
index f8c889ab..f8c889ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1703.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1703.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1734.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1734.cfg
index 37a4c192..37a4c192 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1734.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1734.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1753.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1753.cfg
index e0e5ab0b..e0e5ab0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1753.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1753.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1813.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1813.cfg
index ff1ce9d3..ff1ce9d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1813.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1813.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1923.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1923.cfg
index f242e902..f242e902 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1923.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1923.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1966.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1966.cfg
index be3a873d..be3a873d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1966.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_1966.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2020.cfg
index 2104e036..2104e036 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2020.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2045.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2045.cfg
index 3fb7cfe9..3fb7cfe9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2045.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2045.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2085.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2085.cfg
index 2df8ebd8..2df8ebd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2085.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2085.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2091.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2091.cfg
index 898b035b..898b035b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2091.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2091.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2101.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2101.cfg
index 44e5a0e6..44e5a0e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2101.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2101.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2149.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2149.cfg
index 23a8583a..23a8583a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2149.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2149.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2150.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2150.cfg
index 5f518291..5f518291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2150.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2150.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2151.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2151.cfg
index 0660e498..0660e498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2151.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2151.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2163.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2163.cfg
index b7c31fe2..b7c31fe2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2163.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2163.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2166.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2166.cfg
index 2b473436..2b473436 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2166.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2166.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2170.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2170.cfg
index f66f0022..f66f0022 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2170.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2170.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2186.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2186.cfg
index d694b699..d694b699 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2186.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2186.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2195.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2195.cfg
index 0c70840d..0c70840d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2195.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2195.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2219.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2219.cfg
index 865142a1..865142a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2219.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2219.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2224.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2224.cfg
index 8973a14f..8973a14f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2224.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2224.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2229.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2229.cfg
index 8527cbb2..8527cbb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2229.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2229.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2232.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2232.cfg
index 06730341..06730341 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2232.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2232.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2236.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2236.cfg
index 6d30f256..6d30f256 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2236.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2236.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2250.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2250.cfg
index 94a8d306..94a8d306 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2250.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2250.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2281.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2281.cfg
index 1d8b164e..1d8b164e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2281.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2281.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1402.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2302.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1402.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2302.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2305.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2305.cfg
index 7200d9ac..7200d9ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2305.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2305.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2319.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2319.cfg
index aeb132b5..aeb132b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2319.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2319.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2343.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2343.cfg
index 955a1f9a..955a1f9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2343.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2343.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2345.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2345.cfg
index 27213b45..27213b45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2345.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2345.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2368.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2368.cfg
index d1496108..d1496108 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2368.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2368.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2383.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2383.cfg
index 313d9efb..313d9efb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2383.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2383.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2386.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2386.cfg
index 3a121c2e..3a121c2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2386.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2386.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2428.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2428.cfg
index 8af28414..8af28414 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2428.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2428.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2437.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2437.cfg
index b21679ce..b21679ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2437.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2437.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2440.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440.cfg
index 3da56066..3da56066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2440.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2440_nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440_nl.cfg
index 3da56066..3da56066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2440_nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2440_nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2478.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2478.cfg
index bb4425d9..bb4425d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2478.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2478.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2561.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2561.cfg
index 03a40504..03a40504 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2561.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2561.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2570.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2570.cfg
index 6a9f2d25..6a9f2d25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2570.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2570.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2574.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2574.cfg
index d96f0980..d96f0980 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2574.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2574.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2582.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2582.cfg
index f634b12e..f634b12e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2582.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2582.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2591.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2591.cfg
index 6ca8934c..6ca8934c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2591.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2591.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2594.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2594.cfg
index 6d847dfc..6d847dfc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2594.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2594.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2596.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2596.cfg
index b6338859..b6338859 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2596.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2596.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2604.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2604.cfg
index daeb9bc6..daeb9bc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2604.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2604.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2668.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2668.cfg
index 7649b34c..7649b34c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2668.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2668.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2688.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2688.cfg
index 4baf4b3f..4baf4b3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2688.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2688.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2689.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2689.cfg
index e498e830..e498e830 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2689.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2689.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2692.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2692.cfg
index bce2060e..bce2060e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2692.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2692.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2703.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2703.cfg
index 80c42da9..80c42da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2703.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2703.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2734.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2734.cfg
index 83fdd868..83fdd868 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2734.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2734.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2735.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2735.cfg
index 32a72aa2..32a72aa2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2735.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2735.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2742.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2742.cfg
index eba0468c..eba0468c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2742.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2742.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2752.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2752.cfg
index e15e7702..e15e7702 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2752.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2752.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2757.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2757.cfg
index e2118df5..e2118df5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2757.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2757.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2758.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2758.cfg
index dd2d0f6b..dd2d0f6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2758.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2758.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2759.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2759.cfg
index abdc53f4..abdc53f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2759.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2759.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2771.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2771.cfg
index b34e82a7..b34e82a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2771.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2771.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2794.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2794.cfg
index c193054f..c193054f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2794.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2794.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2795.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2795.cfg
index 353cafa8..353cafa8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2795.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2795.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2823.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2823.cfg
index de58e056..de58e056 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2823.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2823.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2831.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2831.cfg
index e7271af0..e7271af0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2831.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2831.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2836.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2836.cfg
index 41151a57..41151a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2836.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2836.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2873.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2873.cfg
index be881c98..be881c98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2873.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2873.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2879.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2879.cfg
index ba98f974..ba98f974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2879.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2879.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2886.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2886.cfg
index eb4b5ca2..eb4b5ca2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2886.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2886.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2890.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2890.cfg
index 81ba72ca..81ba72ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2890.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2890.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2902.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2902.cfg
index 5806b371..5806b371 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2902.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2902.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2907.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2907.cfg
index fa5b3018..fa5b3018 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2907.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2907.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2914.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2914.cfg
index 98d4511c..98d4511c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2914.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2914.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2921.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2921.cfg
index 142dc8dc..142dc8dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2921.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2921.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2930.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2930.cfg
index bd8cb9b0..bd8cb9b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2930.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2930.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2942.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2942.cfg
index e72ddc77..e72ddc77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2942.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2942.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2949.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2949.cfg
index b5ea1ffb..b5ea1ffb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2949.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_2949.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3010.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3010.cfg
index 5f518291..5f518291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3010.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3010.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3025.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3025.cfg
index 5e545c50..5e545c50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3025.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3025.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3034.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3034.cfg
index 77557ac3..77557ac3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3034.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3034.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3040.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3040.cfg
index 12c8ebaf..12c8ebaf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3040.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3040.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3044.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3044.cfg
index c2f9ade5..c2f9ade5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3044.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3044.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3048.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3048.cfg
index fb4171d7..fb4171d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3048.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3048.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3052.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3052.cfg
index f7c29b8e..f7c29b8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3052.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3052.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3054-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054-2.cfg
index a41640f0..a41640f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3054-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3054.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054.cfg
index a88303ba..a88303ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3054.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3054.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3055.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3055.cfg
index 307e5d93..307e5d93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3055.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3055.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3058.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3058.cfg
index 1619b851..1619b851 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3058.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3058.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_0nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_0nl.cfg
index 53a71184..53a71184 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_0nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_0nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_1nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_1nl.cfg
index ad1c0bbc..ad1c0bbc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_1nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_1nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_2nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_2nl.cfg
index 27325b31..27325b31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_2nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_2nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_3nl.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_3nl.cfg
index 276c7d72..276c7d72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3061_3nl.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3061_3nl.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3080.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3080.cfg
index 748a6dad..748a6dad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3080.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3080.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3097.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3097.cfg
index bce2060e..bce2060e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_3097.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3097.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3164.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3164.cfg
new file mode 100644
index 00000000..10cf639b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3164.cfg
@@ -0,0 +1 @@
+mod_remove_duplicate_include = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3197.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3197.cfg
new file mode 100644
index 00000000..2177bfff
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3197.cfg
@@ -0,0 +1,4 @@
+sp_before_byref = ignore
+sp_before_byref_func = ignore
+sp_after_byref = ignore
+sp_after_byref_func = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3198.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3198.cfg
new file mode 100644
index 00000000..28852f24
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3198.cfg
@@ -0,0 +1,3 @@
+indent_columns = 4
+sp_before_dc = remove
+sp_after_dc = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3203.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3203.cfg
new file mode 100644
index 00000000..69cd5054
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3203.cfg
@@ -0,0 +1,5 @@
+indent_with_tabs = 0
+newlines = crlf
+output_tab_size = 4
+indent_columns = 4
+indent_class = true
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.74.0/tests/config/cpp/Issue_3220-f.cfg
new file mode 100644
index 00000000..fffa496d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-f.cfg
@@ -0,0 +1,11 @@
+indent_with_tabs = 0
+sp_after_ptr_star = force
+sp_after_ptr_star_func = force
+sp_after_ptr_star_trailing = force
+sp_after_ptr_star_qualifier = force
+sp_before_ptr_star = force
+sp_before_ptr_star_func = force
+sp_before_ptr_star_trailing = force
+sp_before_unnamed_ptr_star = force
+sp_between_ptr_star = force
+sp_ptr_star_paren = force
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.74.0/tests/config/cpp/Issue_3220-i.cfg
new file mode 100644
index 00000000..52060d80
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-i.cfg
@@ -0,0 +1,11 @@
+indent_with_tabs = 0
+sp_after_ptr_star = ignore
+sp_after_ptr_star_func = ignore
+sp_after_ptr_star_trailing = ignore
+sp_after_ptr_star_qualifier = ignore
+sp_before_ptr_star = ignore
+sp_before_ptr_star_func = ignore
+sp_before_ptr_star_trailing = ignore
+sp_before_unnamed_ptr_star = ignore
+sp_between_ptr_star = ignore
+sp_ptr_star_paren = ignore
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.74.0/tests/config/cpp/Issue_3220-ir.cfg
new file mode 100644
index 00000000..17d298b2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-ir.cfg
@@ -0,0 +1,11 @@
+indent_with_tabs = 0
+sp_after_ptr_star = ignore
+sp_after_ptr_star_func = ignore
+sp_after_ptr_star_trailing = ignore
+sp_after_ptr_star_qualifier = ignore
+sp_before_ptr_star = remove
+sp_before_ptr_star_func = ignore
+sp_before_ptr_star_trailing = ignore
+sp_before_unnamed_ptr_star = ignore
+sp_between_ptr_star = ignore
+sp_ptr_star_paren = ignore
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.74.0/tests/config/cpp/Issue_3220-r.cfg
new file mode 100644
index 00000000..c62cb16e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3220-r.cfg
@@ -0,0 +1,11 @@
+indent_with_tabs = 0
+sp_after_ptr_star = remove
+sp_after_ptr_star_func = remove
+sp_after_ptr_star_trailing = remove
+sp_after_ptr_star_qualifier = remove
+sp_before_ptr_star = remove
+sp_before_ptr_star_func = remove
+sp_before_ptr_star_trailing = remove
+sp_before_unnamed_ptr_star = remove
+sp_between_ptr_star = remove
+sp_ptr_star_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3237.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3237.cfg
new file mode 100644
index 00000000..5c47913d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3237.cfg
@@ -0,0 +1 @@
+sp_before_ptr_star = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3252.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3252.cfg
new file mode 100644
index 00000000..db7fe8f2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3252.cfg
@@ -0,0 +1 @@
+sp_after_tparen_close = add
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.74.0/tests/config/cpp/Issue_3309-f.cfg
new file mode 100644
index 00000000..e74d7570
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-f.cfg
@@ -0,0 +1,2 @@
+sp_ellipsis_parameter_pack = force
+nl_collapse_empty_body = true
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.74.0/tests/config/cpp/Issue_3309-i.cfg
new file mode 100644
index 00000000..dd286b9d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-i.cfg
@@ -0,0 +1,2 @@
+sp_ellipsis_parameter_pack = ignore
+nl_collapse_empty_body = true
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.74.0/tests/config/cpp/Issue_3309-r.cfg
new file mode 100644
index 00000000..771903f1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_3309-r.cfg
@@ -0,0 +1,2 @@
+sp_ellipsis_parameter_pack = remove
+nl_collapse_empty_body = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_931.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_931.cfg
index 45879950..45879950 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_931.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_931.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_995-do.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_995-do.cfg
index ba4e6387..ba4e6387 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_995-do.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Issue_995-do.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/NewLine-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-f.cfg
index 8da1e530..8da1e530 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/NewLine-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/NewLine-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-r.cfg
index 329f5112..329f5112 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/NewLine-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/NewLine-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/STUCK_macro-difficulties.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/STUCK_macro-difficulties.cfg
index c7ce0fd8..c7ce0fd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/STUCK_macro-difficulties.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/STUCK_macro-difficulties.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U02-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U02-Cpp.cfg
index e8b4846a..e8b4846a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U02-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U02-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U03-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U03-Cpp.cfg
index d0f33089..d0f33089 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U03-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U03-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U04-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U04-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U04-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U04-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U05-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U05-Cpp.cfg
index ac01c51c..ac01c51c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U05-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U05-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U06-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U06-Cpp.cfg
index 55fcc716..55fcc716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U06-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U06-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U07-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U07-Cpp.cfg
index 9cee7fef..9cee7fef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U07-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U07-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U16-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U16-Cpp.cfg
index 425ee375..425ee375 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U16-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U16-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U18-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U18-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U18-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U18-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U21-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U21-Cpp.cfg
index fd27114f..fd27114f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U21-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U21-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U23-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U23-Cpp.cfg
index 04863187..04863187 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U23-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U23-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U25-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U25-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U25-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/U26-Cpp.cfg
new file mode 100644
index 00000000..39c58934
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U26-Cpp.cfg
@@ -0,0 +1,5 @@
+sp_func_call_paren = remove
+indent_columns = 4
+indent_with_tabs = 0
+indent_off_after_return_new = true
+sp_func_def_paren = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U27-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U27-Cpp.cfg
index e8b4846a..e8b4846a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U27-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U27-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U28-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U28-Cpp.cfg
index ac01c51c..ac01c51c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U28-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U28-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U29-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U29-Cpp.cfg
index d65f6b27..d65f6b27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U29-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U29-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U30-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U30-Cpp.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U30-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U30-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U31-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U31-Cpp.cfg
index bd45658a..bd45658a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U31-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U31-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U33-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U33-Cpp.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U33-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U33-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U36-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U36-Cpp.cfg
index b655be2c..b655be2c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U36-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/U36-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-10496.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-10496.cfg
index 42f6ee64..42f6ee64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-10496.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-10496.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-12046.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-12046.cfg
index 4dcd62eb..4dcd62eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-12046.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-12046.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1340.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1340.cfg
index 8a43dca1..8a43dca1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1340.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1340.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1344.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1344.cfg
index 9e9937d2..9e9937d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1344.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1344.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1346.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1346.cfg
index 4074ff52..4074ff52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1346.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1346.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1347.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1347.cfg
index ee4173ec..ee4173ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1347.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1347.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1350.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1350.cfg
index 082a647f..082a647f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1350.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1350.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1356.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1356.cfg
index 948f20b6..948f20b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1356.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1356.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1358.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1358.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1358.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-1358.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2049.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2049.cfg
index f075ea03..f075ea03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2049.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2049.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2650.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2650.cfg
index 46279443..46279443 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2650.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2650.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2680.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-2680.cfg
index 99790699..99790699 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2680.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/UNI-29935.cfg
new file mode 100644
index 00000000..28d338ee
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-29935.cfg
@@ -0,0 +1,148 @@
+input_tab_size = 4
+string_replace_tab_chars = true
+disable_processing_cmt = "*begin-nonstandard-formatting*"
+enable_processing_cmt = "*end-nonstandard-formatting*"
+utf8_bom = remove
+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_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_for = remove
+sp_before_semi_for_empty = remove
+sp_between_semi_for_empty = remove
+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_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_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_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_after_new = force
+sp_between_new_paren = remove
+sp_skip_vbrace_tokens = true
+indent_columns = 4
+indent_with_tabs = 0
+indent_cs_delegate_brace = true
+indent_namespace = true
+indent_class = true
+indent_func_call_param = true
+indent_func_def_param = true
+indent_func_proto_param = true
+indent_switch_case = 4
+indent_label = -4
+indent_access_spec = -4
+indent_align_assign = false
+indent_align_paren = false
+indent_oc_block_msg_xcode_style = true
+indent_off_after_return_new = true
+indent_single_after_return = true
+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_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_do_brace = force
+nl_brace_while = force
+nl_switch_brace = force
+nl_case_colon_brace = force
+nl_namespace_brace = force
+nl_class_brace = force
+nl_fdef_brace = force
+nl_max = 3
+nl_after_func_body = 2
+nl_property_brace = force
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+align_left_shift = false
+cmt_convert_tab_to_spaces = true
+cmt_indent_multi = false
+cmt_multi_check_last = false
+mod_remove_extra_semicolon = true
+mod_remove_empty_return = true
+use_options_overriding_for_qt_macros = false
+warn_level_tabs_found_in_verbatim_string_literals = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-30088.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-30088.cfg
index 4abe03e1..4abe03e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-30088.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/UNI-30088.cfg
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
new file mode 100644
index 00000000..cfc6c300
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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.73.0/tests/config/Uncrustify.Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Uncrustify.Cpp.cfg
index 89855c3c..89855c3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Uncrustify.Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/Uncrustify.Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/al.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/al.cfg
index 669cef45..669cef45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/al.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/al.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-330.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align-330.cfg
index 7a2ce116..7a2ce116 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-330.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align-330.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-0.cfg
index fee6fea1..fee6fea1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-1.cfg
index 2175c1e2..2175c1e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-2.cfg
index 9e3a2779..9e3a2779 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_decl_func-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_decl_func-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_func_proto_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_func_proto_1.cfg
index 378039a7..378039a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_func_proto_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_func_proto_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_span-1.cfg
index fda177f9..fda177f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_assign_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_assign_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_asterisk_after_type_cast.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_asterisk_after_type_cast.cfg
index 4a781152..4a781152 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_asterisk_after_type_cast.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_asterisk_after_type_cast.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_class-constr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_class-constr.cfg
index 8824d97a..8824d97a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_class-constr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_class-constr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_continuation_left_shift.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_continuation_left_shift.cfg
index 767f2adc..767f2adc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_continuation_left_shift.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_continuation_left_shift.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_default_after_override.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_default_after_override.cfg
index 7373e8d1..7373e8d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_default_after_override.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_default_after_override.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_eigen_comma_init.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_eigen_comma_init.cfg
index a798cc5f..a798cc5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_eigen_comma_init.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_eigen_comma_init.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_fcall-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall-2.cfg
index 795a16e9..795a16e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_fcall-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_fcall.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall.cfg
index 2df9b2e0..2df9b2e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_fcall.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_fcall.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params-t.cfg
index 6072ca53..6072ca53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_gap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_gap.cfg
index 314c2e1b..314c2e1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_gap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_gap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_span-1.cfg
index 5695e5a4..5695e5a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_1.cfg
index acae1cc7..acae1cc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_2.cfg
index 355705f1..355705f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_3.cfg
index 48912fce..48912fce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_4.cfg
index 284a5ee8..284a5ee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_params_thresh_4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_params_thresh_4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_1.cfg
index b6a93b5b..b6a93b5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_2.cfg
index 363ea06c..363ea06c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_3.cfg
index 3a5ac106..3a5ac106 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_4.cfg
index 6b084d86..6b084d86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_5.cfg
index 8a8dff6b..8a8dff6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_func_proto_thresh_5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_func_proto_thresh_5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_right_comment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_right_comment.cfg
index 1551b394..1551b394 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_right_comment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_right_comment.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_class_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_class_span-1.cfg
index a1b4122c..a1b4122c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_class_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_class_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_1.cfg
index 5cadc402..5cadc402 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_2.cfg
index bb9be8ad..bb9be8ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_3.cfg
index edb77f43..edb77f43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_var_def_thresh_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/align_var_def_thresh_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/anonymous_enum.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/anonymous_enum.cfg
index 503a2cb5..503a2cb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/anonymous_enum.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/anonymous_enum.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/arith-vs-ptr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/arith-vs-ptr.cfg
index 60c8d23c..60c8d23c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/arith-vs-ptr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/avalon.cfg
new file mode 100644
index 00000000..aef9ed44
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon.cfg
@@ -0,0 +1,14 @@
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_before_square = force
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_before_vardef_square = force
+indent_columns = 2
+nl_start_of_file = remove
+nl_struct_brace = remove
+nl_fdef_brace = force
+nl_after_func_body = 2
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+mod_full_brace_if = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon2.cfg
index 97783b66..97783b66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon3.cfg
index 30f50cb7..30f50cb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/avalon3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/avalon4.cfg
new file mode 100644
index 00000000..1577d2b3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/avalon4.cfg
@@ -0,0 +1,13 @@
+sp_before_ptr_star = remove
+sp_after_ptr_star = force
+sp_before_angle = remove
+sp_inside_angle = remove
+sp_after_comma = force
+sp_before_dc = remove
+sp_after_ptr_star_qualifier = remove
+indent_columns = 2
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_if_brace = remove
+nl_func_decl_args = remove
+mod_full_brace_if = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_001.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_001.cfg
index e1bce1fa..e1bce1fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_001.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_001.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_003.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_003.cfg
index b6dffc7c..b6dffc7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_003.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_003.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_004.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_004.cfg
index fa3c13c3..fa3c13c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_004.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_004.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_005.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_005.cfg
index 6784d5f8..6784d5f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_005.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_005.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_006.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_006.cfg
index 2767d063..2767d063 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_006.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_006.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_008.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_008.cfg
index 432f7093..432f7093 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_008.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_008.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_009.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_009.cfg
index 314bb848..314bb848 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_009.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_009.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_010.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_010.cfg
index c4536db3..c4536db3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_010.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/ben_012.cfg
new file mode 100644
index 00000000..805f96ed
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_012.cfg
@@ -0,0 +1,14 @@
+sp_arith = force
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_inside_angle = remove
+sp_after_angle = force
+sp_angle_word = force
+indent_columns = 3
+indent_class = true
+indent_access_spec = 2
+nl_func_var_def_blk = 1
+nl_fdef_brace = add
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_013.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_013.cfg
index be76962d..be76962d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_013.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/ben_014.cfg
new file mode 100644
index 00000000..33c1e6e4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_014.cfg
@@ -0,0 +1,43 @@
+tok_split_gte = true
+sp_arith = force
+sp_assign = force
+sp_assign_default = remove
+sp_compare = force
+sp_inside_paren = remove
+sp_paren_paren = remove
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_ptr_star_func_var = remove
+sp_before_byref = remove
+sp_before_angle = remove
+sp_inside_angle = remove
+sp_inside_angle_empty = remove
+sp_angle_paren_empty = remove
+sp_angle_word = force
+sp_inside_square = remove
+sp_after_comma = force
+sp_func_proto_paren = remove
+sp_inside_fparen = remove
+sp_func_call_paren = remove
+sp_cparen_oparen = remove
+sp_before_dc = remove
+sp_after_dc = remove
+indent_columns = 3
+indent_class = true
+indent_access_spec = 2
+nl_func_var_def_blk = 1
+nl_struct_brace = add
+nl_fdef_brace = add
+nl_after_brace_open = true
+nl_after_access_spec = 1
+eat_blanks_after_open_brace = true
+eat_blanks_before_close_brace = true
+align_var_def_span = 2
+align_assign_span = 1
+align_var_class_span = 2
+align_typedef_gap = 3
+align_typedef_span = 5
+align_right_cmt_span = 3
+align_pp_define_gap = 4
+align_pp_define_span = 3
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_015.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_015.cfg
index 0e139678..0e139678 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_015.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_015.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_016.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_016.cfg
index 9b863f1d..9b863f1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_016.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_016.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_017.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_017.cfg
index a4acecc3..a4acecc3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_017.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/ben_018.cfg
new file mode 100644
index 00000000..c8dd1ab6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_018.cfg
@@ -0,0 +1,5 @@
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_after_ptr_star_qualifier = remove
+indent_columns = 3
+align_var_struct_span = 3
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_020.cfg
index 8cd270ef..8cd270ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/ben_021.cfg
new file mode 100644
index 00000000..e8024afb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_021.cfg
@@ -0,0 +1,13 @@
+sp_arith = force
+sp_assign = force
+sp_inside_paren = remove
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_before_byref = remove
+sp_cpp_lambda_square_paren = remove
+sp_cpp_lambda_square_brace = force
+sp_cpp_lambda_paren_brace = force
+indent_columns = 3
+indent_with_tabs = 0
+nl_after_semicolon = true
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_022.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_022.cfg
new file mode 100644
index 00000000..e258b9a3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_022.cfg
@@ -0,0 +1,13 @@
+sp_inside_paren = remove
+sp_before_ptr_star = force
+sp_between_ptr_star = remove
+sp_after_ptr_star = remove
+indent_columns = 3
+indent_class = true
+nl_fdef_brace = add
+align_var_def_span = 2
+align_var_def_star_style = 1
+mod_paren_on_return = add
+sp_after_ptr_star_trailing = remove
+sp_before_ptr_star_trailing = force
+sp_after_ptr_star_qualifier = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_023.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_023.cfg
index acb9b682..acb9b682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_023.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_023.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_024.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_024.cfg
index 37954be0..37954be0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_024.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_024.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_026.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_026.cfg
index f7008ee3..f7008ee3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_026.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_026.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_027.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_027.cfg
index fbbdb06a..fbbdb06a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_027.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_027.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_028.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_028.cfg
index 62848095..62848095 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_028.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_028.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_029.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_029.cfg
index a0c2e18c..a0c2e18c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_029.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_029.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_030.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_030.cfg
index 8663afd4..8663afd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_030.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_030.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_031.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_031.cfg
index fe2182c9..fe2182c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_031.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ben_031.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1001.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1001.cfg
index d8255ca7..d8255ca7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1001.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1001.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1003.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1003.cfg
index 242b3a13..242b3a13 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1003.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1003.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1004.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1004.cfg
index f479bada..f479bada 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1004.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1004.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1020.cfg
index 51643e87..51643e87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1020.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1108.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1108.cfg
index 741ba79d..741ba79d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1108.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1108.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1160.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1160.cfg
index afc7030d..afc7030d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1160.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1160.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1161.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1161.cfg
index c7977cf0..c7977cf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1161.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1161.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1169.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1169.cfg
index 0615b330..0615b330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1169.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1169.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1170.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1170.cfg
index 9171180b..9171180b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1170.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1170.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1236.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1236.cfg
index 0c60d5be..0c60d5be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1236.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1236.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1296.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1296.cfg
index 82a970ff..82a970ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1296.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1296.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1315.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1315.cfg
index 49a716d0..49a716d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1315.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1315.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1324.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1324.cfg
index 289ca9d5..289ca9d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1324.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1324.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1340.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1340.cfg
index 6ec6568e..6ec6568e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1340.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1340.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1349.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1349.cfg
index abe4253c..abe4253c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1349.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1349.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1395.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1395.cfg
index c2bed595..c2bed595 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1395.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1395.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2124-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1402.cfg
index e69de29b..e69de29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2124-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1402.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1403.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1403.cfg
index 8e10acd4..8e10acd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1403.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1403.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1432.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1432.cfg
index 4ae27492..4ae27492 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1432.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1432.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1439.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1439.cfg
index f625249d..f625249d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1439.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1439.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1452.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1452.cfg
index dbd0e9b4..dbd0e9b4 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1452.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1452.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1649.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1649.cfg
index 472975ab..472975ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1649.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/bug_1689.cfg
new file mode 100644
index 00000000..7c1462f1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1689.cfg
@@ -0,0 +1,2 @@
+sp_before_unnamed_byref = remove
+sp_before_byref = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1691.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1691.cfg
index 03600f80..03600f80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1691.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1691.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1717.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1717.cfg
index a6c7322f..a6c7322f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1717.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1717.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1758-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1758-f.cfg
index 90d17ebd..90d17ebd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1758-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1758-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1854.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1854.cfg
index ebc5c5e3..ebc5c5e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1854.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1854.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1862.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1862.cfg
index c23b9027..c23b9027 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_1862.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_1862.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2285.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2285.cfg
index fa3b437b..fa3b437b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2285.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2285.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2322.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2322.cfg
index 9743a828..9743a828 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2322.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2322.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2371.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2371.cfg
index 1f207beb..1f207beb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2371.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2371.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2402.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2402.cfg
index 85c3a458..85c3a458 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2402.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2402.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2433_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_1.cfg
index 17fd04a4..17fd04a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2433_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2433_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_2.cfg
index 89f0b916..89f0b916 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_2433_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_2433_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_472.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_472.cfg
index 68d6f99b..68d6f99b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_472.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_472.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_488.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_488.cfg
index 0319ef54..0319ef54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_488.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_488.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_633.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_633.cfg
index 61833884..61833884 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_633.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_633.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_657.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_657.cfg
index 109e3750..109e3750 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_657.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_657.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_664.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_664.cfg
index 3799bd89..3799bd89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_664.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_664.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_670.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_670.cfg
index fe57c0af..fe57c0af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_670.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_670.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_858-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-f.cfg
index 1f03334a..1f03334a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_858-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_858-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-r.cfg
index 82e3cb22..82e3cb22 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_858-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_858-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_322.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_322.cfg
index e49770be..e49770be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_322.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_322.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_359.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_359.cfg
index ab9c63fb..ab9c63fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_359.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_359.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_405.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_405.cfg
index 0bdfce99..0bdfce99 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_405.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_405.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_409-create.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-create.cfg
index ec0f6ca4..ec0f6ca4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_409-create.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-create.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_409-split.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-split.cfg
index 9e272905..9e272905 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_409-split.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_409-split.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_478.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_478.cfg
index 18db9a6d..18db9a6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_478.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_478.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_663.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_663.cfg
index 9d780855..9d780855 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_663.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_663.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_666.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_666.cfg
index 6acabd49..6acabd49 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_666.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/bug_i_752.cfg
new file mode 100644
index 00000000..93191dc0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/bug_i_752.cfg
@@ -0,0 +1,5 @@
+sp_before_tr_cmt = force
+sp_num_before_tr_cmt = 4
+indent_columns = 4
+indent_with_tabs = 0
+nl_end_of_file = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-center.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-center.cfg
new file mode 100644
index 00000000..5d370736
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-center.cfg
@@ -0,0 +1,7 @@
+# Places the byref as follows: "int & foo"
+sp_after_byref_func = force
+sp_before_byref_func = force
+sp_after_byref = force
+sp_before_byref = force
+indent_columns = 3
+indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-f.cfg
new file mode 100644
index 00000000..a50d0c1a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-f.cfg
@@ -0,0 +1,6 @@
+sp_before_byref_func = force
+sp_after_byref_func = force
+sp_before_byref = force
+sp_after_byref = force
+sp_before_unnamed_byref = force
+sp_addr = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-i.cfg
new file mode 100644
index 00000000..9d15782c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-i.cfg
@@ -0,0 +1,7 @@
+sp_before_byref_func = ignore
+sp_after_byref_func = ignore
+sp_before_byref = ignore
+sp_after_byref = ignore
+sp_before_unnamed_byref = ignore
+sp_type_func = ignore
+sp_addr = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-ir.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-ir.cfg
new file mode 100644
index 00000000..df89f6e3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-ir.cfg
@@ -0,0 +1,7 @@
+sp_before_byref_func = ignore
+sp_after_byref_func = ignore
+sp_before_byref = ignore
+sp_after_byref = remove
+sp_before_unnamed_byref = ignore
+sp_type_func = ignore
+sp_addr = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-left.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-left.cfg
new file mode 100644
index 00000000..d28c4e5e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-left.cfg
@@ -0,0 +1,9 @@
+# Places the byref as follows: "int &foo"
+sp_before_byref = force
+sp_before_byref_func = force
+sp_after_byref = remove
+indent_columns = 3
+indent_class = true
+
+# Add or remove space after a reference sign '&amp;', if followed by a func proto/def.
+sp_after_byref_func = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-r.cfg
new file mode 100644
index 00000000..505f9dc0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-r.cfg
@@ -0,0 +1,7 @@
+sp_before_byref_func = remove
+sp_after_byref_func = remove
+sp_before_byref = remove
+sp_after_byref = remove
+sp_before_unnamed_byref = remove
+sp_type_func = remove
+sp_addr = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-right.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-right.cfg
new file mode 100644
index 00000000..82fb7287
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/byref-right.cfg
@@ -0,0 +1,5 @@
+# Places the byref as follows: "int& foo"
+sp_before_byref = remove
+sp_before_byref_func = remove
+indent_columns = 3
+indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cast.cfg
index feac5350..feac5350 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cast.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cast.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-eol-add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol-add.cfg
index fb14545e..fb14545e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-eol-add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol-add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-eol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol.cfg
index ddb0e11b..ddb0e11b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-eol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-eol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-sol-add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol-add.cfg
index 960dade0..960dade0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-sol-add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol-add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-sol.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol.cfg
index a57e30d3..a57e30d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-colon-pos-sol.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-colon-pos-sol.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add.cfg
index d60ffa9b..d60ffa9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-add2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add2.cfg
index f8a35e0d..f8a35e0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-add2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-add2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-del.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-del.cfg
index b90f2f75..b90f2f75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-nl_func-del.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-nl_func-del.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-on-colon-indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-on-colon-indent.cfg
index 86fec34f..86fec34f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/class-on-colon-indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/class-on-colon-indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_convert_tab_to_spaces-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg
index 98b3bcf3..98b3bcf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_convert_tab_to_spaces-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_convert_tab_to_spaces-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_cpp_to_c-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_cpp_to_c-t.cfg
index 85c3fec8..85c3fec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_cpp_to_c-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_cpp_to_c-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-1.cfg
index 8d0a8a16..8d0a8a16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-2.cfg
index fd9b9d25..fd9b9d25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-3.cfg
index c8e6ce41..c8e6ce41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_indent-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_indent-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_multi_first_len_minimum-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_multi_first_len_minimum-1.cfg
index e7d99a98..e7d99a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cmt_multi_first_len_minimum-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg
new file mode 100644
index 00000000..0754b419
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cmt_trailing_single_line_c_to_cpp.cfg
@@ -0,0 +1 @@
+cmt_trailing_single_line_c_to_cpp = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/code_width-70.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/code_width-70.cfg
index 07c25e5c..07c25e5c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/code_width-70.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/comma-f.cfg
new file mode 100644
index 00000000..29eb50b5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-f.cfg
@@ -0,0 +1,3 @@
+sp_paren_comma = force
+sp_after_comma = force
+sp_before_comma = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-i.cfg
new file mode 100644
index 00000000..2dad1026
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-i.cfg
@@ -0,0 +1,3 @@
+sp_paren_comma = ignore
+sp_after_comma = ignore
+sp_before_comma = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-r.cfg
new file mode 100644
index 00000000..5194e6da
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/comma-r.cfg
@@ -0,0 +1,3 @@
+sp_paren_comma = remove
+sp_after_comma = remove
+sp_before_comma = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/const_throw.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/const_throw.cfg
index 41b3ecef..41b3ecef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/const_throw.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/const_throw.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/constr_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/constr_colon.cfg
index 3397573a..3397573a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/constr_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/constr_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp17.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cpp17.cfg
index 1865e0c8..1865e0c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cpp17.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cpp17.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cu.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cu.cfg
index 40dff3e5..40dff3e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cu.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/cu.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom-open.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open.cfg
index 5b4539e2..5b4539e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom-open.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom-open2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open2.cfg
index 38e507b5..38e507b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/custom-open2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/custom-open2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/disable_nl_cont.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/disable_nl_cont.cfg
index 9ea9350f..9ea9350f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/disable_nl_cont.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/disable_nl_cont.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/dont-detab-strings.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-detab-strings.cfg
index 9e36729d..9e36729d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/dont-detab-strings.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-detab-strings.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/dont-process-defines.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-process-defines.cfg
index bfb66ec8..bfb66ec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/dont-process-defines.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/dont-process-defines.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/eat_blanks_after_codewidth.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/eat_blanks_after_codewidth.cfg
index 1b24a7ac..1b24a7ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/eat_blanks_after_codewidth.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/ellipsis-i.cfg
new file mode 100644
index 00000000..3b4d8ec6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ellipsis-i.cfg
@@ -0,0 +1,2 @@
+sp_after_ellipsis = ignore
+sp_before_ellipsis = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum.cfg
index b39c0840..b39c0840 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-3.cfg
index 7fe548e2..7fe548e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-4.cfg
index d42e6b1e..d42e6b1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-6.cfg
index 6d4279ec..6d4279ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comma-6.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comma-6.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comment_wrap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comment_wrap.cfg
index e42e00a1..e42e00a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/enum_comment_wrap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/enum_comment_wrap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/extern_func.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/extern_func.cfg
index a6135e8a..a6135e8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/extern_func.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/extern_func.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/footer.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/footer.txt
index 1d2f941f..1d2f941f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/footer.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/footer.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_class.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_class.cfg
index 7f01b7be..7f01b7be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/func_class.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_class.cfg
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
new file mode 100644
index 00000000..81ce43a4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/func_param.cfg
@@ -0,0 +1,6 @@
+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.73.0/tests/config/functype_param-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-f.cfg
index 746b15f5..746b15f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/functype_param-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/functype_param-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-r.cfg
index 1576135f..1576135f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/functype_param-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/functype_param-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1516.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1516.cfg
index 8c03f30e..8c03f30e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1516.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1516.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1536.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.cfg
index 5506f68c..5506f68c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1536.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1536.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.txt
index d34c497d..d34c497d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1536.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1536.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1768.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1768.cfg
index 9174483a..9174483a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i1768.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i1768.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i683.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i683.cfg
index 2b6edefe..2b6edefe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/i683.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/i683.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/if_chain_braces_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/if_chain_braces_2.cfg
index aa9251c7..aa9251c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/if_chain_braces_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/if_chain_braces_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_braces_no.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_braces_no.cfg
index 24ca060b..24ca060b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_braces_no.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_braces_no.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_class-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t.cfg
index 78320e8a..78320e8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_class-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_class-t_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t_columns-4.cfg
index 5184fc9a..5184fc9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_class-t_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_class-t_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-11.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-11.cfg
index 15cef67e..15cef67e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-11.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-11.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-2.cfg
index f33cb665..f33cb665 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-4.cfg
index f4f5183a..f4f5183a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_comma_brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comma_brace.cfg
index 635c6cdf..635c6cdf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_comma_brace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comma_brace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_comment_align_thresh_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comment_align_thresh_2.cfg
index 2f5d5cab..2f5d5cab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_comment_align_thresh_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_comment_align_thresh_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_init.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init.cfg
index cb1cef12..cb1cef12 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_init.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/indent_ctor_init_following.cfg
new file mode 100644
index 00000000..140e8f17
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_following.cfg
@@ -0,0 +1,17 @@
+indent_columns = 2
+indent_before_class_colon = -2
+indent_class_colon = true
+indent_constr_colon = true
+indent_ctor_init_following = 5
+indent_ctor_init = 2
+indent_func_class_param = true
+indent_func_param_double = true
+indent_access_spec = 2
+nl_collapse_empty_body = true
+nl_constr_init_args = add
+nl_func_def_start = add
+nl_func_def_args = add
+nl_before_access_spec = 2
+pos_constr_comma = trail_force
+nl_class_colon = force
+pos_class_colon = lead_force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_init_leading.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_leading.cfg
index ce8fb22f..ce8fb22f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_init_leading.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_init_leading.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_members_twice.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_members_twice.cfg
index 82c708d4..82c708d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_ctor_members_twice.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_ctor_members_twice.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_else_if-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_else_if-t.cfg
index 2dcd9a57..2dcd9a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_else_if-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_else_if-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_first_for_expr-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_first_for_expr-t.cfg
index ff68e85c..ff68e85c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_first_for_expr-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_first_for_expr-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_namespace-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace-t.cfg
index 90bbdaec..90bbdaec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_namespace-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_namespace_single_indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace_single_indent.cfg
index 9f66fea4..9f66fea4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_namespace_single_indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_namespace_single_indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_off_after_return.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_off_after_return.cfg
index 077c5f94..077c5f94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_off_after_return.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_off_after_return.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_once.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_once.cfg
index 013985b9..013985b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_once.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_once.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_param.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_param.cfg
index 07d98897..07d98897 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_param.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_param.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_call-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_call-t.cfg
index eafffebc..eafffebc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_call-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_call-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_decl-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg
index c4db2ffe..c4db2ffe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_decl-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_decl-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_def-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_def-t.cfg
index 5d2895e9..5d2895e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_paren_after_func_def-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_paren_after_func_def-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_semicolon_for_paren-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg
index 6b49dbd6..6b49dbd6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_semicolon_for_paren-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_semicolon_for_paren-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_shift.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_shift.cfg
index 8a848c34..8a848c34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_shift.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_shift.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_var_def_cont-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_var_def_cont-t.cfg
index f439a00b..f439a00b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_var_def_cont-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_var_def_cont-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_with_tabs-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_with_tabs-0.cfg
index bd2c3a08..bd2c3a08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_with_tabs-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/indent_with_tabs-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/initlist_leading_commas.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/initlist_leading_commas.cfg
index ebd35547..ebd35547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/initlist_leading_commas.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/initlist_leading_commas.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/interface-keyword-in-cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/interface-keyword-in-cpp.cfg
index cbbf215b..cbbf215b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/interface-keyword-in-cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/interface-keyword-in-cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1778.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1778.cfg
index 2f4bd642..2f4bd642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1778.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1778.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1782.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1782.cfg
index 6d50bfeb..6d50bfeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1782.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1782.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1804.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1804.cfg
index 4c424b89..4c424b89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1804.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1804.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1887.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1887.cfg
index 956ea6a9..956ea6a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1887.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1887.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1916.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1916.cfg
index 414a4a96..414a4a96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1916.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1916.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1985.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1985.cfg
index 3be58c29..3be58c29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1985.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1985.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1997.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_1997.cfg
index 1f79d36e..1f79d36e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_1997.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/issue_2124-1.cfg
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2124-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-2.cfg
index 34866fe3..34866fe3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2124-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2124-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2209.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2209.cfg
index 414a7273..414a7273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2209.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2209.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_1.cfg
index 56ab3a56..56ab3a56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_2.cfg
index 2848fb59..2848fb59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_2623_3.cfg
index 52d17555..52d17555 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2623_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/issue_3116-2.cfg
new file mode 100644
index 00000000..f26ef61e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116-2.cfg
@@ -0,0 +1,6 @@
+indent_cpp_lambda_body = true
+indent_align_assign = true
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 0
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116.cfg
new file mode 100644
index 00000000..034f2697
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3116.cfg
@@ -0,0 +1,6 @@
+indent_cpp_lambda_body = true
+indent_align_assign = false
+indent_columns = 4
+indent_with_tabs = 0
+indent_continue = 4
+indent_paren_close = 2
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3378.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3378.cfg
new file mode 100644
index 00000000..8ecc9f2f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_3378.cfg
@@ -0,0 +1,2 @@
+indent_class = true
+indent_ignore_label = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_564.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_564.cfg
index d1496108..d1496108 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_564.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_564.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574-i-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-a.cfg
index 24a1a182..24a1a182 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574-i-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574-i-b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-b.cfg
index b61ac3e2..b61ac3e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574-i-b.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/issue_574-i-i.cfg
new file mode 100644
index 00000000..c0177cb1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574-i-i.cfg
@@ -0,0 +1,12 @@
+sp_paren_paren = remove
+sp_before_ptr_star = force
+sp_after_ptr_star = remove
+sp_before_byref = force
+sp_after_byref = remove
+sp_inside_fparen = remove
+indent_columns = 4
+indent_class = true
+nl_class_brace = force
+sp_before_assign = ignore
+sp_assign = ignore
+sp_assign_default = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574.cfg
index 925ee5fe..925ee5fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_574.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/issue_574.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim2.cfg
index 18b12bbe..18b12bbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim3.cfg
index 0fe42133..0fe42133 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/kdepim5.cfg
index 56a1b3da..56a1b3da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/kdepim5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/lambda1.cfg
new file mode 100644
index 00000000..c0fbc795
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda1.cfg
@@ -0,0 +1,17 @@
+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
+sp_cpp_lambda_square_brace = force
+sp_cpp_lambda_paren_brace = force
+indent_columns = 3
+indent_with_tabs = 0
+nl_cpp_lambda_leave_one_liners = true
+nl_cpp_ldef_brace = remove
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda2.cfg
index 9f698209..9f698209 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda3.cfg
index ffed35eb..ffed35eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda_in_one_liner.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda_in_one_liner.cfg
index 7b61e767..7b61e767 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lambda_in_one_liner.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lambda_in_one_liner.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Mac.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Mac.cfg
index d8b41944..d8b41944 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Mac.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Mac.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Unix.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Unix.cfg
index e6cf9411..e6cf9411 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Unix.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Unix.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Win.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Win.cfg
index cb40d365..cb40d365 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/lineEndings-to-Win.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/lineEndings-to-Win.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/long_br_cmt.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_br_cmt.cfg
index f66ee7c7..f66ee7c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/long_br_cmt.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_br_cmt.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/long_namespace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_namespace.cfg
index 74f99a18..74f99a18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/long_namespace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/long_namespace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_add_long_namespace_closebrace_comment-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg
index a94f5a62..a94f5a62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_add_long_namespace_closebrace_comment-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_add_long_namespace_closebrace_comment-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/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
index 32a552ec..32a552ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_remove_empty_return-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_empty_return-t.cfg
index 3e1bcd1f..3e1bcd1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_remove_empty_return-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_empty_return-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_remove_extra_semicolon-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg
index 0f2d5246..0f2d5246 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_remove_extra_semicolon-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/mod_remove_extra_semicolon-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_1.cfg
index fe15ff0a..fe15ff0a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_10.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_10.cfg
index e5b917e8..e5b917e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_10.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_10.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_2.cfg
index b4063fd3..b4063fd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_3.cfg
index d1c40d07..d1c40d07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_4.cfg
index 651b4823..651b4823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_5.cfg
index 94140b21..94140b21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_6.cfg
index 4fd7a077..4fd7a077 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_6.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_6.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_7.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_7.cfg
index 4ee5733c..4ee5733c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_7.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_7.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_8.cfg
index 5d6d9c63..5d6d9c63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_9.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_9.cfg
index be9a43e3..be9a43e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/multi_line_9.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/multi_line_9.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nSolve.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nSolve.cfg
index 6cc6fc27..6cc6fc27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nSolve.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nSolve.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/negative_indent.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/negative_indent.cfg
index 39b1b007..39b1b007 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/negative_indent.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/negative_indent.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_a.cfg
index d7501092..d7501092 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_f.cfg
index 16784899..16784899 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_paren_open_close.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_paren_open_close.cfg
index 789c7abe..789c7abe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_paren_open_close.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_paren_open_close.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_r.cfg
index b72cd2ae..b72cd2ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new_op_r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/new_op_r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl-brAfter-fcallParen.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl-brAfter-fcallParen.cfg
index 6a83f800..6a83f800 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl-brAfter-fcallParen.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl-brAfter-fcallParen.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_access_spec.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_access_spec.cfg
index a5d98c44..a5d98c44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_access_spec.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_access_spec.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body-2.cfg
index 9c9e7d57..9c9e7d57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body.cfg
index 68633b6d..68633b6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_body.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_class_proto-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_class_proto-3.cfg
index 87b84e91..87b84e91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_class_proto-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_class_proto-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_proto-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto-3.cfg
index c9bc1f45..c9bc1f45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_proto-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_proto_group-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto_group-3.cfg
index 63fa256a..63fa256a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_proto_group-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_after_func_proto_group-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign_leave_one_liners.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_assign_leave_one_liners.cfg
index 6914813b..6914813b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_assign_leave_one_liners.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/nl_before_brace_open_1.cfg
new file mode 100644
index 00000000..4146c6fb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_1.cfg
@@ -0,0 +1 @@
+nl_before_brace_open = true
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.74.0/tests/config/cpp/nl_before_brace_open_2.cfg
new file mode 100644
index 00000000..bc1aaf83
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_2.cfg
@@ -0,0 +1,23 @@
+nl_before_brace_open = true
+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_cs_property_leave_one_liners = true
+nl_func_leave_one_liners = true
+nl_cpp_lambda_leave_one_liners = true
+nl_if_leave_one_liners = true
+nl_while_leave_one_liners = true
+nl_for_leave_one_liners = true
+nl_oc_msg_leave_one_liner = true
+nl_namespace_two_to_one_liner = true
+nl_create_if_one_liner = true
+nl_create_for_one_liner = true
+nl_create_while_one_liner = true
+nl_create_func_def_one_liner = true
+nl_create_list_one_liner = true
+nl_split_if_one_liner = true
+nl_split_for_one_liner = true
+nl_split_while_one_liner = true
+nl_class_leave_one_liner_groups = true
+nl_after_func_body_one_liner = 0
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.74.0/tests/config/cpp/nl_before_brace_open_3.cfg
new file mode 100644
index 00000000..02daa843
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_brace_open_3.cfg
@@ -0,0 +1,23 @@
+nl_before_brace_open = true
+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_cs_property_leave_one_liners = true
+nl_func_leave_one_liners = true
+nl_cpp_lambda_leave_one_liners = true
+nl_if_leave_one_liners = true
+nl_while_leave_one_liners = true
+nl_for_leave_one_liners = true
+nl_oc_msg_leave_one_liner = true
+nl_namespace_two_to_one_liner = false
+nl_create_if_one_liner = true
+nl_create_for_one_liner = true
+nl_create_while_one_liner = true
+nl_create_func_def_one_liner = true
+nl_create_list_one_liner = true
+nl_split_if_one_liner = true
+nl_split_for_one_liner = true
+nl_split_while_one_liner = true
+nl_class_leave_one_liner_groups = true
+nl_after_func_body_one_liner = 0
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-1.cfg
index 03ee374a..03ee374a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-2.cfg
index 2f3ba945..2f3ba945 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_func_body_def-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_func_body_def-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_if_closing_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg
index 39539a4e..39539a4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_if_closing_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_if_closing_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_if_closing_paren-r.cfg
index d3ab2d68..d3ab2d68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_before_if_closing_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/nl_before_struct.cfg
new file mode 100644
index 00000000..ab325b19
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_before_struct.cfg
@@ -0,0 +1 @@
+nl_before_struct = 3
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_brace-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_brace-a.cfg
index 25d3c271..25d3c271 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_brace-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_brace-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_fparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-f.cfg
index 0a731344..0a731344 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_fparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_fparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-r.cfg
index 5a749682..5a749682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_fparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_brace_fparen-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_class-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-a.cfg
index 8c1eb70e..8c1eb70e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_class-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_class-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-r.cfg
index 29cc4dc6..29cc4dc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_class-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_class-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.73.0/tests/config/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace-r__nl_collapse_empty_body-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg
index 7f08f9e3..7f08f9e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-fr.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg
index affe7156..affe7156 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-fr.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-fr.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg
index e64f7f0c..e64f7f0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-rf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg
index 9b12913e..9b12913e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_fdef_brace_cond-rf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_fdef_brace_cond-rf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_for_leave_one_liners-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg
index bdcceefd..bdcceefd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_for_leave_one_liners-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_for_leave_one_liners-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg
index 4d11891e..4d11891e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_for_leave_one_liners-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_for_leave_one_liners-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_empty-r.cfg
index da04d6fa..da04d6fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren-f.cfg
index 480ce89f..480ce89f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_paren_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg
index 48612eb5..48612eb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_paren_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_call_paren_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_class_scope-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_class_scope-a.cfg
index dc9b2ec5..dc9b2ec5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_class_scope-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_class_scope-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_decl_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_1.cfg
index 438afe8f..438afe8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_decl_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_decl_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_2.cfg
index c0495a4b..c0495a4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_decl_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_decl_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_def_paren_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg
index ddc5e5d2..ddc5e5d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_def_paren_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_def_paren_empty-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_paren_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_paren_empty.cfg
index 63f0b8ad..63f0b8ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_paren_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_paren_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_scope_name-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_scope_name-a.cfg
index c814477d..c814477d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_scope_name-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_scope_name-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name-r.cfg
index 9cc10873..9cc10873 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_class.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_class.cfg
index fcb08501..fcb08501 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_class.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_class.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_force.cfg
index ef8b317e..ef8b317e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_mixed.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_mixed.cfg
index 515400f2..515400f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_mixed.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_mixed.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_remove.cfg
index ee38dd7e..ee38dd7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_type_name_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_type_name_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_var_def_blk-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_var_def_blk-1.cfg
index 2fc79eb3..2fc79eb3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_var_def_blk-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_func_var_def_blk-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_inside_namespace_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_1.cfg
index c84309ca..c84309ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_inside_namespace_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_inside_namespace_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_2.cfg
index 9edefd02..9edefd02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_inside_namespace_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_inside_namespace_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_max_blank_in_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-1.cfg
index 9aa3416c..9aa3416c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_max_blank_in_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_max_blank_in_func-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-4.cfg
index 8d0bdf67..8d0bdf67 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_max_blank_in_func-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_max_blank_in_func-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_namespace-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-a.cfg
index bc5d6469..bc5d6469 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_namespace-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_namespace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-r.cfg
index ca9c198d..ca9c198d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_namespace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_namespace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_remove_extra_newlines-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_remove_extra_newlines-1.cfg
index 2d0c48b2..2d0c48b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_remove_extra_newlines-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/nl_template-f.cfg
new file mode 100644
index 00000000..a90d1500
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-f.cfg
@@ -0,0 +1,17 @@
+# Forces a newline between template '>' and class
+tok_split_gte = true
+sp_arith = force
+sp_compare = force
+sp_before_byref = remove
+sp_after_byref = force
+sp_after_angle = force
+sp_angle_paren_empty = remove
+sp_after_operator = force
+sp_inside_braces_struct = force
+sp_inside_braces = force
+sp_func_proto_paren = remove
+sp_angle_word = force
+indent_columns = 3
+indent_class = true
+nl_template_class = force
+nl_template_func = force
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.74.0/tests/config/cpp/nl_template-r.cfg
new file mode 100644
index 00000000..443693e5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_template-r.cfg
@@ -0,0 +1,21 @@
+# Removes newlines between template '>' and class
+tok_split_gte = true
+sp_arith = force
+sp_compare = force
+sp_before_unnamed_ptr_star = remove
+sp_before_byref = remove
+sp_after_byref = force
+sp_after_angle = force
+sp_angle_paren_empty = remove
+sp_after_operator = force
+sp_after_cast = force
+sp_inside_braces_struct = force
+sp_inside_braces = force
+sp_func_proto_paren = remove
+sp_func_def_paren = remove
+sp_angle_word = force
+sp_angle_word = force
+indent_columns = 3
+indent_class = true
+nl_template_class = remove
+nl_template_func = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_try-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_try-a.cfg
index b85fcb08..b85fcb08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_try-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_try-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg
index 1b29c5cd..1b29c5cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg
index ef8d1de1..ef8d1de1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_close-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg
index 4e070657..4e070657 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_close-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_close-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg
index d4834efd..d4834efd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_close-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_close-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_open-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg
index 1e9289e4..1e9289e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_open-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_open-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg
index 7d493c8b..7d493c8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_type_brace_init_lst_open-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/nl_type_brace_init_lst_open-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/no_squeeze_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/no_squeeze_ifdef.cfg
index af4a3020..af4a3020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/no_squeeze_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/op-space-force.cfg
new file mode 100644
index 00000000..4feac69a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-force.cfg
@@ -0,0 +1,9 @@
+# Forces a space after an operator
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_byref = force
+sp_after_operator = force
+sp_after_operator_sym = force
+indent_columns = 3
+indent_class = true
+align_right_cmt_span = 2
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.74.0/tests/config/cpp/op-space-remove-align-1.cfg
new file mode 100644
index 00000000..5be45718
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-1.cfg
@@ -0,0 +1,12 @@
+# Removes a space after an operator
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_byref = force
+sp_after_operator = remove
+sp_after_operator_sym = remove
+indent_columns = 3
+indent_class = true
+align_var_def_span = 2
+align_var_class_span = 2
+align_right_cmt_span = 2
+align_mix_var_proto = true
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.74.0/tests/config/cpp/op-space-remove-align-2.cfg
new file mode 100644
index 00000000..32b7687a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove-align-2.cfg
@@ -0,0 +1,13 @@
+# Removes a space after an operator
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_byref = force
+sp_after_operator = remove
+sp_after_operator_sym = remove
+indent_columns = 3
+indent_class = true
+align_var_def_span = 2
+align_var_class_span = 2
+align_right_cmt_span = 2
+align_on_operator = true
+align_mix_var_proto = true
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.74.0/tests/config/cpp/op-space-remove.cfg
new file mode 100644
index 00000000..5424ede9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op-space-remove.cfg
@@ -0,0 +1,8 @@
+# Removes a space after an operator
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_byref = force
+sp_after_operator = remove
+sp_after_operator_sym = remove
+indent_columns = 3
+indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op_sym_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op_sym_empty.cfg
index d9a57ce1..d9a57ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/op_sym_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/op_sym_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/out-668-F.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-F.cfg
index 77d9e08c..77d9e08c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/out-668-F.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-F.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/out-668-T.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/out-668-T.cfg
index a48c3ebb..a48c3ebb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/out-668-T.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/pos_assign.cfg
new file mode 100644
index 00000000..3b9c3700
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_assign.cfg
@@ -0,0 +1 @@
+pos_assign = join
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_comma-lf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-lf.cfg
index 9f2daab6..9f2daab6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_comma-lf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-lf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_comma-tb.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-tb.cfg
index 3530982a..3530982a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_comma-tb.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_comma-tb.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_enum_comma-tf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_enum_comma-tf.cfg
index 26cf3dff..26cf3dff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_enum_comma-tf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_enum_comma-tf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-join.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-join.cfg
index 69ce2c94..69ce2c94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-join.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-join.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-lead.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-lead.cfg
index 08e7d5de..08e7d5de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-lead.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-lead.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-trail.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-trail.cfg
index a6b45298..a6b45298 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pos_shift-trail.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pos_shift-trail.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-pragma.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp-pragma.cfg
index e143a69c..e143a69c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp-pragma.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp-pragma.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_define_at_level-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_define_at_level-1.cfg
index 12d12161..12d12161 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_define_at_level-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_define_at_level-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_multi_comment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/pp_multi_comment.cfg
index 0c23b380..0c23b380 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pp_multi_comment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/ptr_star-1.cfg
new file mode 100644
index 00000000..34a504be
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-1.cfg
@@ -0,0 +1,4 @@
+sp_before_ptr_star = remove
+sp_after_ptr_star = force
+sp_after_ptr_star_func = force
+sp_after_ptr_star_qualifier = force
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.74.0/tests/config/cpp/ptr_star-2.cfg
new file mode 100644
index 00000000..6af95864
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-2.cfg
@@ -0,0 +1,13 @@
+sp_before_ptr_star = force
+sp_between_ptr_star = remove
+sp_after_ptr_star = remove
+sp_after_ptr_star_func = remove
+sp_before_byref = force
+sp_after_byref = remove
+sp_after_ptr_star_trailing = remove
+sp_before_ptr_star_trailing = force
+sp_after_ptr_star_qualifier = remove
+
+macro-close NS_SWIFT_NAME
+macro-close VIEW_CONTROLLER_MACRO
+macro-close MACRO_FUNCTION
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.74.0/tests/config/cpp/ptr_star-3.cfg
new file mode 100644
index 00000000..3a5ed163
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/ptr_star-3.cfg
@@ -0,0 +1,8 @@
+sp_before_ptr_star = force
+sp_before_unnamed_ptr_star = remove
+sp_between_ptr_star = remove
+sp_after_ptr_star = remove
+sp_after_ptr_star_func = force
+sp_after_ptr_star_trailing = force
+sp_before_ptr_star_trailing = remove
+sp_after_ptr_star_qualifier = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/qt-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/qt-1.cfg
index b15663f7..b15663f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/qt-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/qt-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sef.cfg
index ee467d79..ee467d79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/semi-f.cfg
new file mode 100644
index 00000000..0ffadc4a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-f.cfg
@@ -0,0 +1,9 @@
+indent_with_tabs = 0
+sp_after_semi = force
+sp_after_semi_for = force
+sp_after_semi_for_empty = force
+sp_before_semi = force
+sp_before_semi_for = force
+sp_before_semi_for_empty = force
+sp_between_semi_for_empty = force
+sp_special_semi = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-i.cfg
new file mode 100644
index 00000000..b4260607
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-i.cfg
@@ -0,0 +1,9 @@
+indent_with_tabs = 0
+sp_after_semi = ignore
+sp_after_semi_for = ignore
+sp_after_semi_for_empty = ignore
+sp_before_semi = ignore
+sp_before_semi_for = ignore
+sp_before_semi_for_empty = ignore
+sp_between_semi_for_empty = ignore
+sp_special_semi = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-r.cfg
new file mode 100644
index 00000000..a8465b8c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/semi-r.cfg
@@ -0,0 +1,9 @@
+indent_with_tabs = 0
+sp_after_semi = remove
+sp_after_semi_for = remove
+sp_after_semi_for_empty = remove
+sp_before_semi = remove
+sp_before_semi_for = remove
+sp_before_semi_for_empty = remove
+sp_between_semi_for_empty = remove
+sp_special_semi = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.2886991-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-f.cfg
index 46a15bac..46a15bac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.2886991-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.2886991-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.2886991-r.cfg
index 8f6c0f6d..8f6c0f6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf.2886991-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sf.3315874.cfg
new file mode 100644
index 00000000..99da8446
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf.3315874.cfg
@@ -0,0 +1,15 @@
+sp_before_byref = force
+sp_before_byref_func = force
+sp_before_unnamed_byref = force
+sp_after_byref = remove
+sp_after_byref_func = remove
+sp_after_operator_sym = remove
+sp_func_proto_paren = force
+sp_inside_fparen = force
+nl_max = 2
+align_var_def_amp_style = 1
+align_right_cmt_span = 15
+align_func_proto_span = 100
+align_func_proto_amp_style = 1
+align_func_proto_gap = 5
+align_on_operator = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf574.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sf574.cfg
index 8fc266f7..8fc266f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf574.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sim.cfg
new file mode 100644
index 00000000..a772734b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sim.cfg
@@ -0,0 +1,12 @@
+sp_ptr_star_func_var = force
+sp_before_angle = remove
+sp_after_angle = remove
+sp_angle_word = remove
+indent_columns = 2
+indent_class = true
+nl_collapse_empty_body = true
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_template_class = force
+eat_blanks_after_open_brace = true
+pos_class_colon = trail
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-1.cfg
index cae5bbb7..cae5bbb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-2.cfg
index c14d7901..c14d7901 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-3.cfg
index d0428a10..d0428a10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_angle-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_angle-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-f.cfg
index d92ffb0d..d92ffb0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-r.cfg
index 130602eb..130602eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_cast-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_cast-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_constr_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_constr_colon.cfg
index aa1189dd..aa1189dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_constr_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_constr_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_decltype-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-f.cfg
index 077c5f94..077c5f94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_decltype-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_decltype-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_decltype-r.cfg
index 64a318a0..64a318a0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_decltype-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_after_ellipsis-f.cfg
new file mode 100644
index 00000000..e30e169a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ellipsis-f.cfg
@@ -0,0 +1 @@
+sp_after_ellipsis = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_ptr_star_qualifier-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg
index 7e26046f..7e26046f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_ptr_star_qualifier-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_ptr_star_qualifier-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type-i.cfg
index bd45658a..bd45658a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-i.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type-i.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type_brace_init_lst_open-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg
index d3b744b4..d3b744b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type_brace_init_lst_open-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type_brace_init_lst_open-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg
index f370b82e..f370b82e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type_brace_init_lst_open-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_after_type_brace_init_lst_open-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_colon.cfg
index e247bbbe..e247bbbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren-f.cfg
index 0b3d2f92..0b3d2f92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_paren_empty.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren_empty.cfg
index 1e3c592b..1e3c592b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_angle_paren_empty.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_angle_paren_empty.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith-a.cfg
index 4d60daa9..4d60daa9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith_additive-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-f.cfg
index 8e6f0585..8e6f0585 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith_additive-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith_additive-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-r.cfg
index e01e86f7..e01e86f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_arith_additive-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_arith_additive-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_assign_default.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_assign_default.cfg
index 29411834..29411834 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_assign_default.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_assign_default.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_balance_nested_parens.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_balance_nested_parens.cfg
index 8e9dbb6f..8e9dbb6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_balance_nested_parens.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_balance_nested_parens.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_byref_func.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_byref_func.cfg
index 6f5e2783..6f5e2783 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_byref_func.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_before_case_colon.cfg
new file mode 100644
index 00000000..d0bef793
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_case_colon.cfg
@@ -0,0 +1 @@
+sp_before_case_colon = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_comma-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_comma-f.cfg
index dc25e313..dc25e313 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_comma-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_comma-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_constr_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_constr_colon.cfg
index 9d0ec317..9d0ec317 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_constr_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_before_ellipsis-f.cfg
new file mode 100644
index 00000000..ed701425
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-f.cfg
@@ -0,0 +1,7 @@
+sp_before_ellipsis = force
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
+
+sp_before_byref = force
+sp_byref_ellipsis = force
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.74.0/tests/config/cpp/sp_before_ellipsis-r.cfg
new file mode 100644
index 00000000..e2163788
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ellipsis-r.cfg
@@ -0,0 +1,7 @@
+sp_before_ellipsis = remove
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
+
+sp_before_byref = force
+sp_byref_ellipsis = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ptr_star-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-f.cfg
index 7653ec0b..7653ec0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ptr_star-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ptr_star-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_ptr_star-r.cfg
index 55f99c73..55f99c73 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_ptr_star-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg
new file mode 100644
index 00000000..834fd302
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-a.cfg
@@ -0,0 +1,7 @@
+sp_before_tr_cmt = add
+sp_num_before_tr_cmt = 2
+sp_before_emb_cmt = add
+sp_num_before_emb_cmt = 2
+indent_columns = 2
+nl_end_of_file = force
+nl_end_of_file_min = 1
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.74.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg
new file mode 100644
index 00000000..54720c71
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_tr_emb_cmt-f.cfg
@@ -0,0 +1,7 @@
+sp_before_tr_cmt = force
+sp_num_before_tr_cmt = 2
+sp_before_emb_cmt = force
+sp_num_before_emb_cmt = 2
+indent_columns = 2
+nl_end_of_file = force
+nl_end_of_file_min = 1
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_type_brace_init_lst_close-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg
index 3dda0281..3dda0281 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_type_brace_init_lst_close-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_type_brace_init_lst_close-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_before_type_brace_init_lst_close-r.cfg
index 5fb0bf36..5fb0bf36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_type_brace_init_lst_close-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_bool-f.cfg
new file mode 100644
index 00000000..b5a9e09f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-f.cfg
@@ -0,0 +1 @@
+sp_bool = force
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.74.0/tests/config/cpp/sp_bool-i.cfg
new file mode 100644
index 00000000..ae79b0a8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-i.cfg
@@ -0,0 +1 @@
+sp_bool = ignore
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.74.0/tests/config/cpp/sp_bool-r.cfg
new file mode 100644
index 00000000..3baee576
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_bool-r.cfg
@@ -0,0 +1 @@
+sp_bool = remove
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.74.0/tests/config/cpp/sp_brace_brace-f.cfg
new file mode 100644
index 00000000..090c2858
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-f.cfg
@@ -0,0 +1 @@
+sp_brace_brace = force
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.74.0/tests/config/cpp/sp_brace_brace-r.cfg
new file mode 100644
index 00000000..c652b3cd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_brace-r.cfg
@@ -0,0 +1 @@
+sp_brace_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_catch.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_catch.cfg
index 7ee0209d..7ee0209d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_brace_catch.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_brace_catch.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_catch_brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_catch_brace.cfg
index d2da6d91..d2da6d91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_catch_brace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_catch_brace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt.cfg
index fb7f6ef1..fb7f6ef1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_region-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg
index 1c626401..1c626401 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_region-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_region-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cmt_cpp_region-r.cfg
index 67a0ff11..67a0ff11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cmt_cpp_region-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_cond_question-f.cfg
new file mode 100644
index 00000000..dd6f0faf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-f.cfg
@@ -0,0 +1,8 @@
+#Config file
+sp_cond_question_before = force
+sp_cond_question_after = force
+
+sp_cond_colon_before = force
+sp_cond_colon_after = force
+
+sp_cond_ternary_short = force
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.74.0/tests/config/cpp/sp_cond_question-i.cfg
new file mode 100644
index 00000000..d671d519
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-i.cfg
@@ -0,0 +1,8 @@
+#Config file
+sp_cond_question_before = ignore
+sp_cond_question_after = ignore
+
+sp_cond_colon_before = ignore
+sp_cond_colon_after = ignore
+
+sp_cond_ternary_short = ignore
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.74.0/tests/config/cpp/sp_cond_question-ir.cfg
new file mode 100644
index 00000000..4a557554
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-ir.cfg
@@ -0,0 +1,11 @@
+#Config file
+sp_cond_question_before = ignore
+sp_cond_question_after = ignore
+
+sp_cond_colon_before = ignore
+sp_cond_colon_after = ignore
+
+sp_cond_colon = remove
+sp_cond_question = remove
+
+sp_cond_ternary_short = ignore
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.74.0/tests/config/cpp/sp_cond_question-r.cfg
new file mode 100644
index 00000000..0d013cf7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cond_question-r.cfg
@@ -0,0 +1,8 @@
+#Config file
+sp_cond_question_before = remove
+sp_cond_question_after = remove
+
+sp_cond_colon_before = remove
+sp_cond_colon_after = remove
+
+sp_cond_ternary_short = remove
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.74.0/tests/config/cpp/sp_constr_colon-i.cfg
new file mode 100644
index 00000000..c5cd823a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_constr_colon-i.cfg
@@ -0,0 +1,3 @@
+indent_class = true
+sp_before_constr_colon = ignore
+sp_after_constr_colon = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cparen_oparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cparen_oparen-r.cfg
index f584c02d..f584c02d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cparen_oparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cparen_oparen-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_fparen-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-f.cfg
index f45270e7..f45270e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_fparen-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg
new file mode 100644
index 00000000..cda81b02
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-i.cfg
@@ -0,0 +1,4 @@
+sp_cpp_lambda_square_paren = ignore
+sp_cpp_lambda_square_brace = ignore
+sp_cpp_lambda_fparen = ignore
+nl_cpp_lambda_leave_one_liners = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_fparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_fparen-r.cfg
index c64da54c..c64da54c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_cpp_lambda_fparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg
new file mode 100644
index 00000000..f632d9d6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-f.cfg
@@ -0,0 +1,4 @@
+sp_cpp_lambda_assign = remove
+sp_cpp_lambda_paren_brace = force
+sp_cpp_lambda_square_paren = remove
+sp_cpp_lambda_square_brace = force
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.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg
new file mode 100644
index 00000000..9c8e2748
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-i.cfg
@@ -0,0 +1 @@
+sp_cpp_lambda_paren_brace = ignore
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.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg
new file mode 100644
index 00000000..492af499
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_paren_brace-r.cfg
@@ -0,0 +1,4 @@
+sp_cpp_lambda_assign = remove
+sp_cpp_lambda_paren_brace = remove
+sp_cpp_lambda_square_paren = remove
+sp_cpp_lambda_square_brace = force
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.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg
new file mode 100644
index 00000000..cc067763
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-f.cfg
@@ -0,0 +1,4 @@
+sp_cpp_lambda_assign = remove
+sp_cpp_lambda_paren_brace = remove
+sp_cpp_lambda_square_paren = remove
+sp_cpp_lambda_square_brace = force
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.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg
new file mode 100644
index 00000000..a035f41e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-i.cfg
@@ -0,0 +1 @@
+sp_cpp_lambda_square_brace = ignore
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.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg
new file mode 100644
index 00000000..cf703b2f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_brace-r.cfg
@@ -0,0 +1,4 @@
+sp_cpp_lambda_assign = remove
+sp_cpp_lambda_paren_brace = remove
+sp_cpp_lambda_square_paren = remove
+sp_cpp_lambda_square_brace = remove
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.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg
new file mode 100644
index 00000000..55ac955d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-f.cfg
@@ -0,0 +1,4 @@
+sp_cpp_lambda_assign = remove
+sp_cpp_lambda_paren_brace = force
+sp_cpp_lambda_square_paren = force
+sp_cpp_lambda_square_brace = force
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.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg
new file mode 100644
index 00000000..e8525fe5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-i.cfg
@@ -0,0 +1,2 @@
+sp_cpp_lambda_square_paren = ignore
+sp_type_brace_init_lst = remove
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.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg
new file mode 100644
index 00000000..bcb937c3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_cpp_lambda_square_paren-r.cfg
@@ -0,0 +1,5 @@
+sp_cpp_lambda_assign = force
+sp_cpp_lambda_paren_brace = force
+sp_cpp_lambda_square_paren = remove
+sp_cpp_lambda_square_brace = force
+sp_type_brace_init_lst = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_dc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_dc.cfg
index c9b14cc2..c9b14cc2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_dc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_dc.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_decltype_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-f.cfg
index 3636cd02..3636cd02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_decltype_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_decltype_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_decltype_paren-r.cfg
index b11add96..b11add96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_decltype_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_endif_cmt.cfg
new file mode 100644
index 00000000..13ddf4fe
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_endif_cmt.cfg
@@ -0,0 +1 @@
+sp_endif_cmt = ignore
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.74.0/tests/config/cpp/sp_enum_assign-f.cfg
new file mode 100644
index 00000000..37928822
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-f.cfg
@@ -0,0 +1,4 @@
+indent_with_tabs = 0
+sp_enum_after_assign = ignore
+sp_enum_before_assign = ignore
+sp_enum_assign = force
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.74.0/tests/config/cpp/sp_enum_assign-i.cfg
new file mode 100644
index 00000000..c30b6525
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_assign-i.cfg
@@ -0,0 +1,4 @@
+indent_with_tabs = 0
+sp_enum_after_assign = ignore
+sp_enum_before_assign = ignore
+sp_enum_assign = ignore
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.74.0/tests/config/cpp/sp_enum_colon-i.cfg
new file mode 100644
index 00000000..d154830c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-i.cfg
@@ -0,0 +1 @@
+sp_enum_colon = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_colon-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-r.cfg
index 87f44474..87f44474 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_colon-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_enum_colon.cfg
index 27716eca..27716eca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_func_call_empty.cfg
new file mode 100644
index 00000000..e6d960bb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_empty.cfg
@@ -0,0 +1,13 @@
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_comma = force
+sp_func_call_paren = force
+sp_func_call_paren_empty = remove
+sp_return_paren = remove
+indent_columns = 3
+nl_func_var_def_blk = 1
+nl_fcall_brace = add
+nl_fdef_brace = add
+align_func_params = true
+align_var_def_star_style = 1
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_call_paren.cfg
index c5f8927b..c5f8927b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_func_call_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_func_class_empty.cfg
new file mode 100644
index 00000000..eb4aa154
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_class_empty.cfg
@@ -0,0 +1,14 @@
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_comma = force
+sp_func_call_paren = force
+sp_func_call_paren_empty = remove
+sp_func_class_paren_empty = force
+sp_return_paren = remove
+indent_columns = 3
+nl_func_var_def_blk = 1
+nl_fcall_brace = add
+nl_fdef_brace = add
+align_func_params = true
+align_var_def_star_style = 1
+mod_paren_on_return = add
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.74.0/tests/config/cpp/sp_func_def_empty.cfg
new file mode 100644
index 00000000..bb1260ab
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_def_empty.cfg
@@ -0,0 +1,14 @@
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_comma = force
+sp_func_def_paren_empty = force
+sp_func_call_paren = force
+sp_func_call_paren_empty = remove
+sp_return_paren = remove
+indent_columns = 3
+nl_func_var_def_blk = 1
+nl_fcall_brace = add
+nl_fdef_brace = add
+align_func_params = true
+align_var_def_star_style = 1
+mod_paren_on_return = add
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.74.0/tests/config/cpp/sp_func_proto_empty.cfg
new file mode 100644
index 00000000..e6da9e5f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_func_proto_empty.cfg
@@ -0,0 +1,14 @@
+sp_before_byref = remove
+sp_before_byref_func = remove
+sp_after_comma = force
+sp_func_proto_paren_empty = force
+sp_func_call_paren = force
+sp_func_call_paren_empty = remove
+sp_return_paren = remove
+indent_columns = 3
+nl_func_var_def_blk = 1
+nl_fcall_brace = add
+nl_fdef_brace = add
+align_func_params = true
+align_var_def_star_style = 1
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_braces_empty-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_empty-r.cfg
index f7b1b239..f7b1b239 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_braces_empty-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_inside_braces_enum-f.cfg
new file mode 100644
index 00000000..bd854828
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-f.cfg
@@ -0,0 +1 @@
+sp_inside_braces_enum = force
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.74.0/tests/config/cpp/sp_inside_braces_enum-i.cfg
new file mode 100644
index 00000000..a56a9ecb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-i.cfg
@@ -0,0 +1 @@
+sp_inside_braces_enum = ignore
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.74.0/tests/config/cpp/sp_inside_braces_enum-r.cfg
new file mode 100644
index 00000000..ca8a03a0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_braces_enum-r.cfg
@@ -0,0 +1 @@
+sp_inside_braces_enum = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparen-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparen-r.cfg
index 98f867f4..98f867f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparen-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparen-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparens-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_fparens-f.cfg
index b56756d1..b56756d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_fparens-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg
new file mode 100644
index 00000000..72db534b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-f.cfg
@@ -0,0 +1,2 @@
+sp_brace_brace = ignore
+sp_inside_type_brace_init_lst = force
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.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg
new file mode 100644
index 00000000..c42436bf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iif.cfg
@@ -0,0 +1,3 @@
+sp_brace_brace = ignore
+sp_before_type_brace_init_lst_close = ignore
+sp_inside_type_brace_init_lst = force
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.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg
new file mode 100644
index 00000000..e352ee6c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-iii.cfg
@@ -0,0 +1,3 @@
+sp_brace_brace = ignore
+sp_before_type_brace_init_lst_close = ignore
+sp_inside_type_brace_init_lst = ignore
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.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg
new file mode 100644
index 00000000..ed72df5e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-irf.cfg
@@ -0,0 +1,3 @@
+sp_brace_brace = ignore
+sp_before_type_brace_init_lst_close = remove
+sp_inside_type_brace_init_lst = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_type_brace_init_lst-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-r.cfg
index b0881eaf..b0881eaf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_inside_type_brace_init_lst-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg
new file mode 100644
index 00000000..cafaab52
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_inside_type_brace_init_lst-rf.cfg
@@ -0,0 +1,2 @@
+sp_brace_brace = remove
+sp_inside_type_brace_init_lst = force
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.74.0/tests/config/cpp/sp_paren_brace-f.cfg
new file mode 100644
index 00000000..8f9206ab
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-f.cfg
@@ -0,0 +1 @@
+sp_paren_brace = force
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.74.0/tests/config/cpp/sp_paren_brace-i.cfg
new file mode 100644
index 00000000..f3d0f22d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-i.cfg
@@ -0,0 +1 @@
+sp_paren_brace = ignore
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.74.0/tests/config/cpp/sp_paren_brace-r.cfg
new file mode 100644
index 00000000..7e2fce85
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_brace-r.cfg
@@ -0,0 +1 @@
+sp_paren_brace = remove
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.74.0/tests/config/cpp/sp_paren_ellipsis-f.cfg
new file mode 100644
index 00000000..3cc88128
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-f.cfg
@@ -0,0 +1,8 @@
+# Add or remove space between ')' and '...'.
+sp_paren_ellipsis = force
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
+
+sp_before_byref = force
+sp_byref_ellipsis = force
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.74.0/tests/config/cpp/sp_paren_ellipsis-i.cfg
new file mode 100644
index 00000000..093de258
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-i.cfg
@@ -0,0 +1,8 @@
+# Add or remove space between ')' and '...'.
+sp_paren_ellipsis = ignore
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
+
+sp_before_byref = force
+sp_byref_ellipsis = force
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.74.0/tests/config/cpp/sp_paren_ellipsis-r.cfg
new file mode 100644
index 00000000..5971dfa8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_ellipsis-r.cfg
@@ -0,0 +1,5 @@
+# Add or remove space between ')' and '...'.
+sp_paren_ellipsis = remove
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_noexcept-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_noexcept-f.cfg
index 35e76a33..35e76a33 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_noexcept-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_noexcept-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_qualifier-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_paren_qualifier-f.cfg
index f91f2aee..f91f2aee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_paren_qualifier-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_return-a.cfg
new file mode 100644
index 00000000..16e78850
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-a.cfg
@@ -0,0 +1,3 @@
+sp_return = add
+sp_before_emb_cmt = ignore
+sp_after_emb_cmt = ignore
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.74.0/tests/config/cpp/sp_return-f.cfg
new file mode 100644
index 00000000..b37d9b03
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-f.cfg
@@ -0,0 +1,3 @@
+sp_return = force
+sp_before_emb_cmt = ignore
+sp_after_emb_cmt = ignore
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.74.0/tests/config/cpp/sp_return-i.cfg
new file mode 100644
index 00000000..80d2d26d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-i.cfg
@@ -0,0 +1,3 @@
+sp_return = ignore
+sp_before_emb_cmt = ignore
+sp_after_emb_cmt = ignore
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.74.0/tests/config/cpp/sp_return-r.cfg
new file mode 100644
index 00000000..b3d64b3f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return-r.cfg
@@ -0,0 +1,3 @@
+sp_return = remove
+sp_before_emb_cmt = ignore
+sp_after_emb_cmt = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-f.cfg
index bdea1673..bdea1673 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_brace-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-r.cfg
index a2541527..a2541527 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_brace-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_brace-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-f.cfg
index 11637ca1..11637ca1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_return_paren-r.cfg
index 8fbef0b8..8fbef0b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_return_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg
new file mode 100644
index 00000000..853db73a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-f.cfg
@@ -0,0 +1,4 @@
+sp_sizeof_ellipsis = force
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
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.74.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg
new file mode 100644
index 00000000..48871cc9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-i.cfg
@@ -0,0 +1,4 @@
+sp_sizeof_ellipsis = ignore
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
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.74.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg
new file mode 100644
index 00000000..7d1c2068
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis-r.cfg
@@ -0,0 +1,4 @@
+sp_sizeof_ellipsis = remove
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
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.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg
new file mode 100644
index 00000000..46dfb49d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-f.cfg
@@ -0,0 +1,4 @@
+sp_sizeof_ellipsis_paren = force
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
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.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg
new file mode 100644
index 00000000..2b7d0b44
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-i.cfg
@@ -0,0 +1,4 @@
+sp_sizeof_ellipsis_paren = ignore
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
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.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg
new file mode 100644
index 00000000..27953868
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_sizeof_ellipsis_paren-r.cfg
@@ -0,0 +1,4 @@
+sp_sizeof_ellipsis_paren = remove
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_skip_vbrace_tokens.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg
index d5ce739d..d5ce739d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_skip_vbrace_tokens.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_skip_vbrace_tokens.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_throw_paren-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-f.cfg
index 611cd750..611cd750 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_throw_paren-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_throw_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-r.cfg
index 893c8782..893c8782 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_throw_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_throw_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_trailing_return-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-f.cfg
index 9e1fe074..9e1fe074 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_trailing_return-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_trailing_return-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-r.cfg
index b26929ba..b26929ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_trailing_return-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_trailing_return-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_brace_init_lst-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg
index 2f0d5258..2f0d5258 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_brace_init_lst-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_brace_init_lst-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_brace_init_lst-r.cfg
index 199dc1eb..199dc1eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_brace_init_lst-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_type_ellipsis-f.cfg
new file mode 100644
index 00000000..888a68b0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-f.cfg
@@ -0,0 +1,9 @@
+sp_type_ellipsis = force
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
+
+sp_parameter_pack_ellipsis = force
+sp_before_byref = force
+sp_byref_ellipsis = force
+sp_ptr_type_ellipsis = force
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.74.0/tests/config/cpp/sp_type_ellipsis-i.cfg
new file mode 100644
index 00000000..f6cb6d0c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-i.cfg
@@ -0,0 +1,4 @@
+sp_type_ellipsis = ignore
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
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.74.0/tests/config/cpp/sp_type_ellipsis-r.cfg
new file mode 100644
index 00000000..bf831e30
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_ellipsis-r.cfg
@@ -0,0 +1,9 @@
+sp_type_ellipsis = remove
+
+# Add or remove space between '...' and a parameter pack.
+sp_ellipsis_parameter_pack = force
+
+sp_parameter_pack_ellipsis = force
+sp_before_byref = force
+sp_byref_ellipsis = force
+sp_ptr_type_ellipsis = force
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-1.cfg
index 010876e0..010876e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-2.cfg
index de86218b..de86218b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_type_func-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/sp_type_func-f.cfg
new file mode 100644
index 00000000..e8e5f08a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-f.cfg
@@ -0,0 +1,3 @@
+sp_type_func = force
+sp_after_byref_func = force
+sp_after_ptr_star_func = force
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.74.0/tests/config/cpp/sp_type_func-r.cfg
new file mode 100644
index 00000000..62324f98
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_type_func-r.cfg
@@ -0,0 +1,3 @@
+sp_type_func = remove
+sp_after_byref_func = remove
+sp_after_ptr_star_func = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_word_brace_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_force.cfg
index d9c53345..d9c53345 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_word_brace_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_word_brace_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_remove.cfg
index 3fd1fa26..3fd1fa26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_word_brace_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/sp_word_brace_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_class-t_columns-4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/space_indent_class-t_columns-4.cfg
index a454237c..a454237c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/space_indent_class-t_columns-4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/space_indent_class-t_columns-4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze_ifdef.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef.cfg
index fa3f980c..fa3f980c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze_ifdef.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze_ifdef_top.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef_top.cfg
index 6b45f49a..6b45f49a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze_ifdef_top.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/squeeze_ifdef_top.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-1.cfg
index 6c9f5806..6c9f5806 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-2.cfg
index dc1f45fc..dc1f45fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/star_pos-2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/star_pos-2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/string_replace_tab_chars-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/string_replace_tab_chars-t.cfg
index 9e36729d..9e36729d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/string_replace_tab_chars-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/string_replace_tab_chars-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/tab-0-11.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/tab-0-11.cfg
index 96f745a3..96f745a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/tab-0-11.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cpp/template_sp-force.cfg
new file mode 100644
index 00000000..852277ca
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-force.cfg
@@ -0,0 +1,20 @@
+# Forces a newline between template '>' and class
+tok_split_gte = true
+sp_arith = force
+sp_compare = remove # just to show a difference
+sp_before_byref = remove
+sp_after_byref = force
+sp_template_angle = remove
+sp_before_angle = force
+sp_inside_angle = force
+sp_inside_angle_empty = force
+sp_after_angle = force
+sp_angle_paren = force
+sp_angle_paren_empty = force
+sp_after_operator = force
+sp_inside_braces_struct = force
+sp_inside_braces = force
+sp_func_proto_paren = remove
+sp_angle_word = force
+indent_columns = 3
+indent_class = true
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.74.0/tests/config/cpp/template_sp-ignore.cfg
new file mode 100644
index 00000000..b5bbb248
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-ignore.cfg
@@ -0,0 +1,4 @@
+sp_template_angle = ignore
+sp_before_angle = ignore
+sp_inside_angle = ignore
+sp_after_angle = ignore
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.74.0/tests/config/cpp/template_sp-remove.cfg
new file mode 100644
index 00000000..5e20f3b5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/template_sp-remove.cfg
@@ -0,0 +1,20 @@
+tok_split_gte = true
+sp_arith = force
+sp_compare = force
+sp_before_byref = remove
+sp_after_byref = force
+sp_inside_angle_empty = remove
+sp_angle_paren_empty = remove
+sp_inside_braces_struct = force
+sp_inside_braces = force
+sp_func_proto_paren = remove
+sp_func_call_paren = remove
+sp_cparen_oparen = remove
+sp_angle_word = remove
+indent_columns = 3
+indent_class = true
+
+sp_template_angle = remove
+sp_before_angle = remove
+sp_inside_angle = remove
+sp_after_angle = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-i.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-i.cfg
new file mode 100644
index 00000000..25622a57
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-i.cfg
@@ -0,0 +1,20 @@
+# Forces a newline between template '>' and class
+tok_split_gte = true
+sp_arith = force
+sp_compare = remove # just to show a difference
+sp_before_byref = remove
+sp_after_byref = force
+sp_template_angle = remove
+sp_before_angle = force
+sp_inside_angle = force
+sp_inside_angle_empty = force
+sp_after_angle = force
+sp_angle_paren = ignore
+sp_angle_paren_empty = force
+sp_after_operator = force
+sp_inside_braces_struct = force
+sp_inside_braces = force
+sp_func_proto_paren = remove
+sp_angle_word = force
+indent_columns = 3
+indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-r.cfg
new file mode 100644
index 00000000..7efd2a7d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/templates-r.cfg
@@ -0,0 +1,20 @@
+# Forces a newline between template '>' and class
+tok_split_gte = true
+sp_arith = force
+sp_compare = remove # just to show a difference
+sp_before_byref = remove
+sp_after_byref = force
+sp_template_angle = remove
+sp_before_angle = force
+sp_inside_angle = force
+sp_inside_angle_empty = force
+sp_after_angle = force
+sp_angle_paren = remove
+sp_angle_paren_empty = force
+sp_after_operator = force
+sp_inside_braces_struct = force
+sp_inside_braces = force
+sp_func_proto_paren = remove
+sp_angle_word = force
+indent_columns = 3
+indent_class = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt.cfg
index 08ef987e..08ef987e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt2.cfg
index 0b9be532..0b9be532 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt3.cfg
index d7f1f675..d7f1f675 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt4.cfg
index ccd7bb03..ccd7bb03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/toggle_processing_cmt4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/toggle_processing_cmt4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/var_def_gap.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/var_def_gap.cfg
index 3d77d117..3d77d117 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/var_def_gap.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/var_def_gap.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/wessex.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/wessex.cfg
index 77fc3303..77fc3303 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/wessex.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cpp/wessex.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/615_nested_usings.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/615_nested_usings.cfg
index ae152fd4..ae152fd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/615_nested_usings.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/615_nested_usings.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/620_getset-brace.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/620_getset-brace.cfg
index 8e5510d0..8e5510d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/620_getset-brace.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/620_getset-brace.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/625_where-constraints.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/625_where-constraints.cfg
index a6fa8175..a6fa8175 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/625_where-constraints.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/625_where-constraints.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2705.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/Issue_2705.cfg
index 0a3ecb71..0a3ecb71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2705.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/Issue_2705.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U-J.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U-J.cfg
index 21e55d74..21e55d74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U-J.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U-J.cfg
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
new file mode 100644
index 00000000..4edc0426
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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.73.0/tests/config/U02-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U02-Cs.cfg
index c7d6aeda..c7d6aeda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U02-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U02-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U03-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U03-Cs.cfg
index 24961370..24961370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U03-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U03-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U04-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U04-Cs.cfg
index b331f6f8..b331f6f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U04-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U04-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U06-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U06-Cs.cfg
index 03c2c765..03c2c765 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U06-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U06-Cs.cfg
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
new file mode 100644
index 00000000..62ee120e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cpp.cfg
new file mode 100644
index 00000000..1a8d9ead
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U08-Cpp.cfg
@@ -0,0 +1,2 @@
+sp_func_proto_paren = remove
+sp_before_byref = remove
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
new file mode 100644
index 00000000..2378cb43
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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.73.0/tests/config/U09-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cpp.cfg
index e8b4846a..e8b4846a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U09-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U09-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cs.cfg
index d74080d2..d74080d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U09-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U09-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U10-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cpp.cfg
index 76c1c8c3..76c1c8c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U10-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U10-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cs.cfg
index 42254ddb..42254ddb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U10-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U10-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U11-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cpp.cfg
index 07ba9e26..07ba9e26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U11-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U11-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cs.cfg
index 70557c46..70557c46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U11-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U11-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U12-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U12-Cpp.cfg
index 581594ac..581594ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U12-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U12-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U13-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cpp.cfg
index 162b13d4..162b13d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U13-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U13-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cs.cfg
index 75f78b42..75f78b42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U13-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U13-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U14-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U14-Cpp.cfg
index 967ea74d..967ea74d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U14-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U14-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U15-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cpp.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U15-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cpp.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U15-Cs.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cs.cfg
index 5a700342..5a700342 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U15-Cs.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U15-Cs.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U24-Cpp.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U24-Cpp.cfg
index bc46ae54..bc46ae54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/U24-Cpp.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/U24-Cpp.cfg
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
new file mode 100644
index 00000000..f5cc4ceb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/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=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.73.0/tests/config/UNI-11662.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11662.cfg
index 24cf86a8..24cf86a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-11662.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-11662.cfg
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
new file mode 100644
index 00000000..79b2e445
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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.73.0/tests/config/UNI-1288.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1288.cfg
index 3b6cf1b4..3b6cf1b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1288.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1288.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1338.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1338.cfg
index 0eef21b4..0eef21b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1338.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1338.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1343.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1343.cfg
index f5276e1f..f5276e1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1343.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1343.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-13955.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-13955.cfg
index d1c7c955..d1c7c955 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-13955.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-13955.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-14131.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-14131.cfg
index 7c5535ea..7c5535ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-14131.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-14131.cfg
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
new file mode 100644
index 00000000..a40e16a6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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.73.0/tests/config/UNI-18829.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18829.cfg
index d65f6b27..d65f6b27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-18829.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-18829.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1975.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1975.cfg
index 80528dc6..80528dc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1975.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1975.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1977.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1977.cfg
index 4563bfde..4563bfde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1977.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1977.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1978.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1978.cfg
index 2cf794e3..2cf794e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-1978.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-1978.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-19895.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-19895.cfg
index ac4012d1..ac4012d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-19895.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-19895.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2020.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2020.cfg
index 0d78de45..0d78de45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2020.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2020.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2021.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2021.cfg
index 827d33e0..827d33e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2021.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2021.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-21730.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-21730.cfg
index 5443f32f..5443f32f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-21730.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-21730.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2684.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2684.cfg
index c048c827..c048c827 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2684.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2684.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2685.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2685.cfg
index 3f25a1fa..3f25a1fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-2685.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-2685.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-29933.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-29933.cfg
index 2f136516..2f136516 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-29933.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-29933.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-30498_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-30498_2.cfg
index 8f635e72..8f635e72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-30498_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-30498_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-3083.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-3083.cfg
index 80528dc6..80528dc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-3083.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-3083.cfg
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
new file mode 100644
index 00000000..9333a9c5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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
new file mode 100644
index 00000000..ad1ac1cc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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.73.0/tests/config/UNI-9917.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-9917.cfg
index f1fd0af3..f1fd0af3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-9917.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/UNI-9917.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_032.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_032.cfg
index e99f12ab..e99f12ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_032.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_032.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_033.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_033.cfg
index 3f1ffc6c..3f1ffc6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_033.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_033.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_034.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_034.cfg
index 0681b1b8..0681b1b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_034.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_034.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_036.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_036.cfg
index 5a5f216b..5a5f216b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_036.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_036.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_037.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_037.cfg
index 97daab41..97daab41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_037.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_037.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_038.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_038.cfg
index 4384cfbd..4384cfbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_038.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_038.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_043.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_043.cfg
index fcbc9ddc..fcbc9ddc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_043.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_043.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_044.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_044.cfg
index 6815087d..6815087d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_044.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_044.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_045.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_045.cfg
index 3ff68ef5..3ff68ef5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_045.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/ben_045.cfg
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
new file mode 100644
index 00000000..6b14154d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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
new file mode 100644
index 00000000..d083d613
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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
new file mode 100644
index 00000000..730c4250
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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=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.73.0/tests/config/bug_620.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/bug_620.cfg
index 4486cd45..4486cd45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_620.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/cs/comma-cs-f.cfg
new file mode 100644
index 00000000..6ea5a2af
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-f.cfg
@@ -0,0 +1,4 @@
+sp_after_comma = force
+sp_after_mdatype_commas = force
+sp_before_mdatype_commas = force
+sp_between_mdatype_commas = force
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.74.0/tests/config/cs/comma-cs-i.cfg
new file mode 100644
index 00000000..f78c61b3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-i.cfg
@@ -0,0 +1,4 @@
+sp_after_comma = ignore
+sp_after_mdatype_commas = ignore
+sp_before_mdatype_commas = ignore
+sp_between_mdatype_commas = ignore
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.74.0/tests/config/cs/comma-cs-r.cfg
new file mode 100644
index 00000000..626b6ff1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/comma-cs-r.cfg
@@ -0,0 +1,4 @@
+sp_after_comma = remove
+sp_after_mdatype_commas = remove
+sp_before_mdatype_commas = remove
+sp_between_mdatype_commas = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cs_generics.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/cs_generics.cfg
index e4320a80..e4320a80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/cs_generics.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/cs_generics.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/getset.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/getset.cfg
index 1e1ab8e9..1e1ab8e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/getset.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/getset.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-multistring-coulmn1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent-multistring-coulmn1.cfg
index 8ce9a4ff..8ce9a4ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-multistring-coulmn1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent-multistring-coulmn1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_cs_delegate_brace-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_cs_delegate_brace-t.cfg
index 9a4e6382..9a4e6382 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_cs_delegate_brace-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_cs_delegate_brace-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_using_block-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_using_block-f.cfg
index 2bfca802..2bfca802 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_using_block-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/indent_using_block-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mda_space_a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_a.cfg
index b05558b7..b05558b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mda_space_a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mda_space_c.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_c.cfg
index 9bfcef37..9bfcef37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mda_space_c.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mda_space_c.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/misc-failures.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/misc-failures.cfg
index 36b9e694..36b9e694 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/misc-failures.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/misc-failures.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_nl_block_rem_mlcond-0.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg
index c187d46a..c187d46a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_nl_block_rem_mlcond-0.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_brace_nl_block_rem_mlcond-0.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/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
index 800ba158..800ba158 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_paren_if_bool.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_paren_if_bool.cfg
index f75f8801..f75f8801 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_paren_if_bool.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_full_paren_if_bool.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_using-t.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_sort_using-t.cfg
index 805fc734..805fc734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_using-t.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mod_sort_using-t.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mono.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mono.cfg
index 726b1eda..726b1eda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mono.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/mono.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new-constraint-paren-space.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/new-constraint-paren-space.cfg
index f96e03b6..f96e03b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/new-constraint-paren-space.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/new-constraint-paren-space.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf607.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sf607.cfg
index ac5c0069..ac5c0069 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sf607.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sf607.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sort_using_categ.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sort_using_categ.cfg
index bf7f26e6..bf7f26e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sort_using_categ.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sort_using_categ.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_comma-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_after_comma-a.cfg
index 3f67ae0e..3f67ae0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_comma-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_after_comma-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_assign-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_assign-a.cfg
index 78ee09f5..78ee09f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_assign-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_assign-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_between_new_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_between_new_paren.cfg
index 0a338bd2..0a338bd2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_between_new_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/sp_between_new_paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze-paren-close-Option.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/squeeze-paren-close-Option.cfg
index 9d4a4f70..9d4a4f70 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/squeeze-paren-close-Option.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/squeeze-paren-close-Option.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/tcf.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/tcf.cfg
index dd7fa193..dd7fa193 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/tcf.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/tcf.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/verbatim_strings.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/verbatim_strings.cfg
index 65e1756d..65e1756d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/verbatim_strings.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/cs/verbatim_strings.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1438.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/1438.cfg
index 6973c22f..6973c22f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1438.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/1438.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d-tst2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d-tst2.cfg
index db15aa59..db15aa59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d-tst2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/d/d2-i.cfg
new file mode 100644
index 00000000..b2f0f87a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-i.cfg
@@ -0,0 +1,2 @@
+sp_before_template_paren = ignore
+indent_columns = 4
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-r.cfg
new file mode 100644
index 00000000..888247f8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2-r.cfg
@@ -0,0 +1,2 @@
+sp_before_template_paren = remove
+indent_columns = 4
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2.cfg
new file mode 100644
index 00000000..e7a7bca1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d2.cfg
@@ -0,0 +1,49 @@
+sp_arith = force
+sp_compare = force
+sp_inside_paren = remove
+sp_paren_paren = remove
+sp_before_template_paren = force
+sp_before_sparen = force
+sp_inside_sparen = remove
+sp_inside_for = remove
+sp_after_comma = force
+sp_after_cast = remove
+sp_func_def_paren = remove
+sp_inside_fparen = remove
+sp_fparen_brace = force
+sp_else_brace = force
+sp_do_brace_open = force
+sp_while_paren_open = force
+indent_columns = 4
+indent_with_tabs = 0
+indent_class = true
+indent_case_brace = 4
+nl_start_of_file = remove
+nl_end_of_file = force
+nl_end_of_file_min = 1
+nl_func_var_def_blk = 1
+nl_enum_brace = remove
+nl_if_brace = remove
+nl_else_brace = remove
+nl_for_brace = remove
+nl_while_brace = remove
+nl_do_brace = remove
+nl_switch_brace = remove
+nl_before_case = true
+nl_fdef_brace = remove
+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_right_cmt_span = 3
+cmt_star_cont = true
+mod_full_brace_if = add
+mod_full_brace_while = add
+mod_paren_on_return = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3.cfg
index 53a311b0..53a311b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d3a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3a.cfg
index f3cf7bb8..f3cf7bb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d3a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d3a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d_sp_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d_sp_paren.cfg
index 5b3443e6..5b3443e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/d_sp_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/d_sp_paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/invariant.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/invariant.cfg
index a462b4d0..a462b4d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/invariant.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/invariant.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/libd.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/libd.cfg
index a29c77a4..a29c77a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/libd.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/libd.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/sp_after_type-a.cfg
index da7a3edb..da7a3edb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_type-a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/d/sp_after_type-a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_098.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/ecma/ben_098.cfg
index 9dddd073..9dddd073 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_098.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/ecma/ben_098.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1122.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1122.cfg
index 8a152eda..8a152eda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1122.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1122.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1124-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-f.cfg
index bec692b6..bec692b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1124-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1124-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-r.cfg
index 1c610373..1c610373 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1124-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1124-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1845.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1845.cfg
index 5d339f68..5d339f68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_1845.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_1845.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_670.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_670.cfg
index 504b1d7d..504b1d7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_670.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/Issue_670.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/annotation.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/annotation.cfg
index 0d800a82..0d800a82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/annotation.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/annotation.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_099.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/ben_099.cfg
index 6cd10860..6cd10860 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_099.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/ben_099.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-javadoc-alignment.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/doxy-javadoc-alignment.cfg
index 786a9ac7..786a9ac7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/doxy-javadoc-alignment.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/doxy-javadoc-alignment.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_foreach.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_foreach.cfg
index 56ec94cd..56ec94cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_foreach.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_foreach.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_synchronized_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_1.cfg
index e57bba91..e57bba91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_synchronized_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_synchronized_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_2.cfg
index 3512cdc8..3512cdc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/java_synchronized_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/java_synchronized_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/jdbi-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-f.cfg
index fde00f38..fde00f38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/jdbi-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/jdbi-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-r.cfg
index ed2a6942..ed2a6942 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/jdbi-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/jdbi-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/leading-tabs-for-java-lambda.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/leading-tabs-for-java-lambda.cfg
index ba1f063e..ba1f063e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/leading-tabs-for-java-lambda.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/leading-tabs-for-java-lambda.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_add_long_class_closebrace_comment-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg
index c1e8e0ac..c1e8e0ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_add_long_class_closebrace_comment-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/mod_add_long_class_closebrace_comment-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_annotation-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_after_annotation-f.cfg
index 405f8ef4..405f8ef4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_annotation-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_after_annotation-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_between_annotation-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_between_annotation-f.cfg
index 6a67c354..6a67c354 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_between_annotation-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/nl_between_annotation-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/reflow_fold_regex.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/reflow_fold_regex.txt
index 9a24626f..9a24626f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/reflow_fold_regex.txt
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/reflow_fold_regex.txt
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_for_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_after_for_colon.cfg
index 70b19e50..70b19e50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_for_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_after_for_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_this_paren.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_this_paren.cfg
index fc80bb28..fc80bb28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_this_paren.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/sp_this_paren.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_angles.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/template_angles.cfg
index 14680e53..14680e53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/template_angles.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/java/template_angles.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1927.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/1927.cfg
index 3734f63d..3734f63d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/1927.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/1927.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2172.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_2172.cfg
index a4da88d2..a4da88d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2172.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_2172.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_681.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_681.cfg
index 901b0c8e..901b0c8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_681.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/Issue_681.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-objc-like-xcode.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align-objc-like-xcode.cfg
index 3b321b11..3b321b11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align-objc-like-xcode.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align-objc-like-xcode.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_oc_msg_colon_span-1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align_oc_msg_colon_span-1.cfg
index 9681d152..9681d152 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/align_oc_msg_colon_span-1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/align_oc_msg_colon_span-1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/block_pointer.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/block_pointer.cfg
index 70c21bbd..70c21bbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/block_pointer.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/block_pointer.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/blocks.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/blocks.cfg
index 74ed7e4f..74ed7e4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/blocks.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/blocks.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_167.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_167.cfg
index 6ed02f2e..6ed02f2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_167.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_167.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_340.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_340.cfg
index f56e7a43..f56e7a43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_340.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_340.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_841.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_841.cfg
index 2ab54cc1..2ab54cc1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_841.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_841.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_125-412.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_i_125-412.cfg
index 2498ac1b..2498ac1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/bug_i_125-412.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/bug_i_125-412.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/delete-space-oc.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/delete-space-oc.cfg
index 4d8a15cb..4d8a15cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/delete-space-oc.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/delete-space-oc.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double-indent-objc-dict.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double-indent-objc-dict.cfg
index d4e9a1ae..d4e9a1ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double-indent-objc-dict.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double-indent-objc-dict.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_1.cfg
index 73319da9..73319da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_2.cfg
index 8d12b193..8d12b193 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_3.cfg
index da6a41c2..da6a41c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/double_angle_space_3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/double_angle_space_3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh137.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh137.cfg
index 83da02ee..83da02ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh137.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh137.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh293.a.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.a.cfg
index e875a54b..e875a54b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh293.a.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.a.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh293.b.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.b.cfg
index 1dc357ae..1dc357ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/gh293.b.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/gh293.b.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-objc-block.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent-objc-block.cfg
index aee5aace..aee5aace 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent-objc-block.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent-objc-block.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_boxed.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_boxed.cfg
index e20f0820..e20f0820 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_boxed.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_boxed.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_oc_inside_msg_sel.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_oc_inside_msg_sel.cfg
index b140f071..b140f071 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_oc_inside_msg_sel.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_oc_inside_msg_sel.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_single_newline.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_single_newline.cfg
index 1496b522..1496b522 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/indent_single_newline.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/indent_single_newline.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2643.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2643.cfg
index 7f188f21..7f188f21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2643.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2643.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2656.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2656.cfg
index 3b020c33..3b020c33 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2656.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2656.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2675.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2675.cfg
index 0eab0244..0eab0244 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_2675.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_2675.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_3031.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_3031.cfg
index 8234c643..8234c643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/issue_3031.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/issue_3031.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_grouping_enabled.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg
index d88bf262..d88bf262 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_grouping_enabled.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_grouping_enabled.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_ignore_extension.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg
index d49491cb..d49491cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_ignore_extension.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_ignore_extension.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_angle_over_quotes.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg
index 475ab734..475ab734 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_angle_over_quotes.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_angle_over_quotes.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_extensionless.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg
index aa9eb1db..aa9eb1db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_extensionless.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_extensionless.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_filename.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg
index 2661a68a..2661a68a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_sort_incl_import_prioritize_filename.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/mod_sort_incl_import_prioritize_filename.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body-3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_after_func_body-3.cfg
index 65f1fa5a..65f1fa5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_after_func_body-3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_after_func_body-3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_square.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_brace_square.cfg
index e0f11f90..e0f11f90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_brace_square.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_brace_square.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_args_multi_line_ignore_closures.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg
index e480140e..e480140e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_func_call_args_multi_line_ignore_closures.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_func_call_args_multi_line_ignore_closures.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_oc_block_brace-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_oc_block_brace-f.cfg
index 824fc747..824fc747 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/nl_oc_block_brace-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/nl_oc_block_brace-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/obj-c-available.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-available.cfg
index f77790fc..f77790fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/obj-c-available.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-available.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/obj-c-properties.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-properties.cfg
index 98241779..98241779 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/obj-c-properties.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/obj-c-properties.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/objc_bug_497.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_bug_497.cfg
index 0015f97d..0015f97d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/objc_bug_497.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_bug_497.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/objc_complex_method.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_complex_method.cfg
index 3e713117..3e713117 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/objc_complex_method.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/objc_complex_method.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc1.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc1.cfg
index 659131cf..659131cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc1.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc1.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc10.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc10.cfg
index d50a20d8..d50a20d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc10.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc10.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc11.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc11.cfg
index e355d765..e355d765 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc11.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc11.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc12.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc12.cfg
index 4f069fed..4f069fed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc12.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc12.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc13.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc13.cfg
index 925a2739..925a2739 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc13.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc13.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc14.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc14.cfg
index a44950db..a44950db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc14.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc14.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc16.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc16.cfg
index 5eec46e9..5eec46e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc16.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc16.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc17.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc17.cfg
index 18b27823..18b27823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc17.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc17.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc18.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc18.cfg
index 96003cf5..96003cf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc18.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc18.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc19.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc19.cfg
index d68c95f0..d68c95f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc19.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc19.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc2.cfg
index 43d02a66..43d02a66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc4.cfg
index f2de050e..f2de050e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc5.cfg
index 77a7a7af..77a7a7af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc5.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc6.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc6.cfg
index c1bcd8d4..c1bcd8d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc6.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc6.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc7.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc7.cfg
index 972ab19a..972ab19a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc7.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc7.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc8.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc8.cfg
index 3f577ab8..3f577ab8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc8.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc8.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc9.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc9.cfg
index 92ed39d4..92ed39d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc9.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc9.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_bug_1674.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1674.cfg
index 31e4537c..31e4537c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_bug_1674.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1674.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_bug_1683.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1683.cfg
index b5d4249d..b5d4249d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_bug_1683.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_bug_1683.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_cond_colon.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_cond_colon.cfg
index b86516e0..b86516e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/oc_cond_colon.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/oc_cond_colon.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_add.cfg
index 817ec7c5..817ec7c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_force.cfg
index b2a79b8f..b2a79b8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg
index 98b6de42..98b6de42 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_at_sel_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_at_sel_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_block_caret_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_add.cfg
index 56e22330..56e22330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_block_caret_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_block_caret_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_force.cfg
index 516271f1..516271f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_block_caret_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_block_caret_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_add.cfg
index b321b9aa..b321b9aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_force.cfg
index fb8b9a1b..fb8b9a1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_remove.cfg
index 1110a1eb..1110a1eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_oc_return_type_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_oc_return_type_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_send_oc_colon-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_send_oc_colon-f.cfg
index 2a54dd6f..2a54dd6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_send_oc_colon-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_send_oc_colon-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_throw_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_throw_remove.cfg
index 6b6bc0ac..6b6bc0ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_after_throw_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_after_throw_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_block_caret_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_force.cfg
index 727fcf06..727fcf06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_block_caret_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_block_caret_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg
index 37c6104a..37c6104a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_block_caret_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_block_caret_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_add.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_add.cfg
index 3374e228..3374e228 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_add.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_add.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_force.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_force.cfg
index 5be78fac..5be78fac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_force.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_force.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_remove.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg
index 9f93f4a5..9f93f4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_before_oc_proto_list_remove.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_before_oc_proto_list_remove.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument.cfg
index 60c651fb..60c651fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument2.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument2.cfg
index 8f297d7d..8f297d7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument2.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument2.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument3.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument3.cfg
index 17059e47..17059e47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument3.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument3.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument4.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument4.cfg
index 8caf60bc..8caf60bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument4.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument4.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument5.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_block_as_argument5.cfg
index 42e8c380..42e8c380 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_block_as_argument5.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/oc/sp_cond_ternary_short.cfg
new file mode 100644
index 00000000..564b2dcf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_cond_ternary_short.cfg
@@ -0,0 +1 @@
+sp_cond_ternary_short = ignore
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.74.0/tests/config/oc/sp_enum_paren-i.cfg
new file mode 100644
index 00000000..5bb98ec2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-i.cfg
@@ -0,0 +1 @@
+sp_enum_paren = ignore
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-r.cfg
index f155e201..f155e201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_enum_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_enum_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_boxed.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_boxed.cfg
index 73939de1..73939de1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_boxed.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/oc/sp_oc_catch-i.cfg
new file mode 100644
index 00000000..98e8f829
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-i.cfg
@@ -0,0 +1,11 @@
+sp_oc_catch_paren = ignore
+sp_catch_paren = add
+sp_oc_catch_brace = add
+sp_catch_brace = force
+sp_oc_brace_catch = add
+sp_brace_catch = force
+nl_oc_catch_brace = remove
+nl_catch_brace = remove
+nl_oc_brace_catch = add
+nl_brace_catch = remove
+sp_finally_brace = remove
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.74.0/tests/config/oc/sp_oc_catch-r.cfg
new file mode 100644
index 00000000..789e2872
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch-r.cfg
@@ -0,0 +1,11 @@
+sp_oc_catch_paren = remove
+sp_catch_paren = add
+sp_oc_catch_brace = add
+sp_catch_brace = force
+sp_oc_brace_catch = add
+sp_brace_catch = force
+nl_oc_catch_brace = remove
+nl_catch_brace = remove
+nl_oc_brace_catch = add
+nl_brace_catch = remove
+sp_finally_brace = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_catch.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch.cfg
index 7367541a..7367541a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_catch.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_catch.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_classname_paren-r.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_classname_paren-r.cfg
index ba92279e..ba92279e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_classname_paren-r.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_classname_paren-r.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_synchronized.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_synchronized.cfg
index 5056f70f..5056f70f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/sp_oc_synchronized.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/sp_oc_synchronized.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ternary_short.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/ternary_short.cfg
index 55e708cf..55e708cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ternary_short.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/oc/ternary_short.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2586.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2586.cfg
index ff46f80d..ff46f80d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2586.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/pawn/Issue_2665.cfg
new file mode 100644
index 00000000..763864c0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/Issue_2665.cfg
@@ -0,0 +1,2 @@
+nl_end_of_file = remove
+sp_func_def_paren = remove
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/amxmodx.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/amxmodx.cfg
index 2c87c362..2c87c362 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/amxmodx.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/amxmodx.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_function-f.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/mod_full_brace_function-f.cfg
index 8d44cc3b..8d44cc3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/mod_full_brace_function-f.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/mod_full_brace_function-f.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pawn-escape.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn-escape.cfg
index 8d10ec23..8d10ec23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/pawn-escape.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/pawn/pawn.cfg
new file mode 100644
index 00000000..7859328a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/pawn/pawn.cfg
@@ -0,0 +1,16 @@
+input_tab_size = 4
+sp_arith = force
+sp_after_tag = remove
+sp_inside_braces = add
+sp_brace_else = force
+sp_else_brace = force
+sp_func_call_paren = remove
+#sp_func_call_paren = force
+indent_columns = 4
+indent_with_tabs = 0
+nl_brace_else = remove
+nl_fdef_brace = force
+mod_full_brace_for = add
+mod_full_brace_function = add
+mod_full_brace_if = add
+mod_pawn_semicolon = true
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-58354.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-58354.cfg
index fb9ca61b..fb9ca61b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-58354.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-58354.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-64325.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-64325.cfg
index 44ee8b48..44ee8b48 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/UNI-64325.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/staging/UNI-64325.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2090.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2090.cfg
index f6e8529b..f6e8529b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2090.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2090.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2270.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/Issue_2270.cfg
index 43cc3757..43cc3757 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/Issue_2270.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/vala/ben_100.cfg
new file mode 100644
index 00000000..81cd4430
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_100.cfg
@@ -0,0 +1,9 @@
+sp_inside_sparen = remove
+sp_inside_for = remove
+sp_func_def_paren = remove
+sp_func_call_paren = remove
+indent_columns = 3
+indent_with_tabs = 0
+indent_class = true
+nl_for_brace = add
+nl_fdef_brace = add
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_101.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_101.cfg
index 50078f96..50078f96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_101.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_101.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_102.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_102.cfg
index 82fa033c..82fa033c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_102.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_102.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_103.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_103.cfg
index 3d212ad4..3d212ad4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_103.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_103.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_104.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_104.cfg
index 80870cfe..80870cfe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/config/ben_104.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/config/vala/ben_105.cfg
new file mode 100644
index 00000000..23452bfd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/config/vala/ben_105.cfg
@@ -0,0 +1,13 @@
+sp_inside_paren = remove
+sp_after_cast = remove
+sp_func_def_paren = remove
+sp_func_call_paren = remove
+indent_columns = 3
+indent_switch_body = 3
+indent_with_tabs = 0
+nl_if_brace = add
+nl_switch_brace = add
+nl_before_case = true
+nl_fdef_brace = add
+mod_full_brace_if = add
+mod_paren_on_return = 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
new file mode 100644
index 00000000..87620719
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/cpp.test
@@ -0,0 +1,1047 @@
+#
+# 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/d.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/d.test
new file mode 100644
index 00000000..520a8c3a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/d.test
@@ -0,0 +1,66 @@
+# d.test ===========
+#
+# Test cases specifically for the D language.
+#
+# Range: 40000 - 49999
+# test.name config.file input.file output.file
+
+40000 common/d.cfg d/HashMap.d
+40001 common/d.cfg d/imports.d
+40002 common/d.cfg d/volatile.d
+40003 common/d.cfg d/volatile-1.d
+40004 common/d.cfg d/volatile-2.d
+40005 common/d.cfg d/volatile-3.d
+40006 common/d.cfg d/Lexer.d
+40007 d/d2.cfg d/Lexer.d
+40010 common/d.cfg d/template.d
+40011 d/d2.cfg d/template.d
+40012 d/d2-i.cfg d/template.d
+40013 d/d2-r.cfg d/template.d
+40020 common/d.cfg d/funcfunc.d
+40021 common/d.cfg d/tst01.d
+40022 d/d-tst2.cfg d/tst02.d
+40023 common/d.cfg d/bug-indent.d
+40024 d/d3.cfg d/tst03.d
+40025 d/d3a.cfg d/tst03.d
+
+40026 common/empty.cfg d/wysiwyg_strings.d
+40027 common/empty.cfg d/static_if_in_struct.d
+
+40030 common/d.cfg d/delegate.d
+40035 common/d.cfg d/enum.d
+
+40040 common/sort_imports.cfg d/sort_import.d
+
+40050 common/d.cfg d/strings.d
+40051 common/d.cfg d/numbers.d
+40052 d/d2.cfg d/numbers.d
+
+40060 common/d.cfg d/casts.d
+40061 common/d.cfg d/const.d
+
+40070 d/d_sp_paren.cfg d/d_sp_paren.d
+
+40080 common/d.cfg d/static_if.d
+
+40090 d/libd.cfg d/square_indent_tab.d
+
+40100 d/1438.cfg d/1438.d
+
+40201 d/invariant.cfg d/invariant.d
+
+40300 common/d.cfg d/extern_.d
+
+40400 common/mod_full_brace_if_chain_only-t.cfg d/vbraces000.d
+40401 common/empty.cfg d/vbraces001.d
+40402 common/mod_full_brace_if_chain_only-t.cfg d/vbraces002.d
+
+40403 common/empty.cfg d/template_use.d
+
+40500 common/empty.cfg d/template_spacing000.d
+40501 common/sp_after_type-r.cfg d/template_spacing001.d
+40502 common/sp_after_type-f.cfg d/template_spacing001.d
+40503 d/sp_after_type-a.cfg d/template_spacing001.d
+40504 common/sp_after_type-r.cfg d/type_spacing000.d
+40505 common/sp_after_type-f.cfg d/type_spacing000.d
+40506 d/sp_after_type-a.cfg d/type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/difftest.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/difftest.sh
index 053cae17..053cae17 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/difftest.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/ecma.test
new file mode 100644
index 00000000..632f3015
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/ecma.test
@@ -0,0 +1,7 @@
+#
+# Test cases specifically for the ECMA language.
+#
+# Range: 90000 - 99999
+# test.name config.file input.file
+
+90000 ecma/ben_098.cfg ecma/example-1.es
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00000-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00000-comment-indent.c
index b59ab389..b59ab389 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00000-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00000-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00001-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00001-comment-indent.c
index e4ba53de..e4ba53de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00001-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00001-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00002-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00002-comment-indent.c
index 09ca01ac..09ca01ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00002-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00002-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00003-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00003-comment-indent.c
index 0f906f2f..0f906f2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00003-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00003-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00004-switch.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00004-switch.c
index ffb54327..ffb54327 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00004-switch.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/00005-cmt-align.c
new file mode 100644
index 00000000..5e773be1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00005-cmt-align.c
@@ -0,0 +1,20 @@
+#ifndef HAVE_FOO
+void foo(void)
+{
+ if (bar)
+ {
+ call_some_function(); /* call the function */
+ return(foo); /* comment */
+ } /* if (bar) */
+}
+#endif /* HAVE_FOO */
+#ifndef HAVE_BAR /* bar isn't available on all HW */
+void bar(void)
+{
+ if (foo)
+ {
+ call_some_function(); /* call the function */
+ return(foo); /* comment */
+ } /* if (foo) */
+}
+#endif /* HAVE_BAR */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00006-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00006-comment-convert.c
index c7a019f7..c7a019f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00006-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00006-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00007-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00007-comment-convert.c
index 886d7698..886d7698 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00007-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00007-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00008-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00008-comment-convert.c
index c2af0f8b..c2af0f8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00008-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00008-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00009-comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00009-comment-convert.c
index 0d3f218a..0d3f218a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00009-comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00009-comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00010-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00010-braces.c
index c4dc5faf..c4dc5faf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00010-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00010-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00011-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00011-braces.c
index 893a32f6..893a32f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00011-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00011-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00012-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00012-braces.c
index 851f4df9..851f4df9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00012-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00012-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00013-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00013-braces.c
index 2adcab76..2adcab76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00013-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00013-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00014-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00014-braces.c
index 1966a0c7..1966a0c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00014-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00014-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00015-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00015-braces.c
index c29cdecd..c29cdecd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00015-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00015-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00016-braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00016-braces.c
index ce7df756..ce7df756 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00016-braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00016-braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00020-define-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00020-define-if-indent.c
index f7efd78c..f7efd78c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00020-define-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00020-define-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00050-brace-remove.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00050-brace-remove.c
index 857e4031..857e4031 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00050-brace-remove.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00050-brace-remove.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00051-brace-remove.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00051-brace-remove.c
index bef3e64d..bef3e64d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00051-brace-remove.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00051-brace-remove.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00052-brace-remove2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00052-brace-remove2.c
index 30f352c6..30f352c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00052-brace-remove2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00052-brace-remove2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00053-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00053-brace.c
index 55c45a57..55c45a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00053-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00053-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00054-if_chain.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00054-if_chain.c
index a6e0c561..a6e0c561 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00054-if_chain.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00054-if_chain.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00055-braces-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00055-braces-2.c
index 38447f86..38447f86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00055-braces-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00055-braces-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00056-brace-remove3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00056-brace-remove3.c
index 258ca555..258ca555 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00056-brace-remove3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00056-brace-remove3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00057-brace-remove3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00057-brace-remove3.c
index 26b22e2c..26b22e2c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00057-brace-remove3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00057-brace-remove3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00058-if_chain.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00058-if_chain.c
index ba15dc8e..ba15dc8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00058-if_chain.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00058-if_chain.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00060-braces-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00060-braces-2.c
index 38447f86..38447f86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00060-braces-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00060-braces-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00061-braces-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00061-braces-3.c
index 18784b82..18784b82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00061-braces-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00061-braces-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00062-braces-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00062-braces-4.c
index 05c0d9b5..05c0d9b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00062-braces-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00062-braces-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00065-braces-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00065-braces-5.c
index 6e1e6cab..6e1e6cab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00065-braces-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00065-braces-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00066-vb-while.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00066-vb-while.c
index c189b7b7..c189b7b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00066-vb-while.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00066-vb-while.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00067-vb-do.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00067-vb-do.c
index 79c6dedf..79c6dedf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00067-vb-do.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00067-vb-do.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00068-bsnl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00068-bsnl.c
index 310e0eb2..310e0eb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00068-bsnl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00068-bsnl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00069-vb-pp.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00069-vb-pp.c
index 9fb79a06..9fb79a06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00069-vb-pp.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00069-vb-pp.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00070-return-multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00070-return-multi.c
index d351cdb0..d351cdb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00070-return-multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00070-return-multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00071-include_define.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00071-include_define.h
index 89f11e5a..89f11e5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00071-include_define.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00071-include_define.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00072-align-proto.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00072-align-proto.c
index 15746cd9..15746cd9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00072-align-proto.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00072-align-proto.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00073-nl_proto_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00073-nl_proto_endif.c
index f50766b8..f50766b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00073-nl_proto_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00073-nl_proto_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00074-clang-has_include.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00074-clang-has_include.h
index 976de29d..976de29d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00074-clang-has_include.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00074-clang-has_include.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00076-1225.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00076-1225.c
index 5b51cf3c..5b51cf3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00076-1225.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00076-1225.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00081-else-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00081-else-if.c
index ff5f5b21..ff5f5b21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00081-else-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00081-else-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00082-else-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00082-else-if.c
index 06cc37f2..06cc37f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00082-else-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00082-else-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00091-cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00091-cond.c
index 840d4a6c..840d4a6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00091-cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00091-cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00092-cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00092-cond.c
index a718a48b..a718a48b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00092-cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00092-cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00093-cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00093-cond.c
index 8d55652a..8d55652a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00093-cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00093-cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00101-bugs-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00101-bugs-1.c
index abc2e08e..abc2e08e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00101-bugs-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00101-bugs-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00102-bugs-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00102-bugs-2.c
index 42bed259..42bed259 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00102-bugs-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00102-bugs-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00103-bugs-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00103-bugs-3.c
index 07d410b1..07d410b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00103-bugs-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00103-bugs-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00104-bugs-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00104-bugs-4.c
index 61885443..61885443 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00104-bugs-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00104-bugs-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00105-bugs-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00105-bugs-5.c
index 72bfbe4d..72bfbe4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00105-bugs-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00105-bugs-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00106-bugs-6.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00106-bugs-6.c
index 302c2328..302c2328 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00106-bugs-6.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00106-bugs-6.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00107-bugs-7.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00107-bugs-7.c
index 34fc146e..34fc146e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00107-bugs-7.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00107-bugs-7.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00108-bugs-8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00108-bugs-8.c
index 0eae4dff..0eae4dff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00108-bugs-8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00108-bugs-8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00110-misc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00110-misc.c
index fdca271b..fdca271b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00110-misc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00110-misc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00111-misc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00111-misc.c
index ad40a4ea..ad40a4ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00111-misc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00111-misc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00120-sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00120-sp_cmt_cpp_start.c
index 74a333c5..74a333c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00120-sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00120-sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00121-sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00121-sp_cmt_cpp_start.c
index 3160a288..3160a288 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00121-sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00121-sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00122-sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00122-sp_cmt_cpp_start.c
index fe237c5a..fe237c5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00122-sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00122-sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00123-cmt_reflow.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00123-cmt_reflow.c
index 44e0cf34..44e0cf34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00123-cmt_reflow.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00123-cmt_reflow.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00130-minus-minus.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00130-minus-minus.c
index debe70a8..debe70a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00130-minus-minus.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00130-minus-minus.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00135-br_cmt.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00135-br_cmt.c
index 9e6c6de9..9e6c6de9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00135-br_cmt.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00135-br_cmt.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00140-global-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00140-global-vars.c
index 0df79336..0df79336 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00140-global-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00140-global-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00141-deref.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00141-deref.c
index a7ad3f5e..a7ad3f5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00141-deref.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00141-deref.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00142-type-cast.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00142-type-cast.c
index 93076825..93076825 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00142-type-cast.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00142-type-cast.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00143-t3.in.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00143-t3.in.c
index b40fbd17..b40fbd17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00143-t3.in.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00143-t3.in.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00144-align-proto-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00144-align-proto-vars.c
index c7bf6081..c7bf6081 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00144-align-proto-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00144-align-proto-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00145-vardefcol.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00145-vardefcol.c
index 1238be0d..1238be0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00145-vardefcol.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00145-vardefcol.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00150-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00150-casts.c
index d89ad598..d89ad598 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00150-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00150-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00151-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00151-casts.c
index 9f2a13de..9f2a13de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00151-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00151-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00152-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00152-casts.c
index acc2ebe4..acc2ebe4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00152-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00152-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00153-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00153-casts.c
index 8bf710b6..8bf710b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00153-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00153-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00154-casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00154-casts.c
index fca4010b..fca4010b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00154-casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00154-casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00155-cast_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00155-cast_brace.c
index 6e8f12b2..6e8f12b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00155-cast_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00155-cast_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00160-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00160-fcn_indent.c
index 23c173c2..23c173c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00160-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00160-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00161-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00161-fcn_indent.c
index 90342554..90342554 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00161-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00161-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00162-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00162-fcn_indent.c
index c8f152d3..c8f152d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00162-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00162-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00163-fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00163-fcn_indent.c
index bbf36763..bbf36763 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00163-fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00163-fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00164-fcn_indent_func_def_col1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00164-fcn_indent_func_def_col1.c
index c029669a..c029669a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00164-fcn_indent_func_def_col1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00164-fcn_indent_func_def_col1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c
index af30d708..af30d708 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00165-sp_func_call_user_inside_fparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00170-beautifier-off.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00170-beautifier-off.c
index 351d76ff..351d76ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00170-beautifier-off.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00170-beautifier-off.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00180-lvalue.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00180-lvalue.c
index a8121da4..a8121da4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00180-lvalue.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00180-lvalue.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00201-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00201-case.c
index 0d004c19..0d004c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00201-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00201-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00202-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00202-case.c
index d5175084..d5175084 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00202-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00202-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00203-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00203-case.c
index 548a2a64..548a2a64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00203-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00203-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00204-bug_1718.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00204-bug_1718.c
index eaddc974..eaddc974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00204-bug_1718.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00204-bug_1718.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00205-case-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00205-case-nl_before_return.c
index b650d7ab..b650d7ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00205-case-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00205-case-nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00206-case-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00206-case-nl_before_return.c
index d0b6bbbb..d0b6bbbb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00206-case-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/00207-nl_before_ignore_after_case.c
new file mode 100644
index 00000000..4c361605
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00207-nl_before_ignore_after_case.c
@@ -0,0 +1,53 @@
+void func(void)
+{
+ switch (cond)
+ {
+ case CASE_A:
+ for (;;)
+ do_stuff();
+ break;
+
+ case CASE_B:
+ if (cond)
+ do_stuff();
+ break;
+
+ case CASE_C:
+ do {
+ do_stuff()
+ } while (cond);
+ break;
+
+ case CASE_D:
+ while(cond)
+ do_stuff();
+ break;
+
+ case CASE_E:
+ switch(cond)
+ {
+ case CASE_EE:
+ break;
+ }
+ break;
+ }
+
+ for (;;)
+ do_stuff();
+
+ if (cond)
+ do_stuff();
+
+ do {
+ do_stuff()
+ } while (cond);
+
+ while(cond)
+ do_stuff();
+
+ switch(cond)
+ {
+ case CASE_A:
+ do_stuff();
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00301-align-struct-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00301-align-struct-init.c
index cfa44035..cfa44035 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00301-align-struct-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00301-align-struct-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00302-one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00302-one-liner-init.c
index 63c86afe..63c86afe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00302-one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00302-one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00303-one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00303-one-liner-init.c
index 503eedfb..503eedfb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00303-one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00303-one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00304-one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00304-one-liner-init.c
index 471aaa2d..471aaa2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00304-one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00304-one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00305-one-liner-define.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00305-one-liner-define.c
index 99f24f5a..99f24f5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00305-one-liner-define.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00305-one-liner-define.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00310-sp_embed_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00310-sp_embed_comment.c
index 3dc105aa..3dc105aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00310-sp_embed_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00310-sp_embed_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00320-indent_first_bool_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00320-indent_first_bool_expr.c
index 0dcaa413..0dcaa413 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00320-indent_first_bool_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00320-indent_first_bool_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00401-align-equ.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00401-align-equ.c
index 9b213f96..9b213f96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00401-align-equ.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00401-align-equ.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00402-align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00402-align-var.c
index d7396d46..d7396d46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00402-align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00402-align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00403-align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00403-align-var.c
index cb62295e..cb62295e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00403-align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00403-align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00404-align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00404-align-var.c
index 48af3d3c..48af3d3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00404-align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00404-align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00405-bits.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00405-bits.c
index 9a5a6ceb..9a5a6ceb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00405-bits.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00405-bits.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00406-bug_i_771.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00406-bug_i_771.c
index 9c2b1cc2..9c2b1cc2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00406-bug_i_771.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00406-bug_i_771.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00411-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00411-align-typedef.c
index 001e4a52..001e4a52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00411-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00411-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00412-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00412-align-typedef.c
index 001e4a52..001e4a52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00412-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00412-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00413-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00413-align-typedef.c
index d5f826e5..d5f826e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00413-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00413-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00414-align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00414-align-typedef.c
index 8e63e499..8e63e499 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00414-align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00414-align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00415-align_stack.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00415-align_stack.c
index 507d6da2..507d6da2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00415-align_stack.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00415-align_stack.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00416-align_sf_call_thresh_416.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00416-align_sf_call_thresh_416.c
index 36fbca84..36fbca84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00416-align_sf_call_thresh_416.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00416-align_sf_call_thresh_416.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00417-align_sf_call_thresh_417.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00417-align_sf_call_thresh_417.c
index 3047b932..3047b932 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00417-align_sf_call_thresh_417.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00417-align_sf_call_thresh_417.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00418-align_sf_call_span_418.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00418-align_sf_call_span_418.c
index 82444a2b..82444a2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00418-align_sf_call_span_418.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00418-align_sf_call_span_418.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00419-align_sf_call_span_419.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00419-align_sf_call_span_419.c
index 20b9705a..20b9705a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00419-align_sf_call_span_419.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00419-align_sf_call_span_419.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00420-Issue-2278.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00420-Issue-2278.c
index 2bab88ab..2bab88ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00420-Issue-2278.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00420-Issue-2278.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00421-nl_ds_struct_enum.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00421-nl_ds_struct_enum.c
index ec5bcc31..ec5bcc31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00421-nl_ds_struct_enum.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00421-nl_ds_struct_enum.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00422-nl_ds_struct_enum.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00422-nl_ds_struct_enum.c
index d45b2add..d45b2add 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00422-nl_ds_struct_enum.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00422-nl_ds_struct_enum.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00423-bug_1702.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00423-bug_1702.c
index bf74c8bd..bf74c8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00423-bug_1702.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00423-bug_1702.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00430-paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00430-paren-indent.c
index f6b148ce..f6b148ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00430-paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00430-paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00431-paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00431-paren-indent.c
index 51a80854..51a80854 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00431-paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00431-paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00432-paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00432-paren-indent.c
index 9ab77831..9ab77831 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00432-paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00432-paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00440-bug_489.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00440-bug_489.c
index 47a5da06..47a5da06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00440-bug_489.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00440-bug_489.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00451-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00451-enum_gallery.c
index 3cb8db3c..3cb8db3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00451-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00451-enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00452-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00452-enum_gallery.c
index cb235c3d..cb235c3d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00452-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00452-enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00453-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.c
index af537d1d..af537d1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00453-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00453-enum_gallery.rerun.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.rerun.c
index 148f1970..148f1970 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00453-enum_gallery.rerun.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00453-enum_gallery.rerun.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00454-enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00454-enum_gallery.c
index 8d00cbce..8d00cbce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00454-enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/00461-align_func_proto_star_amp.h
new file mode 100644
index 00000000..5b0490c8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00461-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char * pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void * data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void * data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void * data_pointer(libr_section *scn, libr_data *data);
+
+void * data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00462-align_func_proto_star_amp.h
new file mode 100644
index 00000000..c05fc454
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00462-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char * pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void *data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00463-align_func_proto_star_amp.h
new file mode 100644
index 00000000..702b9396
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00463-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char * pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void *data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00464-align_func_proto_star_amp.h
new file mode 100644
index 00000000..f1f927dc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00464-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char *pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void * data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void * data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void * data_pointer(libr_section *scn, libr_data *data);
+
+void * data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00465-align_func_proto_star_amp.h
new file mode 100644
index 00000000..9bd55a23
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00465-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char *pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void *data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00466-align_func_proto_star_amp.h
new file mode 100644
index 00000000..b91044f7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00466-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char *pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void *data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00467-align_func_proto_star_amp.h
new file mode 100644
index 00000000..e87c4cd8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00467-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char *pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void * data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void * data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void * data_pointer(libr_section *scn, libr_data *data);
+
+void * data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00468-align_func_proto_star_amp.h
new file mode 100644
index 00000000..0fb8eacb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00468-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char *pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void *data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_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.74.0/tests/expected/c/00469-align_func_proto_star_amp.h
new file mode 100644
index 00000000..5f776985
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00469-align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char *pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void *data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_H */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00501-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00501-bool-pos.c
index b9d537a1..b9d537a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00501-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00501-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00502-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00502-bool-pos.c
index 7890fcd7..7890fcd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00502-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00502-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00503-pos_compare.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00503-pos_compare.c
index cc809a09..cc809a09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00503-pos_compare.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00503-pos_compare.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00504-pos_compare.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00504-pos_compare.c
index fe16e10e..fe16e10e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00504-pos_compare.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00504-pos_compare.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00505-pos_conditional.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00505-pos_conditional.c
index 91f17d57..91f17d57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00505-pos_conditional.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00505-pos_conditional.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00506-pos_conditional.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00506-pos_conditional.c
index 23945656..23945656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00506-pos_conditional.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00506-pos_conditional.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00510-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00510-bool-pos.c
index 5958e3c5..5958e3c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00510-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00510-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00511-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00511-bool-pos.c
index 8f6effd8..8f6effd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00511-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00511-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00512-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00512-bool-pos.c
index 2e82b7ef..2e82b7ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00512-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00512-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00513-bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00513-bool-pos.c
index cad844c5..cad844c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00513-bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00513-bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00514-my_infile.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00514-my_infile.c
index 3f4c76fb..3f4c76fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00514-my_infile.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00514-my_infile.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00600-dos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00600-dos.c
index a0482ba3..a0482ba3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00600-dos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00600-dos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00601-mac.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00601-mac.c
index 2be04c61..2be04c61 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00601-mac.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00601-mac.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00611-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00611-pp-space.c
index 217fc89a..217fc89a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00611-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00611-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00612-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00612-pp-space.c
index 7c19bf1e..7c19bf1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00612-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00612-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00613-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00613-pp-space.c
index 7092a193..7092a193 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00613-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00613-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00614-pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00614-pp-space.c
index 103c2ca4..103c2ca4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00614-pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00614-pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00615-pp-nest.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00615-pp-nest.c
index 5e99a1d0..5e99a1d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00615-pp-nest.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00615-pp-nest.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00616-pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00616-pp-if-indent.c
index dc2dea10..dc2dea10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00616-pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00616-pp-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00617-pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00617-pp-if-indent.c
index 2caf73d2..2caf73d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00617-pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00617-pp-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00618-pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00618-pp-if-indent.c
index f7b3d270..f7b3d270 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00618-pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/00619-Issue_3169.c
new file mode 100644
index 00000000..848e451e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00619-Issue_3169.c
@@ -0,0 +1,30 @@
+#include <stdint.h>
+
+void bar (void)
+{
+
+ int32_t result;
+ const int32_t other
+ = 7;
+}
+
+#define P(bits) \
+ void foo(void) \
+ { \
+ \
+ int##bits##_t result15; \
+ const int##bits##_t other \
+ = 7; \
+ }
+
+#define Q(value) \
+ void baz(void) \
+ { \
+ \
+ int32_t result24; \
+ const int32_t other \
+ = 7; \
+ }
+
+P(32)
+Q(7)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00620-indent-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00620-indent-assign.c
index c01e146a..c01e146a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00620-indent-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00620-indent-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00621-nl_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00621-nl_endif.c
index bae6272c..bae6272c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00621-nl_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00621-nl_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00622-indent-off-after-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00622-indent-off-after-assign.c
index eb083f7b..eb083f7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00622-indent-off-after-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00622-indent-off-after-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00631-nl_assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00631-nl_assign.c
index 7319d498..7319d498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00631-nl_assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00631-nl_assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00632-nl_assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00632-nl_assign.c
index 2452e773..2452e773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00632-nl_assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00632-nl_assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00633-bug_3156.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00633-bug_3156.c
index 508a0098..508a0098 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00633-bug_3156.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00633-bug_3156.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00701-function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00701-function-def.c
index 6f0133e8..6f0133e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00701-function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00701-function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00702-function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00702-function-def.c
index eaa568da..eaa568da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00702-function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00702-function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00703-function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00703-function-def.c
index 76cf664f..76cf664f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00703-function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00703-function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00710-add_long_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00710-add_long_comment.c
index 82bf680e..82bf680e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00710-add_long_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00710-add_long_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00721-nl-semicolon.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00721-nl-semicolon.c
index 441091b5..441091b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00721-nl-semicolon.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00721-nl-semicolon.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00801-fcn_type.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00801-fcn_type.c
index 72af3fa3..72af3fa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00801-fcn_type.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00801-fcn_type.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00802-funcfunc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00802-funcfunc.c
index 4d0f0432..4d0f0432 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00802-funcfunc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00802-funcfunc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00803-fcn_type.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00803-fcn_type.c
index 9e1e5c55..9e1e5c55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00803-fcn_type.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00803-fcn_type.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00901-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00901-code_width.c
index 672f9153..672f9153 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00901-code_width.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00901-code_width.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00902-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00902-code_width.c
index 9c5a4cec..9c5a4cec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00902-code_width.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00902-code_width.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00903-code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00903-code_width.c
index 049e952d..049e952d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00903-code_width.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00903-code_width.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00910-pascal_ptr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00910-pascal_ptr.c
index 27a9cdef..27a9cdef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00910-pascal_ptr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00910-pascal_ptr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00911-pascal_ptr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00911-pascal_ptr.c
index 4c0d0dde..4c0d0dde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/00911-pascal_ptr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/00911-pascal_ptr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01000-mod-paren.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01000-mod-paren.c
index ca919f77..ca919f77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01000-mod-paren.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01000-mod-paren.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01001-nl-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01001-nl-comment.c
index ecac3e2a..ecac3e2a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01001-nl-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01001-nl-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01002-mod-paren.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01002-mod-paren.c
index 2537330f..2537330f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01002-mod-paren.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01002-mod-paren.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01005-mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01005-mod_case_brace.c
index caeae178..caeae178 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01005-mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01005-mod_case_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01006-mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01006-mod_case_brace.c
index 371bd5cb..371bd5cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01006-mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01006-mod_case_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01007-mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01007-mod_case_brace.c
index 2ea3dea5..2ea3dea5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01007-mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/01008-Issue_3366.c
new file mode 100644
index 00000000..75a95e36
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01008-Issue_3366.c
@@ -0,0 +1,14 @@
+#define __CVTENDIAN1_H
+#define __CVTENDIAN2_H
+
+static int ConvertEndian(void *ptr, int bytes)
+{
+ switch(bytes)
+ {
+ default:
+ {
+ break;
+ }
+ }
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01011-semicolons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01011-semicolons.c
index 962ec588..962ec588 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01011-semicolons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01011-semicolons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01012-semicolons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01012-semicolons.c
index 54d895e7..54d895e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01012-semicolons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01012-semicolons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01015-paren_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01015-paren_indent.c
index d993315c..d993315c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01015-paren_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01015-paren_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01016-align_attr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01016-align_attr.c
index 012217e4..012217e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01016-align_attr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01016-align_attr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01020-kw_subst.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01020-kw_subst.c
index 61b43c3f..61b43c3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01020-kw_subst.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01020-kw_subst.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01021-hello.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01021-hello.c
index 6ba46ef7..6ba46ef7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01021-hello.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01021-hello.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01022-kw_subst.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01022-kw_subst.c
index 6cba8370..6cba8370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01022-kw_subst.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01022-kw_subst.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01030-multi.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01030-multi.h
index 14a599c7..14a599c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01030-multi.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01030-multi.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01035-func_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01035-func_wrap.c
index b2f86805..b2f86805 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01035-func_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01035-func_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01036-func_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01036-func_wrap.c
index 24e932ed..24e932ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01036-func_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01036-func_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01037-type_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01037-type_wrap.c
index c3c23569..c3c23569 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01037-type_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01037-type_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01040-newline_after_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01040-newline_after_endif.c
index 2a0cbe62..2a0cbe62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01040-newline_after_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01040-newline_after_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01050-func_call_user.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01050-func_call_user.c
index 82eba7cb..82eba7cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01050-func_call_user.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01050-func_call_user.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01060-backslash-newline-lex.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01060-backslash-newline-lex.c
index f5000b82..f5000b82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01060-backslash-newline-lex.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01060-backslash-newline-lex.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01070-various_colons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01070-various_colons.c
index 0850b17e..0850b17e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01070-various_colons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01070-various_colons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01071-various_colons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01071-various_colons.c
index e25134ab..e25134ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01071-various_colons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01071-various_colons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01080-bug_1196.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/01080-bug_1196.c
index 9fdabca6..9fdabca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/01080-bug_1196.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/02000-i2c-core.c
new file mode 100644
index 00000000..528a6161
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02000-i2c-core.c
@@ -0,0 +1,1457 @@
+/* i2c-core.c - a device driver for the iic-bus interface */
+/* ------------------------------------------------------------------------- */
+/* Copyright (C) 1995-99 Simon G. Vogl
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+/* ------------------------------------------------------------------------- */
+
+/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
+ * All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
+ * SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/idr.h>
+#include <linux/seq_file.h>
+#include <asm/uaccess.h>
+
+
+static LIST_HEAD(adapters);
+static LIST_HEAD(drivers);
+static DECLARE_MUTEX(core_lists);
+static DEFINE_IDR(i2c_adapter_idr);
+
+static int i2c_device_match(struct device *dev, struct device_driver *drv)
+{
+ return(1);
+}
+
+static int i2c_bus_suspend(struct device *dev, pm_message_t state)
+{
+ int rc = 0;
+
+ if (dev->driver && dev->driver->suspend)
+ {
+ rc = dev->driver->suspend(dev, state, 0);
+ }
+ return(rc);
+}
+
+static int i2c_bus_resume(struct device *dev)
+{
+ int rc = 0;
+
+ if (dev->driver && dev->driver->resume)
+ {
+ rc = dev->driver->resume(dev, 0);
+ }
+ return(rc);
+}
+
+struct bus_type i2c_bus_type =
+{
+ .name = "i2c",
+ .match = i2c_device_match,
+ .suspend = i2c_bus_suspend,
+ .resume = i2c_bus_resume,
+};
+
+static int i2c_device_probe(struct device *dev)
+{
+ return(-ENODEV);
+}
+
+static int i2c_device_remove(struct device *dev)
+{
+ return(0);
+}
+
+void i2c_adapter_dev_release(struct device *dev)
+{
+ struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
+
+ complete(&adap->dev_released);
+}
+
+struct device_driver i2c_adapter_driver =
+{
+ .name = "i2c_adapter",
+ .bus = &i2c_bus_type,
+ .probe = i2c_device_probe,
+ .remove = i2c_device_remove,
+};
+
+static void i2c_adapter_class_dev_release(struct class_device *dev)
+{
+ struct i2c_adapter *adap = class_dev_to_i2c_adapter(dev);
+
+ complete(&adap->class_dev_released);
+}
+
+struct class i2c_adapter_class =
+{
+ .name = "i2c-adapter",
+ .release = &i2c_adapter_class_dev_release,
+};
+
+static ssize_t show_adapter_name(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
+
+ return(sprintf(buf, "%s\n", adap->name));
+}
+static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL);
+
+
+static void i2c_client_release(struct device *dev)
+{
+ struct i2c_client *client = to_i2c_client(dev);
+
+ complete(&client->released);
+}
+
+static ssize_t show_client_name(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ struct i2c_client *client = to_i2c_client(dev);
+
+ return(sprintf(buf, "%s\n", client->name));
+}
+
+/*
+ * We can't use the DEVICE_ATTR() macro here as we want the same filename for a
+ * different type of a device. So beware if the DEVICE_ATTR() macro ever
+ * changes, this definition will also have to change.
+ */
+static struct device_attribute dev_attr_client_name =
+{
+ .attr = { .name = "name", .mode = S_IRUGO, .owner = THIS_MODULE },
+ .show = &show_client_name,
+};
+
+
+/* ---------------------------------------------------
+ * registering functions
+ * ---------------------------------------------------
+ */
+
+/* -----
+ * i2c_add_adapter is called from within the algorithm layer,
+ * when a new hw adapter registers. A new device is register to be
+ * available for clients.
+ */
+int i2c_add_adapter(struct i2c_adapter *adap)
+{
+ int id, res = 0;
+ struct list_head *item;
+ struct i2c_driver *driver;
+
+ down(&core_lists);
+
+ if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0)
+ {
+ res = -ENOMEM;
+ goto out_unlock;
+ }
+
+ res = idr_get_new(&i2c_adapter_idr, adap, &id);
+ if (res < 0)
+ {
+ if (res == -EAGAIN)
+ {
+ res = -ENOMEM;
+ }
+ goto out_unlock;
+ }
+
+ adap->nr = id & MAX_ID_MASK;
+ init_MUTEX(&adap->bus_lock);
+ init_MUTEX(&adap->clist_lock);
+ list_add_tail(&adap->list, &adapters);
+ INIT_LIST_HEAD(&adap->clients);
+
+ /* Add the adapter to the driver core.
+ * If the parent pointer is not set up,
+ * we add this adapter to the host bus.
+ */
+ if (adap->dev.parent == NULL)
+ {
+ adap->dev.parent = &platform_bus;
+ }
+ sprintf(adap->dev.bus_id, "i2c-%d", adap->nr);
+ adap->dev.driver = &i2c_adapter_driver;
+ adap->dev.release = &i2c_adapter_dev_release;
+ device_register(&adap->dev);
+ device_create_file(&adap->dev, &dev_attr_name);
+
+ /* Add this adapter to the i2c_adapter class */
+ memset(&adap->class_dev, 0x00, sizeof(struct class_device));
+ adap->class_dev.dev = &adap->dev;
+ adap->class_dev.class = &i2c_adapter_class;
+ strlcpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
+ class_device_register(&adap->class_dev);
+
+ dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
+
+ /* inform drivers of new adapters */
+ list_for_each(item, &drivers)
+ {
+ driver = list_entry(item, struct i2c_driver, list);
+ if (driver->flags & I2C_DF_NOTIFY)
+ {
+ /* We ignore the return code; if it fails, too bad */
+ driver->attach_adapter(adap);
+ }
+ }
+
+ out_unlock:
+ up(&core_lists);
+ return(res);
+} /* i2c_add_adapter */
+
+
+int i2c_del_adapter(struct i2c_adapter *adap)
+{
+ struct list_head *item, *_n;
+ struct i2c_adapter *adap_from_list;
+ struct i2c_driver *driver;
+ struct i2c_client *client;
+ int res = 0;
+
+ down(&core_lists);
+
+ /* First make sure that this adapter was ever added */
+ list_for_each_entry(adap_from_list, &adapters, list)
+ {
+ if (adap_from_list == adap)
+ {
+ break;
+ }
+ }
+ if (adap_from_list != adap)
+ {
+ pr_debug("i2c-core: attempting to delete unregistered "
+ "adapter [%s]\n", adap->name);
+ res = -EINVAL;
+ goto out_unlock;
+ }
+
+ list_for_each(item, &drivers)
+ {
+ driver = list_entry(item, struct i2c_driver, list);
+ if (driver->detach_adapter)
+ {
+ if ((res = driver->detach_adapter(adap)))
+ {
+ dev_err(&adap->dev, "detach_adapter failed "
+ "for driver [%s]\n", driver->name);
+ goto out_unlock;
+ }
+ }
+ }
+
+ /* detach any active clients. This must be done first, because
+ * it can fail; in which case we give up. */
+ list_for_each_safe(item, _n, &adap->clients)
+ {
+ client = list_entry(item, struct i2c_client, list);
+
+ /* detaching devices is unconditional of the set notify
+ * flag, as _all_ clients that reside on the adapter
+ * must be deleted, as this would cause invalid states.
+ */
+ if ((res = client->driver->detach_client(client)))
+ {
+ dev_err(&adap->dev, "detach_client failed for client "
+ "[%s] at address 0x%02x\n", client->name,
+ client->addr);
+ goto out_unlock;
+ }
+ }
+
+ /* clean up the sysfs representation */
+ init_completion(&adap->dev_released);
+ init_completion(&adap->class_dev_released);
+ class_device_unregister(&adap->class_dev);
+ device_remove_file(&adap->dev, &dev_attr_name);
+ device_unregister(&adap->dev);
+ list_del(&adap->list);
+
+ /* wait for sysfs to drop all references */
+ wait_for_completion(&adap->dev_released);
+ wait_for_completion(&adap->class_dev_released);
+
+ /* free dynamically allocated bus id */
+ idr_remove(&i2c_adapter_idr, adap->nr);
+
+ dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name);
+
+ out_unlock:
+ up(&core_lists);
+ return(res);
+} /* i2c_del_adapter */
+
+
+/* -----
+ * What follows is the "upwards" interface: commands for talking to clients,
+ * which implement the functions to access the physical information of the
+ * chips.
+ */
+
+int i2c_add_driver(struct i2c_driver *driver)
+{
+ struct list_head *item;
+ struct i2c_adapter *adapter;
+ int res = 0;
+
+ down(&core_lists);
+
+ /* add the driver to the list of i2c drivers in the driver core */
+ driver->driver.name = driver->name;
+ driver->driver.bus = &i2c_bus_type;
+ driver->driver.probe = i2c_device_probe;
+ driver->driver.remove = i2c_device_remove;
+
+ res = driver_register(&driver->driver);
+ if (res)
+ {
+ goto out_unlock;
+ }
+
+ list_add_tail(&driver->list, &drivers);
+ pr_debug("i2c-core: driver [%s] registered\n", driver->name);
+
+ /* now look for instances of driver on our adapters */
+ if (driver->flags & I2C_DF_NOTIFY)
+ {
+ list_for_each(item, &adapters)
+ {
+ adapter = list_entry(item, struct i2c_adapter, list);
+ driver->attach_adapter(adapter);
+ }
+ }
+
+ out_unlock:
+ up(&core_lists);
+ return(res);
+}
+
+int i2c_del_driver(struct i2c_driver *driver)
+{
+ struct list_head *item1, *item2, *_n;
+ struct i2c_client *client;
+ struct i2c_adapter *adap;
+
+ int res = 0;
+
+ down(&core_lists);
+
+ /* Have a look at each adapter, if clients of this driver are still
+ * attached. If so, detach them to be able to kill the driver
+ * afterwards.
+ *
+ * Removing clients does not depend on the notify flag, else
+ * invalid operation might (will!) result, when using stale client
+ * pointers.
+ */
+ list_for_each(item1, &adapters)
+ {
+ adap = list_entry(item1, struct i2c_adapter, list);
+ if (driver->detach_adapter)
+ {
+ if ((res = driver->detach_adapter(adap)))
+ {
+ dev_err(&adap->dev, "detach_adapter failed "
+ "for driver [%s]\n", driver->name);
+ goto out_unlock;
+ }
+ }
+ else
+ {
+ list_for_each_safe(item2, _n, &adap->clients)
+ {
+ client = list_entry(item2, struct i2c_client, list);
+ if (client->driver != driver)
+ {
+ continue;
+ }
+ dev_dbg(&adap->dev, "detaching client [%s] "
+ "at 0x%02x\n", client->name,
+ client->addr);
+ if ((res = driver->detach_client(client)))
+ {
+ dev_err(&adap->dev, "detach_client "
+ "failed for client [%s] at "
+ "0x%02x\n", client->name,
+ client->addr);
+ goto out_unlock;
+ }
+ }
+ }
+ }
+
+ driver_unregister(&driver->driver);
+ list_del(&driver->list);
+ pr_debug("i2c-core: driver [%s] unregistered\n", driver->name);
+
+ out_unlock:
+ up(&core_lists);
+ return(0);
+} /* i2c_del_driver */
+
+static int __i2c_check_addr(struct i2c_adapter *adapter, unsigned int addr)
+{
+ struct list_head *item;
+ struct i2c_client *client;
+
+ list_for_each(item, &adapter->clients)
+ {
+ client = list_entry(item, struct i2c_client, list);
+ if (client->addr == addr)
+ {
+ return(-EBUSY);
+ }
+ }
+ return(0);
+}
+
+int i2c_check_addr(struct i2c_adapter *adapter, int addr)
+{
+ int rval;
+
+ down(&adapter->clist_lock);
+ rval = __i2c_check_addr(adapter, addr);
+ up(&adapter->clist_lock);
+
+ return(rval);
+}
+
+int i2c_attach_client(struct i2c_client *client)
+{
+ struct i2c_adapter *adapter = client->adapter;
+
+ down(&adapter->clist_lock);
+ if (__i2c_check_addr(client->adapter, client->addr))
+ {
+ up(&adapter->clist_lock);
+ return(-EBUSY);
+ }
+ list_add_tail(&client->list, &adapter->clients);
+ up(&adapter->clist_lock);
+
+ if (adapter->client_register)
+ {
+ if (adapter->client_register(client))
+ {
+ dev_dbg(&adapter->dev, "client_register "
+ "failed for client [%s] at 0x%02x\n",
+ client->name, client->addr);
+ }
+ }
+
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ client->usage_count = 0;
+ }
+
+ client->dev.parent = &client->adapter->dev;
+ client->dev.driver = &client->driver->driver;
+ client->dev.bus = &i2c_bus_type;
+ client->dev.release = &i2c_client_release;
+
+ snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),
+ "%d-%04x", i2c_adapter_id(adapter), client->addr);
+ dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n",
+ client->name, client->dev.bus_id);
+ device_register(&client->dev);
+ device_create_file(&client->dev, &dev_attr_client_name);
+
+ return(0);
+} /* i2c_attach_client */
+
+
+int i2c_detach_client(struct i2c_client *client)
+{
+ struct i2c_adapter *adapter = client->adapter;
+ int res = 0;
+
+ if ((client->flags & I2C_CLIENT_ALLOW_USE)
+ && (client->usage_count > 0))
+ {
+ dev_warn(&client->dev, "Client [%s] still busy, "
+ "can't detach\n", client->name);
+ return(-EBUSY);
+ }
+
+ if (adapter->client_unregister)
+ {
+ res = adapter->client_unregister(client);
+ if (res)
+ {
+ dev_err(&client->dev,
+ "client_unregister [%s] failed, "
+ "client not detached\n", client->name);
+ goto out;
+ }
+ }
+
+ down(&adapter->clist_lock);
+ list_del(&client->list);
+ init_completion(&client->released);
+ device_remove_file(&client->dev, &dev_attr_client_name);
+ device_unregister(&client->dev);
+ up(&adapter->clist_lock);
+ wait_for_completion(&client->released);
+
+ out:
+ return(res);
+}
+
+static int i2c_inc_use_client(struct i2c_client *client)
+{
+ if (!try_module_get(client->driver->owner))
+ {
+ return(-ENODEV);
+ }
+ if (!try_module_get(client->adapter->owner))
+ {
+ module_put(client->driver->owner);
+ return(-ENODEV);
+ }
+
+ return(0);
+}
+
+static void i2c_dec_use_client(struct i2c_client *client)
+{
+ module_put(client->driver->owner);
+ module_put(client->adapter->owner);
+}
+
+int i2c_use_client(struct i2c_client *client)
+{
+ int ret;
+
+ ret = i2c_inc_use_client(client);
+ if (ret)
+ {
+ return(ret);
+ }
+
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ if (client->flags & I2C_CLIENT_ALLOW_MULTIPLE_USE)
+ {
+ client->usage_count++;
+ }
+ else if (client->usage_count > 0)
+ {
+ goto busy;
+ }
+ else
+ {
+ client->usage_count++;
+ }
+ }
+
+ return(0);
+
+ busy:
+ i2c_dec_use_client(client);
+ return(-EBUSY);
+}
+
+int i2c_release_client(struct i2c_client *client)
+{
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ if (client->usage_count > 0)
+ {
+ client->usage_count--;
+ }
+ else
+ {
+ pr_debug("i2c-core: %s used one too many times\n",
+ __FUNCTION__);
+ return(-EPERM);
+ }
+ }
+
+ i2c_dec_use_client(client);
+
+ return(0);
+}
+
+void i2c_clients_command(struct i2c_adapter *adap, unsigned int cmd, void *arg)
+{
+ struct list_head *item;
+ struct i2c_client *client;
+
+ down(&adap->clist_lock);
+ list_for_each(item, &adap->clients)
+ {
+ client = list_entry(item, struct i2c_client, list);
+ if (!try_module_get(client->driver->owner))
+ {
+ continue;
+ }
+ if (NULL != client->driver->command)
+ {
+ up(&adap->clist_lock);
+ client->driver->command(client, cmd, arg);
+ down(&adap->clist_lock);
+ }
+ module_put(client->driver->owner);
+ }
+ up(&adap->clist_lock);
+}
+
+static int __init i2c_init(void)
+{
+ int retval;
+
+ retval = bus_register(&i2c_bus_type);
+ if (retval)
+ {
+ return(retval);
+ }
+ retval = driver_register(&i2c_adapter_driver);
+ if (retval)
+ {
+ return(retval);
+ }
+ return(class_register(&i2c_adapter_class));
+}
+
+static void __exit i2c_exit(void)
+{
+ class_unregister(&i2c_adapter_class);
+ driver_unregister(&i2c_adapter_driver);
+ bus_unregister(&i2c_bus_type);
+}
+
+subsys_initcall(i2c_init);
+module_exit(i2c_exit);
+
+/* ----------------------------------------------------
+ * the functional interface to the i2c busses.
+ * ----------------------------------------------------
+ */
+
+int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
+{
+ int ret;
+
+ if (adap->algo->master_xfer)
+ {
+#ifdef DEBUG
+ for (ret = 0; ret < num; ret++)
+ {
+ dev_dbg(&adap->dev, "master_xfer[%d] %c, addr=0x%02x, "
+ "len=%d\n", ret, msgs[ret].flags & I2C_M_RD ?
+ 'R' : 'W', msgs[ret].addr, msgs[ret].len);
+ }
+#endif
+
+ down(&adap->bus_lock);
+ ret = adap->algo->master_xfer(adap, msgs, num);
+ up(&adap->bus_lock);
+
+ return(ret);
+ }
+ else
+ {
+ dev_dbg(&adap->dev, "I2C level transfers not supported\n");
+ return(-ENOSYS);
+ }
+}
+
+int i2c_master_send(struct i2c_client *client, const char *buf, int count)
+{
+ int ret;
+ struct i2c_adapter *adap = client->adapter;
+ struct i2c_msg msg;
+
+ msg.addr = client->addr;
+ msg.flags = client->flags & I2C_M_TEN;
+ msg.len = count;
+ msg.buf = (char *)buf;
+
+ ret = i2c_transfer(adap, &msg, 1);
+
+ /* If everything went ok (i.e. 1 msg transmitted), return #bytes
+ * transmitted, else error code. */
+ return((ret == 1) ? count : ret);
+}
+
+int i2c_master_recv(struct i2c_client *client, char *buf, int count)
+{
+ struct i2c_adapter *adap = client->adapter;
+ struct i2c_msg msg;
+ int ret;
+
+ msg.addr = client->addr;
+ msg.flags = client->flags & I2C_M_TEN;
+ msg.flags |= I2C_M_RD;
+ msg.len = count;
+ msg.buf = buf;
+
+ ret = i2c_transfer(adap, &msg, 1);
+
+ /* If everything went ok (i.e. 1 msg transmitted), return #bytes
+ * transmitted, else error code. */
+ return((ret == 1) ? count : ret);
+}
+
+
+int i2c_control(struct i2c_client *client,
+ unsigned int cmd, unsigned long arg)
+{
+ int ret = 0;
+ struct i2c_adapter *adap = client->adapter;
+
+ dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
+ switch (cmd)
+ {
+ case I2C_RETRIES:
+ adap->retries = arg;
+ break;
+
+ case I2C_TIMEOUT:
+ adap->timeout = arg;
+ break;
+
+ default:
+ if (adap->algo->algo_control != NULL)
+ {
+ ret = adap->algo->algo_control(adap, cmd, arg);
+ }
+ }
+ return(ret);
+}
+
+/* ----------------------------------------------------
+ * the i2c address scanning function
+ * Will not work for 10-bit addresses!
+ * ----------------------------------------------------
+ */
+static int i2c_probe_address(struct i2c_adapter *adapter, int addr, int kind,
+ int (*found_proc) (struct i2c_adapter *, int, int))
+{
+ int err;
+
+ /* Make sure the address is valid */
+ if (addr < 0x03 || addr > 0x77)
+ {
+ dev_warn(&adapter->dev, "Invalid probe address 0x%02x\n",
+ addr);
+ return(-EINVAL);
+ }
+
+ /* Skip if already in use */
+ if (i2c_check_addr(adapter, addr))
+ {
+ return(0);
+ }
+
+ /* Make sure there is something at this address, unless forced */
+ if (kind < 0)
+ {
+ if (i2c_smbus_xfer(adapter, addr, 0, 0, 0,
+ I2C_SMBUS_QUICK, NULL) < 0)
+ {
+ return(0);
+ }
+
+ /* prevent 24RF08 corruption */
+ if ((addr & ~0x0f) == 0x50)
+ {
+ i2c_smbus_xfer(adapter, addr, 0, 0, 0,
+ I2C_SMBUS_QUICK, NULL);
+ }
+ }
+
+ /* Finally call the custom detection function */
+ err = found_proc(adapter, addr, kind);
+
+ /* -ENODEV can be returned if there is a chip at the given address
+ * but it isn't supported by this chip driver. We catch it here as
+ * this isn't an error. */
+ return((err == -ENODEV) ? 0 : err);
+}
+
+int i2c_probe(struct i2c_adapter *adapter,
+ struct i2c_client_address_data *address_data,
+ int (*found_proc) (struct i2c_adapter *, int, int))
+{
+ int i, err;
+ int adap_id = i2c_adapter_id(adapter);
+
+ /* Forget it if we can't probe using SMBUS_QUICK */
+ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK))
+ {
+ return(-1);
+ }
+
+ /* Force entries are done first, and are not affected by ignore
+ * entries */
+ if (address_data->forces)
+ {
+ unsigned short **forces = address_data->forces;
+ int kind;
+
+ for (kind = 0; forces[kind]; kind++)
+ {
+ for (i = 0; forces[kind][i] != I2C_CLIENT_END;
+ i += 2)
+ {
+ if (forces[kind][i] == adap_id
+ || forces[kind][i] == ANY_I2C_BUS)
+ {
+ dev_dbg(&adapter->dev, "found force "
+ "parameter for adapter %d, "
+ "addr 0x%02x, kind %d\n",
+ adap_id, forces[kind][i + 1],
+ kind);
+ err = i2c_probe_address(adapter,
+ forces[kind][i + 1],
+ kind, found_proc);
+ if (err)
+ {
+ return(err);
+ }
+ }
+ }
+ }
+ }
+
+ /* Probe entries are done second, and are not affected by ignore
+ * entries either */
+ for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2)
+ {
+ if (address_data->probe[i] == adap_id
+ || address_data->probe[i] == ANY_I2C_BUS)
+ {
+ dev_dbg(&adapter->dev, "found probe parameter for "
+ "adapter %d, addr 0x%02x\n", adap_id,
+ address_data->probe[i + 1]);
+ err = i2c_probe_address(adapter,
+ address_data->probe[i + 1],
+ -1, found_proc);
+ if (err)
+ {
+ return(err);
+ }
+ }
+ }
+
+ /* Normal entries are done last, unless shadowed by an ignore entry */
+ for (i = 0; address_data->normal_i2c[i] != I2C_CLIENT_END; i += 1)
+ {
+ int j, ignore;
+
+ ignore = 0;
+ for (j = 0; address_data->ignore[j] != I2C_CLIENT_END;
+ j += 2)
+ {
+ if ((address_data->ignore[j] == adap_id ||
+ address_data->ignore[j] == ANY_I2C_BUS)
+ && address_data->ignore[j + 1]
+ == address_data->normal_i2c[i])
+ {
+ dev_dbg(&adapter->dev, "found ignore "
+ "parameter for adapter %d, "
+ "addr 0x%02x\n", adap_id,
+ address_data->ignore[j + 1]);
+ }
+ ignore = 1;
+ break;
+ }
+ if (ignore)
+ {
+ continue;
+ }
+
+ dev_dbg(&adapter->dev, "found normal entry for adapter %d, "
+ "addr 0x%02x\n", adap_id,
+ address_data->normal_i2c[i]);
+ err = i2c_probe_address(adapter, address_data->normal_i2c[i],
+ -1, found_proc);
+ if (err)
+ {
+ return(err);
+ }
+ }
+
+ return(0);
+} /* i2c_probe */
+
+struct i2c_adapter *i2c_get_adapter(int id)
+{
+ struct i2c_adapter *adapter;
+
+ down(&core_lists);
+ adapter = (struct i2c_adapter *)idr_find(&i2c_adapter_idr, id);
+ if (adapter && !try_module_get(adapter->owner))
+ {
+ adapter = NULL;
+ }
+
+ up(&core_lists);
+ return(adapter);
+}
+
+void i2c_put_adapter(struct i2c_adapter *adap)
+{
+ module_put(adap->owner);
+}
+
+/* The SMBus parts */
+
+#define POLY (0x1070U << 3)
+static u8
+crc8(u16 data)
+{
+ int i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (data & 0x8000)
+ {
+ data = data ^ POLY;
+ }
+ data = data << 1;
+ }
+ return((u8)(data >> 8));
+}
+
+/* CRC over count bytes in the first array plus the bytes in the rest
+ * array if it is non-null. rest[0] is the (length of rest) - 1
+ * and is included. */
+static u8 i2c_smbus_partial_pec(u8 crc, int count, u8 *first, u8 *rest)
+{
+ int i;
+
+ for (i = 0; i < count; i++)
+ {
+ crc = crc8((crc ^ first[i]) << 8);
+ }
+ if (rest != NULL)
+ {
+ for (i = 0; i <= rest[0]; i++)
+ {
+ crc = crc8((crc ^ rest[i]) << 8);
+ }
+ }
+ return(crc);
+}
+
+static u8 i2c_smbus_pec(int count, u8 *first, u8 *rest)
+{
+ return(i2c_smbus_partial_pec(0, count, first, rest));
+}
+
+/* Returns new "size" (transaction type)
+ * Note that we convert byte to byte_data and byte_data to word_data
+ * rather than invent new xxx_PEC transactions. */
+static int i2c_smbus_add_pec(u16 addr, u8 command, int size,
+ union i2c_smbus_data *data)
+{
+ u8 buf[3];
+
+ buf[0] = addr << 1;
+ buf[1] = command;
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE:
+ data->byte = i2c_smbus_pec(2, buf, NULL);
+ size = I2C_SMBUS_BYTE_DATA;
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ buf[2] = data->byte;
+ data->word = buf[2] ||
+ (i2c_smbus_pec(3, buf, NULL) << 8);
+ size = I2C_SMBUS_WORD_DATA;
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ /* unsupported */
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA:
+ data->block[data->block[0] + 1] =
+ i2c_smbus_pec(2, buf, data->block);
+ size = I2C_SMBUS_BLOCK_DATA_PEC;
+ break;
+ }
+ return(size);
+}
+
+static int i2c_smbus_check_pec(u16 addr, u8 command, int size, u8 partial,
+ union i2c_smbus_data *data)
+{
+ u8 buf[3], rpec, cpec;
+
+ buf[1] = command;
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE_DATA:
+ buf[0] = (addr << 1) | 1;
+ cpec = i2c_smbus_pec(2, buf, NULL);
+ rpec = data->byte;
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ buf[0] = (addr << 1) | 1;
+ buf[2] = data->word & 0xff;
+ cpec = i2c_smbus_pec(3, buf, NULL);
+ rpec = data->word >> 8;
+ break;
+
+ case I2C_SMBUS_WORD_DATA_PEC:
+ /* unsupported */
+ cpec = rpec = 0;
+ break;
+
+ case I2C_SMBUS_PROC_CALL_PEC:
+ /* unsupported */
+ cpec = rpec = 0;
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA_PEC:
+ buf[0] = (addr << 1);
+ buf[2] = (addr << 1) | 1;
+ cpec = i2c_smbus_pec(3, buf, data->block);
+ rpec = data->block[data->block[0] + 1];
+ break;
+
+ case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
+ buf[0] = (addr << 1) | 1;
+ rpec = i2c_smbus_partial_pec(partial, 1,
+ buf, data->block);
+ cpec = data->block[data->block[0] + 1];
+ break;
+
+ default:
+ cpec = rpec = 0;
+ break;
+ } /* switch */
+ if (rpec != cpec)
+ {
+ pr_debug("i2c-core: Bad PEC 0x%02x vs. 0x%02x\n",
+ rpec, cpec);
+ return(-1);
+ }
+ return(0);
+} /* i2c_smbus_check_pec */
+
+s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value)
+{
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ value, 0, I2C_SMBUS_QUICK, NULL));
+}
+
+s32 i2c_smbus_read_byte(struct i2c_client *client)
+{
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, 0, I2C_SMBUS_BYTE, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ return(0x0FF & data.byte);
+ }
+}
+
+s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value)
+{
+ union i2c_smbus_data data; /* only for PEC */
+
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, &data));
+}
+
+s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command)
+{
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command, I2C_SMBUS_BYTE_DATA, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ return(0x0FF & data.byte);
+ }
+}
+
+s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value)
+{
+ union i2c_smbus_data data;
+
+ data.byte = value;
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_BYTE_DATA, &data));
+}
+
+s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command)
+{
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command, I2C_SMBUS_WORD_DATA, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ return(0x0FFFF & data.word);
+ }
+}
+
+s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value)
+{
+ union i2c_smbus_data data;
+
+ data.word = value;
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_WORD_DATA, &data));
+}
+
+s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command,
+ u8 length, u8 *values)
+{
+ union i2c_smbus_data data;
+ int i;
+
+ if (length > I2C_SMBUS_BLOCK_MAX)
+ {
+ length = I2C_SMBUS_BLOCK_MAX;
+ }
+ for (i = 1; i <= length; i++)
+ {
+ data.block[i] = values[i - 1];
+ }
+ data.block[0] = length;
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_BLOCK_DATA, &data));
+}
+
+/* Returns the number of read bytes */
+s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, u8 *values)
+{
+ union i2c_smbus_data data;
+ int i;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command,
+ I2C_SMBUS_I2C_BLOCK_DATA, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ for (i = 1; i <= data.block[0]; i++)
+ {
+ values[i - 1] = data.block[i];
+ }
+ return(data.block[0]);
+ }
+}
+
+/* Simulate a SMBus command using the i2c protocol
+ * No checking of parameters is done! */
+static s32 i2c_smbus_xfer_emulated(struct i2c_adapter *adapter, u16 addr,
+ unsigned short flags,
+ char read_write, u8 command, int size,
+ union i2c_smbus_data *data)
+{
+ /* So we need to generate a series of msgs. In the case of writing, we
+ * need to use only one message; when reading, we need two. We initialize
+ * most things with sane defaults, to keep the code below somewhat
+ * simpler. */
+ unsigned char msgbuf0[34];
+ unsigned char msgbuf1[34];
+ int num = read_write == I2C_SMBUS_READ ? 2 : 1;
+ struct i2c_msg msg[2] = { { addr, flags, 1, msgbuf0 },
+ { addr, flags | I2C_M_RD, 0, msgbuf1 } };
+ int i;
+
+ msgbuf0[0] = command;
+ switch (size)
+ {
+ case I2C_SMBUS_QUICK:
+ msg[0].len = 0;
+ /* Special case: The read/write field is used as data */
+ msg[0].flags = flags | (read_write == I2C_SMBUS_READ) ? I2C_M_RD : 0;
+ num = 1;
+ break;
+
+ case I2C_SMBUS_BYTE:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ /* Special case: only a read! */
+ msg[0].flags = I2C_M_RD | flags;
+ num = 1;
+ }
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ msg[1].len = 1;
+ }
+ else
+ {
+ msg[0].len = 2;
+ msgbuf0[1] = data->byte;
+ }
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ msg[1].len = 2;
+ }
+ else
+ {
+ msg[0].len = 3;
+ msgbuf0[1] = data->word & 0xff;
+ msgbuf0[2] = (data->word >> 8) & 0xff;
+ }
+ break;
+
+ case I2C_SMBUS_PROC_CALL:
+ num = 2; /* Special case */
+ read_write = I2C_SMBUS_READ;
+ msg[0].len = 3;
+ msg[1].len = 2;
+ msgbuf0[1] = data->word & 0xff;
+ msgbuf0[2] = (data->word >> 8) & 0xff;
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA:
+ case I2C_SMBUS_BLOCK_DATA_PEC:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ dev_err(&adapter->dev, "Block read not supported "
+ "under I2C emulation!\n");
+ return(-1);
+ }
+ else
+ {
+ msg[0].len = data->block[0] + 2;
+ if (msg[0].len > I2C_SMBUS_BLOCK_MAX + 2)
+ {
+ dev_err(&adapter->dev, "smbus_access called with "
+ "invalid block write size (%d)\n",
+ data->block[0]);
+ return(-1);
+ }
+ if (size == I2C_SMBUS_BLOCK_DATA_PEC)
+ {
+ (msg[0].len)++;
+ }
+ for (i = 1; i <= msg[0].len; i++)
+ {
+ msgbuf0[i] = data->block[i - 1];
+ }
+ }
+ break;
+
+ case I2C_SMBUS_BLOCK_PROC_CALL:
+ case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
+ dev_dbg(&adapter->dev, "Block process call not supported "
+ "under I2C emulation!\n");
+ return(-1);
+
+ case I2C_SMBUS_I2C_BLOCK_DATA:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ msg[1].len = I2C_SMBUS_I2C_BLOCK_MAX;
+ }
+ else
+ {
+ msg[0].len = data->block[0] + 1;
+ if (msg[0].len > I2C_SMBUS_I2C_BLOCK_MAX + 1)
+ {
+ dev_err(&adapter->dev, "i2c_smbus_xfer_emulated called with "
+ "invalid block write size (%d)\n",
+ data->block[0]);
+ return(-1);
+ }
+ for (i = 1; i <= data->block[0]; i++)
+ {
+ msgbuf0[i] = data->block[i];
+ }
+ }
+ break;
+
+ default:
+ dev_err(&adapter->dev, "smbus_access called with invalid size (%d)\n",
+ size);
+ return(-1);
+ } /* switch */
+
+ if (i2c_transfer(adapter, msg, num) < 0)
+ {
+ return(-1);
+ }
+
+ if (read_write == I2C_SMBUS_READ)
+ {
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE:
+ data->byte = msgbuf0[0];
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ data->byte = msgbuf1[0];
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ case I2C_SMBUS_PROC_CALL:
+ data->word = msgbuf1[0] | (msgbuf1[1] << 8);
+ break;
+
+ case I2C_SMBUS_I2C_BLOCK_DATA:
+ /* fixed at 32 for now */
+ data->block[0] = I2C_SMBUS_I2C_BLOCK_MAX;
+ for (i = 0; i < I2C_SMBUS_I2C_BLOCK_MAX; i++)
+ {
+ data->block[i + 1] = msgbuf1[i];
+ }
+ break;
+ }
+ }
+ return(0);
+} /* i2c_smbus_xfer_emulated */
+
+
+s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, unsigned short flags,
+ char read_write, u8 command, int size,
+ union i2c_smbus_data *data)
+{
+ s32 res;
+ int swpec = 0;
+ u8 partial = 0;
+
+ flags &= I2C_M_TEN | I2C_CLIENT_PEC;
+ if ((flags & I2C_CLIENT_PEC) &&
+ !(i2c_check_functionality(adapter, I2C_FUNC_SMBUS_HWPEC_CALC)))
+ {
+ swpec = 1;
+ if (read_write == I2C_SMBUS_READ &&
+ size == I2C_SMBUS_BLOCK_DATA)
+ {
+ size = I2C_SMBUS_BLOCK_DATA_PEC;
+ }
+ else if (size == I2C_SMBUS_PROC_CALL)
+ {
+ size = I2C_SMBUS_PROC_CALL_PEC;
+ }
+ else if (size == I2C_SMBUS_BLOCK_PROC_CALL)
+ {
+ i2c_smbus_add_pec(addr, command,
+ I2C_SMBUS_BLOCK_DATA, data);
+ partial = data->block[data->block[0] + 1];
+ size = I2C_SMBUS_BLOCK_PROC_CALL_PEC;
+ }
+ else if (read_write == I2C_SMBUS_WRITE &&
+ size != I2C_SMBUS_QUICK &&
+ size != I2C_SMBUS_I2C_BLOCK_DATA)
+ {
+ size = i2c_smbus_add_pec(addr, command, size, data);
+ }
+ }
+
+ if (adapter->algo->smbus_xfer)
+ {
+ down(&adapter->bus_lock);
+ res = adapter->algo->smbus_xfer(adapter, addr, flags, read_write,
+ command, size, data);
+ up(&adapter->bus_lock);
+ }
+ else
+ {
+ res = i2c_smbus_xfer_emulated(adapter, addr, flags, read_write,
+ command, size, data);
+ }
+
+ if (res >= 0 && swpec &&
+ size != I2C_SMBUS_QUICK && size != I2C_SMBUS_I2C_BLOCK_DATA &&
+ (read_write == I2C_SMBUS_READ || size == I2C_SMBUS_PROC_CALL_PEC ||
+ size == I2C_SMBUS_BLOCK_PROC_CALL_PEC))
+ {
+ if (i2c_smbus_check_pec(addr, command, size, partial, data))
+ {
+ return(-1);
+ }
+ }
+ return(res);
+} /* i2c_smbus_xfer */
+
+
+/* Next four are needed by i2c-isa */
+EXPORT_SYMBOL_GPL(i2c_adapter_dev_release);
+EXPORT_SYMBOL_GPL(i2c_adapter_driver);
+EXPORT_SYMBOL_GPL(i2c_adapter_class);
+EXPORT_SYMBOL_GPL(i2c_bus_type);
+
+EXPORT_SYMBOL(i2c_add_adapter);
+EXPORT_SYMBOL(i2c_del_adapter);
+EXPORT_SYMBOL(i2c_add_driver);
+EXPORT_SYMBOL(i2c_del_driver);
+EXPORT_SYMBOL(i2c_attach_client);
+EXPORT_SYMBOL(i2c_detach_client);
+EXPORT_SYMBOL(i2c_use_client);
+EXPORT_SYMBOL(i2c_release_client);
+EXPORT_SYMBOL(i2c_clients_command);
+EXPORT_SYMBOL(i2c_check_addr);
+
+EXPORT_SYMBOL(i2c_master_send);
+EXPORT_SYMBOL(i2c_master_recv);
+EXPORT_SYMBOL(i2c_control);
+EXPORT_SYMBOL(i2c_transfer);
+EXPORT_SYMBOL(i2c_get_adapter);
+EXPORT_SYMBOL(i2c_put_adapter);
+EXPORT_SYMBOL(i2c_probe);
+
+EXPORT_SYMBOL(i2c_smbus_xfer);
+EXPORT_SYMBOL(i2c_smbus_write_quick);
+EXPORT_SYMBOL(i2c_smbus_read_byte);
+EXPORT_SYMBOL(i2c_smbus_write_byte);
+EXPORT_SYMBOL(i2c_smbus_read_byte_data);
+EXPORT_SYMBOL(i2c_smbus_write_byte_data);
+EXPORT_SYMBOL(i2c_smbus_read_word_data);
+EXPORT_SYMBOL(i2c_smbus_write_word_data);
+EXPORT_SYMBOL(i2c_smbus_write_block_data);
+EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data);
+
+MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
+MODULE_DESCRIPTION("I2C-Bus main module");
+MODULE_LICENSE("GPL");
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02001-directfb.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h
index 3c7ffc18..3c7ffc18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02001-directfb.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/02002-i2c-core.c
new file mode 100644
index 00000000..698df2a6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02002-i2c-core.c
@@ -0,0 +1,1457 @@
+/* i2c-core.c - a device driver for the iic-bus interface */
+/* ------------------------------------------------------------------------- */
+/* Copyright (C) 1995-99 Simon G. Vogl
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+/* ------------------------------------------------------------------------- */
+
+/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
+ * All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
+ * SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/idr.h>
+#include <linux/seq_file.h>
+#include <asm/uaccess.h>
+
+
+static LIST_HEAD(adapters);
+static LIST_HEAD(drivers);
+static DECLARE_MUTEX(core_lists);
+static DEFINE_IDR(i2c_adapter_idr);
+
+static int i2c_device_match(struct device *dev, struct device_driver *drv)
+{
+ return(1);
+}
+
+static int i2c_bus_suspend(struct device *dev, pm_message_t state)
+{
+ int rc = 0;
+
+ if (dev->driver && dev->driver->suspend)
+ {
+ rc = dev->driver->suspend(dev, state, 0);
+ }
+ return(rc);
+}
+
+static int i2c_bus_resume(struct device *dev)
+{
+ int rc = 0;
+
+ if (dev->driver && dev->driver->resume)
+ {
+ rc = dev->driver->resume(dev, 0);
+ }
+ return(rc);
+}
+
+struct bus_type i2c_bus_type =
+{
+ .name = "i2c",
+ .match = i2c_device_match,
+ .suspend = i2c_bus_suspend,
+ .resume = i2c_bus_resume,
+};
+
+static int i2c_device_probe(struct device *dev)
+{
+ return(-ENODEV);
+}
+
+static int i2c_device_remove(struct device *dev)
+{
+ return(0);
+}
+
+void i2c_adapter_dev_release(struct device *dev)
+{
+ struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
+
+ complete(&adap->dev_released);
+}
+
+struct device_driver i2c_adapter_driver =
+{
+ .name = "i2c_adapter",
+ .bus = &i2c_bus_type,
+ .probe = i2c_device_probe,
+ .remove = i2c_device_remove,
+};
+
+static void i2c_adapter_class_dev_release(struct class_device *dev)
+{
+ struct i2c_adapter *adap = class_dev_to_i2c_adapter(dev);
+
+ complete(&adap->class_dev_released);
+}
+
+struct class i2c_adapter_class =
+{
+ .name = "i2c-adapter",
+ .release = &i2c_adapter_class_dev_release,
+};
+
+static ssize_t show_adapter_name(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
+
+ return(sprintf(buf, "%s\n", adap->name));
+}
+static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL);
+
+
+static void i2c_client_release(struct device *dev)
+{
+ struct i2c_client *client = to_i2c_client(dev);
+
+ complete(&client->released);
+}
+
+static ssize_t show_client_name(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ struct i2c_client *client = to_i2c_client(dev);
+
+ return(sprintf(buf, "%s\n", client->name));
+}
+
+/*
+ * We can't use the DEVICE_ATTR() macro here as we want the same filename for a
+ * different type of a device. So beware if the DEVICE_ATTR() macro ever
+ * changes, this definition will also have to change.
+ */
+static struct device_attribute dev_attr_client_name =
+{
+ .attr = { .name = "name", .mode = S_IRUGO, .owner = THIS_MODULE },
+ .show = &show_client_name,
+};
+
+
+/* ---------------------------------------------------
+ * registering functions
+ * ---------------------------------------------------
+ */
+
+/* -----
+ * i2c_add_adapter is called from within the algorithm layer,
+ * when a new hw adapter registers. A new device is register to be
+ * available for clients.
+ */
+int i2c_add_adapter(struct i2c_adapter *adap)
+{
+ int id, res = 0;
+ struct list_head *item;
+ struct i2c_driver *driver;
+
+ down(&core_lists);
+
+ if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0)
+ {
+ res = -ENOMEM;
+ goto out_unlock;
+ }
+
+ res = idr_get_new(&i2c_adapter_idr, adap, &id);
+ if (res < 0)
+ {
+ if (res == -EAGAIN)
+ {
+ res = -ENOMEM;
+ }
+ goto out_unlock;
+ }
+
+ adap->nr = id & MAX_ID_MASK;
+ init_MUTEX(&adap->bus_lock);
+ init_MUTEX(&adap->clist_lock);
+ list_add_tail(&adap->list, &adapters);
+ INIT_LIST_HEAD(&adap->clients);
+
+ /* Add the adapter to the driver core.
+ * If the parent pointer is not set up,
+ * we add this adapter to the host bus.
+ */
+ if (adap->dev.parent == NULL)
+ {
+ adap->dev.parent = &platform_bus;
+ }
+ sprintf(adap->dev.bus_id, "i2c-%d", adap->nr);
+ adap->dev.driver = &i2c_adapter_driver;
+ adap->dev.release = &i2c_adapter_dev_release;
+ device_register(&adap->dev);
+ device_create_file(&adap->dev, &dev_attr_name);
+
+ /* Add this adapter to the i2c_adapter class */
+ memset(&adap->class_dev, 0x00, sizeof(struct class_device));
+ adap->class_dev.dev = &adap->dev;
+ adap->class_dev.class = &i2c_adapter_class;
+ strlcpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
+ class_device_register(&adap->class_dev);
+
+ dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
+
+ /* inform drivers of new adapters */
+ list_for_each(item, &drivers)
+ {
+ driver = list_entry(item, struct i2c_driver, list);
+ if (driver->flags & I2C_DF_NOTIFY)
+ {
+ /* We ignore the return code; if it fails, too bad */
+ driver->attach_adapter(adap);
+ }
+ }
+
+ out_unlock:
+ up(&core_lists);
+ return(res);
+} /* i2c_add_adapter */
+
+
+int i2c_del_adapter(struct i2c_adapter *adap)
+{
+ struct list_head *item, *_n;
+ struct i2c_adapter *adap_from_list;
+ struct i2c_driver *driver;
+ struct i2c_client *client;
+ int res = 0;
+
+ down(&core_lists);
+
+ /* First make sure that this adapter was ever added */
+ list_for_each_entry(adap_from_list, &adapters, list)
+ {
+ if (adap_from_list == adap)
+ {
+ break;
+ }
+ }
+ if (adap_from_list != adap)
+ {
+ pr_debug("i2c-core: attempting to delete unregistered "
+ "adapter [%s]\n", adap->name);
+ res = -EINVAL;
+ goto out_unlock;
+ }
+
+ list_for_each(item, &drivers)
+ {
+ driver = list_entry(item, struct i2c_driver, list);
+ if (driver->detach_adapter)
+ {
+ if ((res = driver->detach_adapter(adap)))
+ {
+ dev_err(&adap->dev, "detach_adapter failed "
+ "for driver [%s]\n", driver->name);
+ goto out_unlock;
+ }
+ }
+ }
+
+ /* detach any active clients. This must be done first, because
+ * it can fail; in which case we give up. */
+ list_for_each_safe(item, _n, &adap->clients)
+ {
+ client = list_entry(item, struct i2c_client, list);
+
+ /* detaching devices is unconditional of the set notify
+ * flag, as _all_ clients that reside on the adapter
+ * must be deleted, as this would cause invalid states.
+ */
+ if ((res = client->driver->detach_client(client)))
+ {
+ dev_err(&adap->dev, "detach_client failed for client "
+ "[%s] at address 0x%02x\n", client->name,
+ client->addr);
+ goto out_unlock;
+ }
+ }
+
+ /* clean up the sysfs representation */
+ init_completion(&adap->dev_released);
+ init_completion(&adap->class_dev_released);
+ class_device_unregister(&adap->class_dev);
+ device_remove_file(&adap->dev, &dev_attr_name);
+ device_unregister(&adap->dev);
+ list_del(&adap->list);
+
+ /* wait for sysfs to drop all references */
+ wait_for_completion(&adap->dev_released);
+ wait_for_completion(&adap->class_dev_released);
+
+ /* free dynamically allocated bus id */
+ idr_remove(&i2c_adapter_idr, adap->nr);
+
+ dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name);
+
+ out_unlock:
+ up(&core_lists);
+ return(res);
+} /* i2c_del_adapter */
+
+
+/* -----
+ * What follows is the "upwards" interface: commands for talking to clients,
+ * which implement the functions to access the physical information of the
+ * chips.
+ */
+
+int i2c_add_driver(struct i2c_driver *driver)
+{
+ struct list_head *item;
+ struct i2c_adapter *adapter;
+ int res = 0;
+
+ down(&core_lists);
+
+ /* add the driver to the list of i2c drivers in the driver core */
+ driver->driver.name = driver->name;
+ driver->driver.bus = &i2c_bus_type;
+ driver->driver.probe = i2c_device_probe;
+ driver->driver.remove = i2c_device_remove;
+
+ res = driver_register(&driver->driver);
+ if (res)
+ {
+ goto out_unlock;
+ }
+
+ list_add_tail(&driver->list, &drivers);
+ pr_debug("i2c-core: driver [%s] registered\n", driver->name);
+
+ /* now look for instances of driver on our adapters */
+ if (driver->flags & I2C_DF_NOTIFY)
+ {
+ list_for_each(item, &adapters)
+ {
+ adapter = list_entry(item, struct i2c_adapter, list);
+ driver->attach_adapter(adapter);
+ }
+ }
+
+ out_unlock:
+ up(&core_lists);
+ return(res);
+}
+
+int i2c_del_driver(struct i2c_driver *driver)
+{
+ struct list_head *item1, *item2, *_n;
+ struct i2c_client *client;
+ struct i2c_adapter *adap;
+
+ int res = 0;
+
+ down(&core_lists);
+
+ /* Have a look at each adapter, if clients of this driver are still
+ * attached. If so, detach them to be able to kill the driver
+ * afterwards.
+ *
+ * Removing clients does not depend on the notify flag, else
+ * invalid operation might (will!) result, when using stale client
+ * pointers.
+ */
+ list_for_each(item1, &adapters)
+ {
+ adap = list_entry(item1, struct i2c_adapter, list);
+ if (driver->detach_adapter)
+ {
+ if ((res = driver->detach_adapter(adap)))
+ {
+ dev_err(&adap->dev, "detach_adapter failed "
+ "for driver [%s]\n", driver->name);
+ goto out_unlock;
+ }
+ }
+ else
+ {
+ list_for_each_safe(item2, _n, &adap->clients)
+ {
+ client = list_entry(item2, struct i2c_client, list);
+ if (client->driver != driver)
+ {
+ continue;
+ }
+ dev_dbg(&adap->dev, "detaching client [%s] "
+ "at 0x%02x\n", client->name,
+ client->addr);
+ if ((res = driver->detach_client(client)))
+ {
+ dev_err(&adap->dev, "detach_client "
+ "failed for client [%s] at "
+ "0x%02x\n", client->name,
+ client->addr);
+ goto out_unlock;
+ }
+ }
+ }
+ }
+
+ driver_unregister(&driver->driver);
+ list_del(&driver->list);
+ pr_debug("i2c-core: driver [%s] unregistered\n", driver->name);
+
+ out_unlock:
+ up(&core_lists);
+ return(0);
+} /* i2c_del_driver */
+
+static int __i2c_check_addr(struct i2c_adapter *adapter, unsigned int addr)
+{
+ struct list_head *item;
+ struct i2c_client *client;
+
+ list_for_each(item, &adapter->clients)
+ {
+ client = list_entry(item, struct i2c_client, list);
+ if (client->addr == addr)
+ {
+ return(-EBUSY);
+ }
+ }
+ return(0);
+}
+
+int i2c_check_addr(struct i2c_adapter *adapter, int addr)
+{
+ int rval;
+
+ down(&adapter->clist_lock);
+ rval = __i2c_check_addr(adapter, addr);
+ up(&adapter->clist_lock);
+
+ return(rval);
+}
+
+int i2c_attach_client(struct i2c_client *client)
+{
+ struct i2c_adapter *adapter = client->adapter;
+
+ down(&adapter->clist_lock);
+ if (__i2c_check_addr(client->adapter, client->addr))
+ {
+ up(&adapter->clist_lock);
+ return(-EBUSY);
+ }
+ list_add_tail(&client->list, &adapter->clients);
+ up(&adapter->clist_lock);
+
+ if (adapter->client_register)
+ {
+ if (adapter->client_register(client))
+ {
+ dev_dbg(&adapter->dev, "client_register "
+ "failed for client [%s] at 0x%02x\n",
+ client->name, client->addr);
+ }
+ }
+
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ client->usage_count = 0;
+ }
+
+ client->dev.parent = &client->adapter->dev;
+ client->dev.driver = &client->driver->driver;
+ client->dev.bus = &i2c_bus_type;
+ client->dev.release = &i2c_client_release;
+
+ snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),
+ "%d-%04x", i2c_adapter_id(adapter), client->addr);
+ dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n",
+ client->name, client->dev.bus_id);
+ device_register(&client->dev);
+ device_create_file(&client->dev, &dev_attr_client_name);
+
+ return(0);
+} /* i2c_attach_client */
+
+
+int i2c_detach_client(struct i2c_client *client)
+{
+ struct i2c_adapter *adapter = client->adapter;
+ int res = 0;
+
+ if ((client->flags & I2C_CLIENT_ALLOW_USE)
+ && (client->usage_count > 0))
+ {
+ dev_warn(&client->dev, "Client [%s] still busy, "
+ "can't detach\n", client->name);
+ return(-EBUSY);
+ }
+
+ if (adapter->client_unregister)
+ {
+ res = adapter->client_unregister(client);
+ if (res)
+ {
+ dev_err(&client->dev,
+ "client_unregister [%s] failed, "
+ "client not detached\n", client->name);
+ goto out;
+ }
+ }
+
+ down(&adapter->clist_lock);
+ list_del(&client->list);
+ init_completion(&client->released);
+ device_remove_file(&client->dev, &dev_attr_client_name);
+ device_unregister(&client->dev);
+ up(&adapter->clist_lock);
+ wait_for_completion(&client->released);
+
+ out:
+ return(res);
+}
+
+static int i2c_inc_use_client(struct i2c_client *client)
+{
+ if (!try_module_get(client->driver->owner))
+ {
+ return(-ENODEV);
+ }
+ if (!try_module_get(client->adapter->owner))
+ {
+ module_put(client->driver->owner);
+ return(-ENODEV);
+ }
+
+ return(0);
+}
+
+static void i2c_dec_use_client(struct i2c_client *client)
+{
+ module_put(client->driver->owner);
+ module_put(client->adapter->owner);
+}
+
+int i2c_use_client(struct i2c_client *client)
+{
+ int ret;
+
+ ret = i2c_inc_use_client(client);
+ if (ret)
+ {
+ return(ret);
+ }
+
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ if (client->flags & I2C_CLIENT_ALLOW_MULTIPLE_USE)
+ {
+ client->usage_count++;
+ }
+ else if (client->usage_count > 0)
+ {
+ goto busy;
+ }
+ else
+ {
+ client->usage_count++;
+ }
+ }
+
+ return(0);
+
+ busy:
+ i2c_dec_use_client(client);
+ return(-EBUSY);
+}
+
+int i2c_release_client(struct i2c_client *client)
+{
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ if (client->usage_count > 0)
+ {
+ client->usage_count--;
+ }
+ else
+ {
+ pr_debug("i2c-core: %s used one too many times\n",
+ __FUNCTION__);
+ return(-EPERM);
+ }
+ }
+
+ i2c_dec_use_client(client);
+
+ return(0);
+}
+
+void i2c_clients_command(struct i2c_adapter *adap, unsigned int cmd, void *arg)
+{
+ struct list_head *item;
+ struct i2c_client *client;
+
+ down(&adap->clist_lock);
+ list_for_each(item, &adap->clients)
+ {
+ client = list_entry(item, struct i2c_client, list);
+ if (!try_module_get(client->driver->owner))
+ {
+ continue;
+ }
+ if (NULL != client->driver->command)
+ {
+ up(&adap->clist_lock);
+ client->driver->command(client, cmd, arg);
+ down(&adap->clist_lock);
+ }
+ module_put(client->driver->owner);
+ }
+ up(&adap->clist_lock);
+}
+
+static int __init i2c_init(void)
+{
+ int retval;
+
+ retval = bus_register(&i2c_bus_type);
+ if (retval)
+ {
+ return(retval);
+ }
+ retval = driver_register(&i2c_adapter_driver);
+ if (retval)
+ {
+ return(retval);
+ }
+ return(class_register(&i2c_adapter_class));
+}
+
+static void __exit i2c_exit(void)
+{
+ class_unregister(&i2c_adapter_class);
+ driver_unregister(&i2c_adapter_driver);
+ bus_unregister(&i2c_bus_type);
+}
+
+subsys_initcall(i2c_init);
+module_exit(i2c_exit);
+
+/* ----------------------------------------------------
+ * the functional interface to the i2c busses.
+ * ----------------------------------------------------
+ */
+
+int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
+{
+ int ret;
+
+ if (adap->algo->master_xfer)
+ {
+#ifdef DEBUG
+ for (ret = 0; ret < num; ret++)
+ {
+ dev_dbg(&adap->dev, "master_xfer[%d] %c, addr=0x%02x, "
+ "len=%d\n", ret, msgs[ret].flags & I2C_M_RD ?
+ 'R' : 'W', msgs[ret].addr, msgs[ret].len);
+ }
+#endif
+
+ down(&adap->bus_lock);
+ ret = adap->algo->master_xfer(adap, msgs, num);
+ up(&adap->bus_lock);
+
+ return(ret);
+ }
+ else
+ {
+ dev_dbg(&adap->dev, "I2C level transfers not supported\n");
+ return(-ENOSYS);
+ }
+}
+
+int i2c_master_send(struct i2c_client *client, const char *buf, int count)
+{
+ int ret;
+ struct i2c_adapter *adap = client->adapter;
+ struct i2c_msg msg;
+
+ msg.addr = client->addr;
+ msg.flags = client->flags & I2C_M_TEN;
+ msg.len = count;
+ msg.buf = (char *)buf;
+
+ ret = i2c_transfer(adap, &msg, 1);
+
+ /* If everything went ok (i.e. 1 msg transmitted), return #bytes
+ * transmitted, else error code. */
+ return((ret == 1) ? count : ret);
+}
+
+int i2c_master_recv(struct i2c_client *client, char *buf, int count)
+{
+ struct i2c_adapter *adap = client->adapter;
+ struct i2c_msg msg;
+ int ret;
+
+ msg.addr = client->addr;
+ msg.flags = client->flags & I2C_M_TEN;
+ msg.flags |= I2C_M_RD;
+ msg.len = count;
+ msg.buf = buf;
+
+ ret = i2c_transfer(adap, &msg, 1);
+
+ /* If everything went ok (i.e. 1 msg transmitted), return #bytes
+ * transmitted, else error code. */
+ return((ret == 1) ? count : ret);
+}
+
+
+int i2c_control(struct i2c_client *client,
+ unsigned int cmd, unsigned long arg)
+{
+ int ret = 0;
+ struct i2c_adapter *adap = client->adapter;
+
+ dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
+ switch (cmd)
+ {
+ case I2C_RETRIES:
+ adap->retries = arg;
+ break;
+
+ case I2C_TIMEOUT:
+ adap->timeout = arg;
+ break;
+
+ default:
+ if (adap->algo->algo_control != NULL)
+ {
+ ret = adap->algo->algo_control(adap, cmd, arg);
+ }
+ }
+ return(ret);
+}
+
+/* ----------------------------------------------------
+ * the i2c address scanning function
+ * Will not work for 10-bit addresses!
+ * ----------------------------------------------------
+ */
+static int i2c_probe_address(struct i2c_adapter *adapter, int addr, int kind,
+ int (*found_proc) (struct i2c_adapter *, int, int))
+{
+ int err;
+
+ /* Make sure the address is valid */
+ if (addr < 0x03 || addr > 0x77)
+ {
+ dev_warn(&adapter->dev, "Invalid probe address 0x%02x\n",
+ addr);
+ return(-EINVAL);
+ }
+
+ /* Skip if already in use */
+ if (i2c_check_addr(adapter, addr))
+ {
+ return(0);
+ }
+
+ /* Make sure there is something at this address, unless forced */
+ if (kind < 0)
+ {
+ if (i2c_smbus_xfer(adapter, addr, 0, 0, 0,
+ I2C_SMBUS_QUICK, NULL) < 0)
+ {
+ return(0);
+ }
+
+ /* prevent 24RF08 corruption */
+ if ((addr & ~0x0f) == 0x50)
+ {
+ i2c_smbus_xfer(adapter, addr, 0, 0, 0,
+ I2C_SMBUS_QUICK, NULL);
+ }
+ }
+
+ /* Finally call the custom detection function */
+ err = found_proc(adapter, addr, kind);
+
+ /* -ENODEV can be returned if there is a chip at the given address
+ * but it isn't supported by this chip driver. We catch it here as
+ * this isn't an error. */
+ return((err == -ENODEV) ? 0 : err);
+}
+
+int i2c_probe(struct i2c_adapter *adapter,
+ struct i2c_client_address_data *address_data,
+ int (*found_proc) (struct i2c_adapter *, int, int))
+{
+ int i, err;
+ int adap_id = i2c_adapter_id(adapter);
+
+ /* Forget it if we can't probe using SMBUS_QUICK */
+ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK))
+ {
+ return(-1);
+ }
+
+ /* Force entries are done first, and are not affected by ignore
+ * entries */
+ if (address_data->forces)
+ {
+ unsigned short **forces = address_data->forces;
+ int kind;
+
+ for (kind = 0; forces[kind]; kind++)
+ {
+ for (i = 0; forces[kind][i] != I2C_CLIENT_END;
+ i += 2)
+ {
+ if (forces[kind][i] == adap_id
+ || forces[kind][i] == ANY_I2C_BUS)
+ {
+ dev_dbg(&adapter->dev, "found force "
+ "parameter for adapter %d, "
+ "addr 0x%02x, kind %d\n",
+ adap_id, forces[kind][i + 1],
+ kind);
+ err = i2c_probe_address(adapter,
+ forces[kind][i + 1],
+ kind, found_proc);
+ if (err)
+ {
+ return(err);
+ }
+ }
+ }
+ }
+ }
+
+ /* Probe entries are done second, and are not affected by ignore
+ * entries either */
+ for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2)
+ {
+ if (address_data->probe[i] == adap_id
+ || address_data->probe[i] == ANY_I2C_BUS)
+ {
+ dev_dbg(&adapter->dev, "found probe parameter for "
+ "adapter %d, addr 0x%02x\n", adap_id,
+ address_data->probe[i + 1]);
+ err = i2c_probe_address(adapter,
+ address_data->probe[i + 1],
+ -1, found_proc);
+ if (err)
+ {
+ return(err);
+ }
+ }
+ }
+
+ /* Normal entries are done last, unless shadowed by an ignore entry */
+ for (i = 0; address_data->normal_i2c[i] != I2C_CLIENT_END; i += 1)
+ {
+ int j, ignore;
+
+ ignore = 0;
+ for (j = 0; address_data->ignore[j] != I2C_CLIENT_END;
+ j += 2)
+ {
+ if ((address_data->ignore[j] == adap_id ||
+ address_data->ignore[j] == ANY_I2C_BUS)
+ && address_data->ignore[j + 1]
+ == address_data->normal_i2c[i])
+ {
+ dev_dbg(&adapter->dev, "found ignore "
+ "parameter for adapter %d, "
+ "addr 0x%02x\n", adap_id,
+ address_data->ignore[j + 1]);
+ }
+ ignore = 1;
+ break;
+ }
+ if (ignore)
+ {
+ continue;
+ }
+
+ dev_dbg(&adapter->dev, "found normal entry for adapter %d, "
+ "addr 0x%02x\n", adap_id,
+ address_data->normal_i2c[i]);
+ err = i2c_probe_address(adapter, address_data->normal_i2c[i],
+ -1, found_proc);
+ if (err)
+ {
+ return(err);
+ }
+ }
+
+ return(0);
+} /* i2c_probe */
+
+struct i2c_adapter *i2c_get_adapter(int id)
+{
+ struct i2c_adapter *adapter;
+
+ down(&core_lists);
+ adapter = (struct i2c_adapter *)idr_find(&i2c_adapter_idr, id);
+ if (adapter && !try_module_get(adapter->owner))
+ {
+ adapter = NULL;
+ }
+
+ up(&core_lists);
+ return(adapter);
+}
+
+void i2c_put_adapter(struct i2c_adapter *adap)
+{
+ module_put(adap->owner);
+}
+
+/* The SMBus parts */
+
+#define POLY (0x1070U << 3)
+static u8
+crc8(u16 data)
+{
+ int i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (data & 0x8000)
+ {
+ data = data ^ POLY;
+ }
+ data = data << 1;
+ }
+ return((u8)(data >> 8));
+}
+
+/* CRC over count bytes in the first array plus the bytes in the rest
+ * array if it is non-null. rest[0] is the (length of rest) - 1
+ * and is included. */
+static u8 i2c_smbus_partial_pec(u8 crc, int count, u8 *first, u8 *rest)
+{
+ int i;
+
+ for (i = 0; i < count; i++)
+ {
+ crc = crc8((crc ^ first[i]) << 8);
+ }
+ if (rest != NULL)
+ {
+ for (i = 0; i <= rest[0]; i++)
+ {
+ crc = crc8((crc ^ rest[i]) << 8);
+ }
+ }
+ return(crc);
+}
+
+static u8 i2c_smbus_pec(int count, u8 *first, u8 *rest)
+{
+ return(i2c_smbus_partial_pec(0, count, first, rest));
+}
+
+/* Returns new "size" (transaction type)
+ * Note that we convert byte to byte_data and byte_data to word_data
+ * rather than invent new xxx_PEC transactions. */
+static int i2c_smbus_add_pec(u16 addr, u8 command, int size,
+ union i2c_smbus_data *data)
+{
+ u8 buf[3];
+
+ buf[0] = addr << 1;
+ buf[1] = command;
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE:
+ data->byte = i2c_smbus_pec(2, buf, NULL);
+ size = I2C_SMBUS_BYTE_DATA;
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ buf[2] = data->byte;
+ data->word = buf[2] ||
+ (i2c_smbus_pec(3, buf, NULL) << 8);
+ size = I2C_SMBUS_WORD_DATA;
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ /* unsupported */
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA:
+ data->block[data->block[0] + 1] =
+ i2c_smbus_pec(2, buf, data->block);
+ size = I2C_SMBUS_BLOCK_DATA_PEC;
+ break;
+ }
+ return(size);
+}
+
+static int i2c_smbus_check_pec(u16 addr, u8 command, int size, u8 partial,
+ union i2c_smbus_data *data)
+{
+ u8 buf[3], rpec, cpec;
+
+ buf[1] = command;
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE_DATA:
+ buf[0] = (addr << 1) | 1;
+ cpec = i2c_smbus_pec(2, buf, NULL);
+ rpec = data->byte;
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ buf[0] = (addr << 1) | 1;
+ buf[2] = data->word & 0xff;
+ cpec = i2c_smbus_pec(3, buf, NULL);
+ rpec = data->word >> 8;
+ break;
+
+ case I2C_SMBUS_WORD_DATA_PEC:
+ /* unsupported */
+ cpec = rpec = 0;
+ break;
+
+ case I2C_SMBUS_PROC_CALL_PEC:
+ /* unsupported */
+ cpec = rpec = 0;
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA_PEC:
+ buf[0] = (addr << 1);
+ buf[2] = (addr << 1) | 1;
+ cpec = i2c_smbus_pec(3, buf, data->block);
+ rpec = data->block[data->block[0] + 1];
+ break;
+
+ case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
+ buf[0] = (addr << 1) | 1;
+ rpec = i2c_smbus_partial_pec(partial, 1,
+ buf, data->block);
+ cpec = data->block[data->block[0] + 1];
+ break;
+
+ default:
+ cpec = rpec = 0;
+ break;
+ } /* switch */
+ if (rpec != cpec)
+ {
+ pr_debug("i2c-core: Bad PEC 0x%02x vs. 0x%02x\n",
+ rpec, cpec);
+ return(-1);
+ }
+ return(0);
+} /* i2c_smbus_check_pec */
+
+s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value)
+{
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ value, 0, I2C_SMBUS_QUICK, NULL));
+}
+
+s32 i2c_smbus_read_byte(struct i2c_client *client)
+{
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, 0, I2C_SMBUS_BYTE, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ return(0x0FF & data.byte);
+ }
+}
+
+s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value)
+{
+ union i2c_smbus_data data; /* only for PEC */
+
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, &data));
+}
+
+s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command)
+{
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command, I2C_SMBUS_BYTE_DATA, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ return(0x0FF & data.byte);
+ }
+}
+
+s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value)
+{
+ union i2c_smbus_data data;
+
+ data.byte = value;
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_BYTE_DATA, &data));
+}
+
+s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command)
+{
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command, I2C_SMBUS_WORD_DATA, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ return(0x0FFFF & data.word);
+ }
+}
+
+s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value)
+{
+ union i2c_smbus_data data;
+
+ data.word = value;
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_WORD_DATA, &data));
+}
+
+s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command,
+ u8 length, u8 *values)
+{
+ union i2c_smbus_data data;
+ int i;
+
+ if (length > I2C_SMBUS_BLOCK_MAX)
+ {
+ length = I2C_SMBUS_BLOCK_MAX;
+ }
+ for (i = 1; i <= length; i++)
+ {
+ data.block[i] = values[i - 1];
+ }
+ data.block[0] = length;
+ return(i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_BLOCK_DATA, &data));
+}
+
+/* Returns the number of read bytes */
+s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, u8 *values)
+{
+ union i2c_smbus_data data;
+ int i;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command,
+ I2C_SMBUS_I2C_BLOCK_DATA, &data))
+ {
+ return(-1);
+ }
+ else
+ {
+ for (i = 1; i <= data.block[0]; i++)
+ {
+ values[i - 1] = data.block[i];
+ }
+ return(data.block[0]);
+ }
+}
+
+/* Simulate a SMBus command using the i2c protocol
+ * No checking of parameters is done! */
+static s32 i2c_smbus_xfer_emulated(struct i2c_adapter *adapter, u16 addr,
+ unsigned short flags,
+ char read_write, u8 command, int size,
+ union i2c_smbus_data *data)
+{
+ /* So we need to generate a series of msgs. In the case of writing, we
+ * need to use only one message; when reading, we need two. We initialize
+ * most things with sane defaults, to keep the code below somewhat
+ * simpler. */
+ unsigned char msgbuf0[34];
+ unsigned char msgbuf1[34];
+ int num = read_write == I2C_SMBUS_READ ? 2 : 1;
+ struct i2c_msg msg[2] = { { addr, flags, 1, msgbuf0 },
+ { addr, flags | I2C_M_RD, 0, msgbuf1 } };
+ int i;
+
+ msgbuf0[0] = command;
+ switch (size)
+ {
+ case I2C_SMBUS_QUICK:
+ msg[0].len = 0;
+ /* Special case: The read/write field is used as data */
+ msg[0].flags = flags | (read_write == I2C_SMBUS_READ) ? I2C_M_RD : 0;
+ num = 1;
+ break;
+
+ case I2C_SMBUS_BYTE:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ /* Special case: only a read! */
+ msg[0].flags = I2C_M_RD | flags;
+ num = 1;
+ }
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ msg[1].len = 1;
+ }
+ else
+ {
+ msg[0].len = 2;
+ msgbuf0[1] = data->byte;
+ }
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ msg[1].len = 2;
+ }
+ else
+ {
+ msg[0].len = 3;
+ msgbuf0[1] = data->word & 0xff;
+ msgbuf0[2] = (data->word >> 8) & 0xff;
+ }
+ break;
+
+ case I2C_SMBUS_PROC_CALL:
+ num = 2; /* Special case */
+ read_write = I2C_SMBUS_READ;
+ msg[0].len = 3;
+ msg[1].len = 2;
+ msgbuf0[1] = data->word & 0xff;
+ msgbuf0[2] = (data->word >> 8) & 0xff;
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA:
+ case I2C_SMBUS_BLOCK_DATA_PEC:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ dev_err(&adapter->dev, "Block read not supported "
+ "under I2C emulation!\n");
+ return(-1);
+ }
+ else
+ {
+ msg[0].len = data->block[0] + 2;
+ if (msg[0].len > I2C_SMBUS_BLOCK_MAX + 2)
+ {
+ dev_err(&adapter->dev, "smbus_access called with "
+ "invalid block write size (%d)\n",
+ data->block[0]);
+ return(-1);
+ }
+ if (size == I2C_SMBUS_BLOCK_DATA_PEC)
+ {
+ (msg[0].len)++;
+ }
+ for (i = 1; i <= msg[0].len; i++)
+ {
+ msgbuf0[i] = data->block[i - 1];
+ }
+ }
+ break;
+
+ case I2C_SMBUS_BLOCK_PROC_CALL:
+ case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
+ dev_dbg(&adapter->dev, "Block process call not supported "
+ "under I2C emulation!\n");
+ return(-1);
+
+ case I2C_SMBUS_I2C_BLOCK_DATA:
+ if (read_write == I2C_SMBUS_READ)
+ {
+ msg[1].len = I2C_SMBUS_I2C_BLOCK_MAX;
+ }
+ else
+ {
+ msg[0].len = data->block[0] + 1;
+ if (msg[0].len > I2C_SMBUS_I2C_BLOCK_MAX + 1)
+ {
+ dev_err(&adapter->dev, "i2c_smbus_xfer_emulated called with "
+ "invalid block write size (%d)\n",
+ data->block[0]);
+ return(-1);
+ }
+ for (i = 1; i <= data->block[0]; i++)
+ {
+ msgbuf0[i] = data->block[i];
+ }
+ }
+ break;
+
+ default:
+ dev_err(&adapter->dev, "smbus_access called with invalid size (%d)\n",
+ size);
+ return(-1);
+ } /* switch */
+
+ if (i2c_transfer(adapter, msg, num) < 0)
+ {
+ return(-1);
+ }
+
+ if (read_write == I2C_SMBUS_READ)
+ {
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE:
+ data->byte = msgbuf0[0];
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ data->byte = msgbuf1[0];
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ case I2C_SMBUS_PROC_CALL:
+ data->word = msgbuf1[0] | (msgbuf1[1] << 8);
+ break;
+
+ case I2C_SMBUS_I2C_BLOCK_DATA:
+ /* fixed at 32 for now */
+ data->block[0] = I2C_SMBUS_I2C_BLOCK_MAX;
+ for (i = 0; i < I2C_SMBUS_I2C_BLOCK_MAX; i++)
+ {
+ data->block[i + 1] = msgbuf1[i];
+ }
+ break;
+ }
+ }
+ return(0);
+} /* i2c_smbus_xfer_emulated */
+
+
+s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, unsigned short flags,
+ char read_write, u8 command, int size,
+ union i2c_smbus_data *data)
+{
+ s32 res;
+ int swpec = 0;
+ u8 partial = 0;
+
+ flags &= I2C_M_TEN | I2C_CLIENT_PEC;
+ if ((flags & I2C_CLIENT_PEC) &&
+ !(i2c_check_functionality(adapter, I2C_FUNC_SMBUS_HWPEC_CALC)))
+ {
+ swpec = 1;
+ if (read_write == I2C_SMBUS_READ &&
+ size == I2C_SMBUS_BLOCK_DATA)
+ {
+ size = I2C_SMBUS_BLOCK_DATA_PEC;
+ }
+ else if (size == I2C_SMBUS_PROC_CALL)
+ {
+ size = I2C_SMBUS_PROC_CALL_PEC;
+ }
+ else if (size == I2C_SMBUS_BLOCK_PROC_CALL)
+ {
+ i2c_smbus_add_pec(addr, command,
+ I2C_SMBUS_BLOCK_DATA, data);
+ partial = data->block[data->block[0] + 1];
+ size = I2C_SMBUS_BLOCK_PROC_CALL_PEC;
+ }
+ else if (read_write == I2C_SMBUS_WRITE &&
+ size != I2C_SMBUS_QUICK &&
+ size != I2C_SMBUS_I2C_BLOCK_DATA)
+ {
+ size = i2c_smbus_add_pec(addr, command, size, data);
+ }
+ }
+
+ if (adapter->algo->smbus_xfer)
+ {
+ down(&adapter->bus_lock);
+ res = adapter->algo->smbus_xfer(adapter, addr, flags, read_write,
+ command, size, data);
+ up(&adapter->bus_lock);
+ }
+ else
+ {
+ res = i2c_smbus_xfer_emulated(adapter, addr, flags, read_write,
+ command, size, data);
+ }
+
+ if (res >= 0 && swpec &&
+ size != I2C_SMBUS_QUICK && size != I2C_SMBUS_I2C_BLOCK_DATA &&
+ (read_write == I2C_SMBUS_READ || size == I2C_SMBUS_PROC_CALL_PEC ||
+ size == I2C_SMBUS_BLOCK_PROC_CALL_PEC))
+ {
+ if (i2c_smbus_check_pec(addr, command, size, partial, data))
+ {
+ return(-1);
+ }
+ }
+ return(res);
+} /* i2c_smbus_xfer */
+
+
+/* Next four are needed by i2c-isa */
+EXPORT_SYMBOL_GPL(i2c_adapter_dev_release);
+EXPORT_SYMBOL_GPL(i2c_adapter_driver);
+EXPORT_SYMBOL_GPL(i2c_adapter_class);
+EXPORT_SYMBOL_GPL(i2c_bus_type);
+
+EXPORT_SYMBOL(i2c_add_adapter);
+EXPORT_SYMBOL(i2c_del_adapter);
+EXPORT_SYMBOL(i2c_add_driver);
+EXPORT_SYMBOL(i2c_del_driver);
+EXPORT_SYMBOL(i2c_attach_client);
+EXPORT_SYMBOL(i2c_detach_client);
+EXPORT_SYMBOL(i2c_use_client);
+EXPORT_SYMBOL(i2c_release_client);
+EXPORT_SYMBOL(i2c_clients_command);
+EXPORT_SYMBOL(i2c_check_addr);
+
+EXPORT_SYMBOL(i2c_master_send);
+EXPORT_SYMBOL(i2c_master_recv);
+EXPORT_SYMBOL(i2c_control);
+EXPORT_SYMBOL(i2c_transfer);
+EXPORT_SYMBOL(i2c_get_adapter);
+EXPORT_SYMBOL(i2c_put_adapter);
+EXPORT_SYMBOL(i2c_probe);
+
+EXPORT_SYMBOL(i2c_smbus_xfer);
+EXPORT_SYMBOL(i2c_smbus_write_quick);
+EXPORT_SYMBOL(i2c_smbus_read_byte);
+EXPORT_SYMBOL(i2c_smbus_write_byte);
+EXPORT_SYMBOL(i2c_smbus_read_byte_data);
+EXPORT_SYMBOL(i2c_smbus_write_byte_data);
+EXPORT_SYMBOL(i2c_smbus_read_word_data);
+EXPORT_SYMBOL(i2c_smbus_write_word_data);
+EXPORT_SYMBOL(i2c_smbus_write_block_data);
+EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data);
+
+MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
+MODULE_DESCRIPTION("I2C-Bus main module");
+MODULE_LICENSE("GPL");
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.74.0/tests/expected/c/02100-i2c-core.c
new file mode 100644
index 00000000..df01ad5b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02100-i2c-core.c
@@ -0,0 +1,1393 @@
+/* i2c-core.c - a device driver for the iic-bus interface */
+/* ------------------------------------------------------------------------- */
+/* Copyright (C) 1995-99 Simon G. Vogl
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+/* ------------------------------------------------------------------------- */
+
+/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
+ All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
+ SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/idr.h>
+#include <linux/seq_file.h>
+#include <asm/uaccess.h>
+
+
+static LIST_HEAD(adapters);
+static LIST_HEAD(drivers);
+static DECLARE_MUTEX(core_lists);
+static DEFINE_IDR(i2c_adapter_idr);
+
+static int i2c_device_match(struct device *dev, struct device_driver *drv)
+ {
+ return 1;
+ }
+
+static int i2c_bus_suspend(struct device * dev, pm_message_t state)
+ {
+ int rc = 0;
+
+ if (dev->driver && dev->driver->suspend)
+ rc = dev->driver->suspend(dev, state, 0);
+
+ return rc;
+ }
+
+static int i2c_bus_resume(struct device * dev)
+ {
+ int rc = 0;
+
+ if (dev->driver && dev->driver->resume)
+ rc = dev->driver->resume(dev, 0);
+
+ return rc;
+ }
+
+struct bus_type i2c_bus_type = {
+ .name = "i2c",
+ .match = i2c_device_match,
+ .suspend = i2c_bus_suspend,
+ .resume = i2c_bus_resume,
+ };
+
+static int i2c_device_probe(struct device *dev)
+ {
+ return -ENODEV;
+ }
+
+static int i2c_device_remove(struct device *dev)
+ {
+ return 0;
+ }
+
+void i2c_adapter_dev_release(struct device *dev)
+ {
+ struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
+
+ complete(&adap->dev_released);
+ }
+
+struct device_driver i2c_adapter_driver = {
+ .name = "i2c_adapter",
+ .bus = &i2c_bus_type,
+ .probe = i2c_device_probe,
+ .remove = i2c_device_remove,
+ };
+
+static void i2c_adapter_class_dev_release(struct class_device *dev)
+ {
+ struct i2c_adapter *adap = class_dev_to_i2c_adapter(dev);
+
+ complete(&adap->class_dev_released);
+ }
+
+struct class i2c_adapter_class = {
+ .name = "i2c-adapter",
+ .release = &i2c_adapter_class_dev_release,
+ };
+
+static ssize_t show_adapter_name(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ struct i2c_adapter *adap = dev_to_i2c_adapter(dev);
+
+ return sprintf(buf, "%s\n", adap->name);
+ }
+
+static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL);
+
+
+static void i2c_client_release(struct device *dev)
+ {
+ struct i2c_client *client = to_i2c_client(dev);
+
+ complete(&client->released);
+ }
+
+static ssize_t show_client_name(struct device *dev, struct device_attribute *attr, char *buf)
+ {
+ struct i2c_client *client = to_i2c_client(dev);
+
+ return sprintf(buf, "%s\n", client->name);
+ }
+
+/*
+ * We can't use the DEVICE_ATTR() macro here as we want the same filename for a
+ * different type of a device. So beware if the DEVICE_ATTR() macro ever
+ * changes, this definition will also have to change.
+ */
+static struct device_attribute dev_attr_client_name = {
+ .attr = { .name = "name", .mode = S_IRUGO, .owner = THIS_MODULE },
+ .show = &show_client_name,
+ };
+
+
+/* ---------------------------------------------------
+ * registering functions
+ * ---------------------------------------------------
+ */
+
+/* -----
+ * i2c_add_adapter is called from within the algorithm layer,
+ * when a new hw adapter registers. A new device is register to be
+ * available for clients.
+ */
+int i2c_add_adapter(struct i2c_adapter *adap)
+ {
+ int id, res = 0;
+ struct list_head *item;
+ struct i2c_driver *driver;
+
+ down(&core_lists);
+
+ if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0)
+ {
+ res = -ENOMEM;
+ goto out_unlock;
+ }
+
+ res = idr_get_new(&i2c_adapter_idr, adap, &id);
+
+ if (res < 0)
+ {
+ if (res == -EAGAIN)
+ res = -ENOMEM;
+
+ goto out_unlock;
+ }
+
+ adap->nr = id & MAX_ID_MASK;
+ init_MUTEX(&adap->bus_lock);
+ init_MUTEX(&adap->clist_lock);
+ list_add_tail(&adap->list, &adapters);
+ INIT_LIST_HEAD(&adap->clients);
+
+ /* Add the adapter to the driver core.
+ * If the parent pointer is not set up,
+ * we add this adapter to the host bus.
+ */
+ if (adap->dev.parent == NULL)
+ adap->dev.parent = &platform_bus;
+
+ sprintf(adap->dev.bus_id, "i2c-%d", adap->nr);
+ adap->dev.driver = &i2c_adapter_driver;
+ adap->dev.release = &i2c_adapter_dev_release;
+ device_register(&adap->dev);
+ device_create_file(&adap->dev, &dev_attr_name);
+
+ /* Add this adapter to the i2c_adapter class */
+ memset(&adap->class_dev, 0x00, sizeof(struct class_device));
+ adap->class_dev.dev = &adap->dev;
+ adap->class_dev.class = &i2c_adapter_class;
+ strlcpy(adap->class_dev.class_id, adap->dev.bus_id, BUS_ID_SIZE);
+ class_device_register(&adap->class_dev);
+
+ dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
+
+ /* inform drivers of new adapters */
+ list_for_each(item, &drivers) {
+ driver = list_entry(item, struct i2c_driver, list);
+
+ if (driver->flags & I2C_DF_NOTIFY)
+ /* We ignore the return code; if it fails, too bad */
+ driver->attach_adapter(adap);
+ }
+
+out_unlock:
+ up(&core_lists);
+ return res;
+ }
+
+int i2c_del_adapter(struct i2c_adapter *adap)
+ {
+ struct list_head *item, *_n;
+ struct i2c_adapter *adap_from_list;
+ struct i2c_driver *driver;
+ struct i2c_client *client;
+ int res = 0;
+
+ down(&core_lists);
+
+ /* First make sure that this adapter was ever added */
+ list_for_each_entry(adap_from_list, &adapters, list) {
+ if (adap_from_list == adap)
+ break;
+ }
+
+ if (adap_from_list != adap)
+ {
+ pr_debug("i2c-core: attempting to delete unregistered "
+ "adapter [%s]\n", adap->name);
+ res = -EINVAL;
+ goto out_unlock;
+ }
+
+ list_for_each(item, &drivers) {
+ driver = list_entry(item, struct i2c_driver, list);
+
+ if (driver->detach_adapter)
+ if ((res = driver->detach_adapter(adap)))
+ {
+ dev_err(&adap->dev, "detach_adapter failed "
+ "for driver [%s]\n", driver->name);
+ goto out_unlock;
+ }
+ }
+
+ /* detach any active clients. This must be done first, because
+ * it can fail; in which case we give up. */
+ list_for_each_safe(item, _n, &adap->clients) {
+ client = list_entry(item, struct i2c_client, list);
+
+ /* detaching devices is unconditional of the set notify
+ * flag, as _all_ clients that reside on the adapter
+ * must be deleted, as this would cause invalid states.
+ */
+ if ((res = client->driver->detach_client(client)))
+ {
+ dev_err(&adap->dev, "detach_client failed for client "
+ "[%s] at address 0x%02x\n", client->name,
+ client->addr);
+ goto out_unlock;
+ }
+ }
+
+ /* clean up the sysfs representation */
+ init_completion(&adap->dev_released);
+ init_completion(&adap->class_dev_released);
+ class_device_unregister(&adap->class_dev);
+ device_remove_file(&adap->dev, &dev_attr_name);
+ device_unregister(&adap->dev);
+ list_del(&adap->list);
+
+ /* wait for sysfs to drop all references */
+ wait_for_completion(&adap->dev_released);
+ wait_for_completion(&adap->class_dev_released);
+
+ /* free dynamically allocated bus id */
+ idr_remove(&i2c_adapter_idr, adap->nr);
+
+ dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name);
+
+out_unlock:
+ up(&core_lists);
+ return res;
+ }
+
+/* -----
+ * What follows is the "upwards" interface: commands for talking to clients,
+ * which implement the functions to access the physical information of the
+ * chips.
+ */
+
+int i2c_add_driver(struct i2c_driver *driver)
+ {
+ struct list_head *item;
+ struct i2c_adapter *adapter;
+ int res = 0;
+
+ down(&core_lists);
+
+ /* add the driver to the list of i2c drivers in the driver core */
+ driver->driver.name = driver->name;
+ driver->driver.bus = &i2c_bus_type;
+ driver->driver.probe = i2c_device_probe;
+ driver->driver.remove = i2c_device_remove;
+
+ res = driver_register(&driver->driver);
+
+ if (res)
+ goto out_unlock;
+
+ list_add_tail(&driver->list, &drivers);
+ pr_debug("i2c-core: driver [%s] registered\n", driver->name);
+
+ /* now look for instances of driver on our adapters */
+ if (driver->flags & I2C_DF_NOTIFY)
+ {
+ list_for_each(item, &adapters) {
+ adapter = list_entry(item, struct i2c_adapter, list);
+ driver->attach_adapter(adapter);
+ }
+ }
+
+out_unlock:
+ up(&core_lists);
+ return res;
+ }
+
+int i2c_del_driver(struct i2c_driver *driver)
+ {
+ struct list_head *item1, *item2, *_n;
+ struct i2c_client *client;
+ struct i2c_adapter *adap;
+
+ int res = 0;
+
+ down(&core_lists);
+
+ /* Have a look at each adapter, if clients of this driver are still
+ * attached. If so, detach them to be able to kill the driver
+ * afterwards.
+ *
+ * Removing clients does not depend on the notify flag, else
+ * invalid operation might (will!) result, when using stale client
+ * pointers.
+ */
+ list_for_each(item1, &adapters) {
+ adap = list_entry(item1, struct i2c_adapter, list);
+
+ if (driver->detach_adapter)
+ {
+ if ((res = driver->detach_adapter(adap)))
+ {
+ dev_err(&adap->dev, "detach_adapter failed "
+ "for driver [%s]\n", driver->name);
+ goto out_unlock;
+ }
+ }
+ else
+ {
+ list_for_each_safe(item2, _n, &adap->clients) {
+ client = list_entry(item2, struct i2c_client, list);
+
+ if (client->driver != driver)
+ continue;
+
+ dev_dbg(&adap->dev, "detaching client [%s] "
+ "at 0x%02x\n", client->name,
+ client->addr);
+
+ if ((res = driver->detach_client(client)))
+ {
+ dev_err(&adap->dev, "detach_client "
+ "failed for client [%s] at "
+ "0x%02x\n", client->name,
+ client->addr);
+ goto out_unlock;
+ }
+ }
+ }
+ }
+
+ driver_unregister(&driver->driver);
+ list_del(&driver->list);
+ pr_debug("i2c-core: driver [%s] unregistered\n", driver->name);
+
+out_unlock:
+ up(&core_lists);
+ return 0;
+ }
+
+static int __i2c_check_addr(struct i2c_adapter *adapter, unsigned int addr)
+ {
+ struct list_head *item;
+ struct i2c_client *client;
+
+ list_for_each(item, &adapter->clients) {
+ client = list_entry(item, struct i2c_client, list);
+
+ if (client->addr == addr)
+ return -EBUSY;
+ }
+ return 0;
+ }
+
+int i2c_check_addr(struct i2c_adapter *adapter, int addr)
+ {
+ int rval;
+
+ down(&adapter->clist_lock);
+ rval = __i2c_check_addr(adapter, addr);
+ up(&adapter->clist_lock);
+
+ return rval;
+ }
+
+int i2c_attach_client(struct i2c_client *client)
+ {
+ struct i2c_adapter *adapter = client->adapter;
+
+ down(&adapter->clist_lock);
+
+ if (__i2c_check_addr(client->adapter, client->addr))
+ {
+ up(&adapter->clist_lock);
+ return -EBUSY;
+ }
+
+ list_add_tail(&client->list, &adapter->clients);
+ up(&adapter->clist_lock);
+
+ if (adapter->client_register)
+ {
+ if (adapter->client_register(client))
+ {
+ dev_dbg(&adapter->dev, "client_register "
+ "failed for client [%s] at 0x%02x\n",
+ client->name, client->addr);
+ }
+ }
+
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ client->usage_count = 0;
+
+ client->dev.parent = &client->adapter->dev;
+ client->dev.driver = &client->driver->driver;
+ client->dev.bus = &i2c_bus_type;
+ client->dev.release = &i2c_client_release;
+
+ snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),
+ "%d-%04x", i2c_adapter_id(adapter), client->addr);
+ dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n",
+ client->name, client->dev.bus_id);
+ device_register(&client->dev);
+ device_create_file(&client->dev, &dev_attr_client_name);
+
+ return 0;
+ }
+
+int i2c_detach_client(struct i2c_client *client)
+ {
+ struct i2c_adapter *adapter = client->adapter;
+ int res = 0;
+
+ if ((client->flags & I2C_CLIENT_ALLOW_USE)
+ && (client->usage_count > 0))
+ {
+ dev_warn(&client->dev, "Client [%s] still busy, "
+ "can't detach\n", client->name);
+ return -EBUSY;
+ }
+
+ if (adapter->client_unregister)
+ {
+ res = adapter->client_unregister(client);
+
+ if (res)
+ {
+ dev_err(&client->dev,
+ "client_unregister [%s] failed, "
+ "client not detached\n", client->name);
+ goto out;
+ }
+ }
+
+ down(&adapter->clist_lock);
+ list_del(&client->list);
+ init_completion(&client->released);
+ device_remove_file(&client->dev, &dev_attr_client_name);
+ device_unregister(&client->dev);
+ up(&adapter->clist_lock);
+ wait_for_completion(&client->released);
+
+out:
+ return res;
+ }
+
+static int i2c_inc_use_client(struct i2c_client *client)
+ {
+
+ if (!try_module_get(client->driver->owner))
+ return -ENODEV;
+
+ if (!try_module_get(client->adapter->owner))
+ {
+ module_put(client->driver->owner);
+ return -ENODEV;
+ }
+
+ return 0;
+ }
+
+static void i2c_dec_use_client(struct i2c_client *client)
+ {
+ module_put(client->driver->owner);
+ module_put(client->adapter->owner);
+ }
+
+int i2c_use_client(struct i2c_client *client)
+ {
+ int ret;
+
+ ret = i2c_inc_use_client(client);
+
+ if (ret)
+ return ret;
+
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ if (client->flags & I2C_CLIENT_ALLOW_MULTIPLE_USE)
+ client->usage_count++;
+ else if (client->usage_count > 0)
+ goto busy;
+ else
+ client->usage_count++;
+ }
+
+ return 0;
+busy:
+ i2c_dec_use_client(client);
+ return -EBUSY;
+ }
+
+int i2c_release_client(struct i2c_client *client)
+ {
+ if (client->flags & I2C_CLIENT_ALLOW_USE)
+ {
+ if (client->usage_count > 0)
+ client->usage_count--;
+ else
+ {
+ pr_debug("i2c-core: %s used one too many times\n",
+ __FUNCTION__);
+ return -EPERM;
+ }
+ }
+
+ i2c_dec_use_client(client);
+
+ return 0;
+ }
+
+void i2c_clients_command(struct i2c_adapter *adap, unsigned int cmd, void *arg)
+ {
+ struct list_head *item;
+ struct i2c_client *client;
+
+ down(&adap->clist_lock);
+ list_for_each(item, &adap->clients) {
+ client = list_entry(item, struct i2c_client, list);
+
+ if (!try_module_get(client->driver->owner))
+ continue;
+
+ if (NULL != client->driver->command)
+ {
+ up(&adap->clist_lock);
+ client->driver->command(client, cmd, arg);
+ down(&adap->clist_lock);
+ }
+
+ module_put(client->driver->owner);
+ }
+ up(&adap->clist_lock);
+ }
+
+static int __init i2c_init(void)
+ {
+ int retval;
+
+ retval = bus_register(&i2c_bus_type);
+
+ if (retval)
+ return retval;
+
+ retval = driver_register(&i2c_adapter_driver);
+
+ if (retval)
+ return retval;
+
+ return class_register(&i2c_adapter_class);
+ }
+
+static void __exit i2c_exit(void)
+ {
+ class_unregister(&i2c_adapter_class);
+ driver_unregister(&i2c_adapter_driver);
+ bus_unregister(&i2c_bus_type);
+ }
+
+subsys_initcall(i2c_init);
+module_exit(i2c_exit);
+
+/* ----------------------------------------------------
+ * the functional interface to the i2c busses.
+ * ----------------------------------------------------
+ */
+
+int i2c_transfer(struct i2c_adapter * adap, struct i2c_msg *msgs, int num)
+ {
+ int ret;
+
+ if (adap->algo->master_xfer)
+ {
+#ifdef DEBUG
+
+ for (ret = 0; ret < num; ret++)
+ {
+ dev_dbg(&adap->dev, "master_xfer[%d] %c, addr=0x%02x, "
+ "len=%d\n", ret, msgs[ret].flags & I2C_M_RD ?
+ 'R' : 'W', msgs[ret].addr, msgs[ret].len);
+ }
+
+#endif
+
+ down(&adap->bus_lock);
+ ret = adap->algo->master_xfer(adap, msgs, num);
+ up(&adap->bus_lock);
+
+ return ret;
+ }
+ else
+ {
+ dev_dbg(&adap->dev, "I2C level transfers not supported\n");
+ return -ENOSYS;
+ }
+ }
+
+int i2c_master_send(struct i2c_client *client, const char *buf, int count)
+ {
+ int ret;
+ struct i2c_adapter *adap = client->adapter;
+ struct i2c_msg msg;
+
+ msg.addr = client->addr;
+ msg.flags = client->flags & I2C_M_TEN;
+ msg.len = count;
+ msg.buf = (char *)buf;
+
+ ret = i2c_transfer(adap, &msg, 1);
+
+ /* If everything went ok (i.e. 1 msg transmitted), return #bytes
+ transmitted, else error code. */
+ return (ret == 1) ? count : ret;
+ }
+
+int i2c_master_recv(struct i2c_client *client, char *buf, int count)
+ {
+ struct i2c_adapter *adap = client->adapter;
+ struct i2c_msg msg;
+ int ret;
+
+ msg.addr = client->addr;
+ msg.flags = client->flags & I2C_M_TEN;
+ msg.flags |= I2C_M_RD;
+ msg.len = count;
+ msg.buf = buf;
+
+ ret = i2c_transfer(adap, &msg, 1);
+
+ /* If everything went ok (i.e. 1 msg transmitted), return #bytes
+ transmitted, else error code. */
+ return (ret == 1) ? count : ret;
+ }
+
+int i2c_control(struct i2c_client *client,
+ unsigned int cmd, unsigned long arg)
+ {
+ int ret = 0;
+ struct i2c_adapter *adap = client->adapter;
+
+ dev_dbg(&client->adapter->dev, "i2c ioctl, cmd: 0x%x, arg: %#lx\n", cmd, arg);
+
+ switch (cmd)
+ {
+ case I2C_RETRIES:
+ adap->retries = arg;
+ break;
+
+ case I2C_TIMEOUT:
+ adap->timeout = arg;
+ break;
+
+ default:
+
+ if (adap->algo->algo_control != NULL)
+ ret = adap->algo->algo_control(adap, cmd, arg);
+ }
+
+ return ret;
+ }
+
+/* ----------------------------------------------------
+ * the i2c address scanning function
+ * Will not work for 10-bit addresses!
+ * ----------------------------------------------------
+ */
+static int i2c_probe_address(struct i2c_adapter *adapter, int addr, int kind,
+ int (*found_proc) (struct i2c_adapter *, int, int))
+ {
+ int err;
+
+ /* Make sure the address is valid */
+ if (addr < 0x03 || addr > 0x77)
+ {
+ dev_warn(&adapter->dev, "Invalid probe address 0x%02x\n",
+ addr);
+ return -EINVAL;
+ }
+
+ /* Skip if already in use */
+ if (i2c_check_addr(adapter, addr))
+ return 0;
+
+ /* Make sure there is something at this address, unless forced */
+ if (kind < 0)
+ {
+ if (i2c_smbus_xfer(adapter, addr, 0, 0, 0,
+ I2C_SMBUS_QUICK, NULL) < 0)
+ return 0;
+
+ /* prevent 24RF08 corruption */
+ if ((addr & ~0x0f) == 0x50)
+ i2c_smbus_xfer(adapter, addr, 0, 0, 0,
+ I2C_SMBUS_QUICK, NULL);
+ }
+
+ /* Finally call the custom detection function */
+ err = found_proc(adapter, addr, kind);
+
+ /* -ENODEV can be returned if there is a chip at the given address
+ but it isn't supported by this chip driver. We catch it here as
+ this isn't an error. */
+ return (err == -ENODEV) ? 0 : err;
+ }
+
+int i2c_probe(struct i2c_adapter *adapter,
+ struct i2c_client_address_data *address_data,
+ int (*found_proc) (struct i2c_adapter *, int, int))
+ {
+ int i, err;
+ int adap_id = i2c_adapter_id(adapter);
+
+ /* Forget it if we can't probe using SMBUS_QUICK */
+ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK))
+ return -1;
+
+ /* Force entries are done first, and are not affected by ignore
+ entries */
+ if (address_data->forces)
+ {
+ unsigned short **forces = address_data->forces;
+ int kind;
+
+ for (kind = 0; forces[kind]; kind++)
+ {
+ for (i = 0; forces[kind][i] != I2C_CLIENT_END;
+ i += 2)
+ {
+ if (forces[kind][i] == adap_id
+ || forces[kind][i] == ANY_I2C_BUS)
+ {
+ dev_dbg(&adapter->dev, "found force "
+ "parameter for adapter %d, "
+ "addr 0x%02x, kind %d\n",
+ adap_id, forces[kind][i + 1],
+ kind);
+ err = i2c_probe_address(adapter,
+ forces[kind][i + 1],
+ kind, found_proc);
+
+ if (err)
+ return err;
+ }
+ }
+ }
+ }
+
+ /* Probe entries are done second, and are not affected by ignore
+ entries either */
+ for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2)
+ {
+ if (address_data->probe[i] == adap_id
+ || address_data->probe[i] == ANY_I2C_BUS)
+ {
+ dev_dbg(&adapter->dev, "found probe parameter for "
+ "adapter %d, addr 0x%02x\n", adap_id,
+ address_data->probe[i + 1]);
+ err = i2c_probe_address(adapter,
+ address_data->probe[i + 1],
+ -1, found_proc);
+
+ if (err)
+ return err;
+ }
+ }
+
+ /* Normal entries are done last, unless shadowed by an ignore entry */
+ for (i = 0; address_data->normal_i2c[i] != I2C_CLIENT_END; i += 1)
+ {
+ int j, ignore;
+
+ ignore = 0;
+
+ for (j = 0; address_data->ignore[j] != I2C_CLIENT_END;
+ j += 2)
+ {
+ if ((address_data->ignore[j] == adap_id ||
+ address_data->ignore[j] == ANY_I2C_BUS)
+ && address_data->ignore[j + 1]
+ == address_data->normal_i2c[i])
+ {
+ dev_dbg(&adapter->dev, "found ignore "
+ "parameter for adapter %d, "
+ "addr 0x%02x\n", adap_id,
+ address_data->ignore[j + 1]);
+ }
+
+ ignore = 1;
+ break;
+ }
+
+ if (ignore)
+ continue;
+
+ dev_dbg(&adapter->dev, "found normal entry for adapter %d, "
+ "addr 0x%02x\n", adap_id,
+ address_data->normal_i2c[i]);
+ err = i2c_probe_address(adapter, address_data->normal_i2c[i],
+ -1, found_proc);
+
+ if (err)
+ return err;
+ }
+
+ return 0;
+ }
+
+struct i2c_adapter* i2c_get_adapter(int id)
+ {
+ struct i2c_adapter *adapter;
+
+ down(&core_lists);
+ adapter = (struct i2c_adapter *)idr_find(&i2c_adapter_idr, id);
+
+ if (adapter && !try_module_get(adapter->owner))
+ adapter = NULL;
+
+ up(&core_lists);
+ return adapter;
+ }
+
+void i2c_put_adapter(struct i2c_adapter *adap)
+ {
+ module_put(adap->owner);
+ }
+
+/* The SMBus parts */
+
+#define POLY (0x1070U << 3)
+static u8
+crc8(u16 data)
+ {
+ int i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (data & 0x8000)
+ data = data ^ POLY;
+
+ data = data << 1;
+ }
+
+ return (u8)(data >> 8);
+ }
+
+/* CRC over count bytes in the first array plus the bytes in the rest
+ array if it is non-null. rest[0] is the (length of rest) - 1
+ and is included. */
+static u8 i2c_smbus_partial_pec(u8 crc, int count, u8 *first, u8 *rest)
+ {
+ int i;
+
+ for (i = 0; i < count; i++)
+ crc = crc8((crc ^ first[i]) << 8);
+
+ if (rest != NULL)
+ for (i = 0; i <= rest[0]; i++)
+ crc = crc8((crc ^ rest[i]) << 8);
+
+ return crc;
+ }
+
+static u8 i2c_smbus_pec(int count, u8 *first, u8 *rest)
+ {
+ return i2c_smbus_partial_pec(0, count, first, rest);
+ }
+
+/* Returns new "size" (transaction type)
+ Note that we convert byte to byte_data and byte_data to word_data
+ rather than invent new xxx_PEC transactions. */
+static int i2c_smbus_add_pec(u16 addr, u8 command, int size,
+ union i2c_smbus_data *data)
+ {
+ u8 buf[3];
+
+ buf[0] = addr << 1;
+ buf[1] = command;
+
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE:
+ data->byte = i2c_smbus_pec(2, buf, NULL);
+ size = I2C_SMBUS_BYTE_DATA;
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ buf[2] = data->byte;
+ data->word = buf[2] ||
+ (i2c_smbus_pec(3, buf, NULL) << 8);
+ size = I2C_SMBUS_WORD_DATA;
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ /* unsupported */
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA:
+ data->block[data->block[0] + 1] =
+ i2c_smbus_pec(2, buf, data->block);
+ size = I2C_SMBUS_BLOCK_DATA_PEC;
+ break;
+ }
+
+ return size;
+ }
+
+static int i2c_smbus_check_pec(u16 addr, u8 command, int size, u8 partial,
+ union i2c_smbus_data *data)
+ {
+ u8 buf[3], rpec, cpec;
+
+ buf[1] = command;
+
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE_DATA:
+ buf[0] = (addr << 1) | 1;
+ cpec = i2c_smbus_pec(2, buf, NULL);
+ rpec = data->byte;
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ buf[0] = (addr << 1) | 1;
+ buf[2] = data->word & 0xff;
+ cpec = i2c_smbus_pec(3, buf, NULL);
+ rpec = data->word >> 8;
+ break;
+
+ case I2C_SMBUS_WORD_DATA_PEC:
+ /* unsupported */
+ cpec = rpec = 0;
+ break;
+
+ case I2C_SMBUS_PROC_CALL_PEC:
+ /* unsupported */
+ cpec = rpec = 0;
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA_PEC:
+ buf[0] = (addr << 1);
+ buf[2] = (addr << 1) | 1;
+ cpec = i2c_smbus_pec(3, buf, data->block);
+ rpec = data->block[data->block[0] + 1];
+ break;
+
+ case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
+ buf[0] = (addr << 1) | 1;
+ rpec = i2c_smbus_partial_pec(partial, 1,
+ buf, data->block);
+ cpec = data->block[data->block[0] + 1];
+ break;
+
+ default:
+ cpec = rpec = 0;
+ break;
+ }
+
+ if (rpec != cpec)
+ {
+ pr_debug("i2c-core: Bad PEC 0x%02x vs. 0x%02x\n",
+ rpec, cpec);
+ return -1;
+ }
+
+ return 0;
+ }
+
+s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value)
+ {
+ return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ value, 0, I2C_SMBUS_QUICK, NULL);
+ }
+
+s32 i2c_smbus_read_byte(struct i2c_client *client)
+ {
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, 0, I2C_SMBUS_BYTE, &data))
+ return -1;
+ else
+ return 0x0FF & data.byte;
+ }
+
+s32 i2c_smbus_write_byte(struct i2c_client *client, u8 value)
+ {
+ union i2c_smbus_data data; /* only for PEC */
+
+ return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, &data);
+ }
+
+s32 i2c_smbus_read_byte_data(struct i2c_client *client, u8 command)
+ {
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command, I2C_SMBUS_BYTE_DATA, &data))
+ return -1;
+ else
+ return 0x0FF & data.byte;
+ }
+
+s32 i2c_smbus_write_byte_data(struct i2c_client *client, u8 command, u8 value)
+ {
+ union i2c_smbus_data data;
+
+ data.byte = value;
+ return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_BYTE_DATA, &data);
+ }
+
+s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command)
+ {
+ union i2c_smbus_data data;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command, I2C_SMBUS_WORD_DATA, &data))
+ return -1;
+ else
+ return 0x0FFFF & data.word;
+ }
+
+s32 i2c_smbus_write_word_data(struct i2c_client *client, u8 command, u16 value)
+ {
+ union i2c_smbus_data data;
+
+ data.word = value;
+ return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_WORD_DATA, &data);
+ }
+
+s32 i2c_smbus_write_block_data(struct i2c_client *client, u8 command,
+ u8 length, u8 *values)
+ {
+ union i2c_smbus_data data;
+ int i;
+
+ if (length > I2C_SMBUS_BLOCK_MAX)
+ length = I2C_SMBUS_BLOCK_MAX;
+
+ for (i = 1; i <= length; i++)
+ data.block[i] = values[i - 1];
+
+ data.block[0] = length;
+ return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_WRITE, command,
+ I2C_SMBUS_BLOCK_DATA, &data);
+ }
+
+/* Returns the number of read bytes */
+s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, u8 command, u8 *values)
+ {
+ union i2c_smbus_data data;
+ int i;
+
+ if (i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+ I2C_SMBUS_READ, command,
+ I2C_SMBUS_I2C_BLOCK_DATA, &data))
+ return -1;
+ else
+ {
+ for (i = 1; i <= data.block[0]; i++)
+ values[i - 1] = data.block[i];
+
+ return data.block[0];
+ }
+ }
+
+/* Simulate a SMBus command using the i2c protocol
+ No checking of parameters is done! */
+static s32 i2c_smbus_xfer_emulated(struct i2c_adapter * adapter, u16 addr,
+ unsigned short flags,
+ char read_write, u8 command, int size,
+ union i2c_smbus_data * data)
+ {
+ /* So we need to generate a series of msgs. In the case of writing, we
+ need to use only one message; when reading, we need two. We initialize
+ most things with sane defaults, to keep the code below somewhat
+ simpler. */
+ unsigned char msgbuf0[34];
+ unsigned char msgbuf1[34];
+ int num = read_write == I2C_SMBUS_READ ? 2 : 1;
+ struct i2c_msg msg[2] = { { addr, flags, 1, msgbuf0 },
+ { addr, flags | I2C_M_RD, 0, msgbuf1 } };
+ int i;
+
+ msgbuf0[0] = command;
+
+ switch (size)
+ {
+ case I2C_SMBUS_QUICK:
+ msg[0].len = 0;
+ /* Special case: The read/write field is used as data */
+ msg[0].flags = flags | (read_write == I2C_SMBUS_READ) ? I2C_M_RD : 0;
+ num = 1;
+ break;
+
+ case I2C_SMBUS_BYTE:
+
+ if (read_write == I2C_SMBUS_READ)
+ {
+ /* Special case: only a read! */
+ msg[0].flags = I2C_M_RD | flags;
+ num = 1;
+ }
+
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+
+ if (read_write == I2C_SMBUS_READ)
+ msg[1].len = 1;
+ else
+ {
+ msg[0].len = 2;
+ msgbuf0[1] = data->byte;
+ }
+
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+
+ if (read_write == I2C_SMBUS_READ)
+ msg[1].len = 2;
+ else
+ {
+ msg[0].len = 3;
+ msgbuf0[1] = data->word & 0xff;
+ msgbuf0[2] = (data->word >> 8) & 0xff;
+ }
+
+ break;
+
+ case I2C_SMBUS_PROC_CALL:
+ num = 2; /* Special case */
+ read_write = I2C_SMBUS_READ;
+ msg[0].len = 3;
+ msg[1].len = 2;
+ msgbuf0[1] = data->word & 0xff;
+ msgbuf0[2] = (data->word >> 8) & 0xff;
+ break;
+
+ case I2C_SMBUS_BLOCK_DATA:
+ case I2C_SMBUS_BLOCK_DATA_PEC:
+
+ if (read_write == I2C_SMBUS_READ)
+ {
+ dev_err(&adapter->dev, "Block read not supported "
+ "under I2C emulation!\n");
+ return -1;
+ }
+ else
+ {
+ msg[0].len = data->block[0] + 2;
+
+ if (msg[0].len > I2C_SMBUS_BLOCK_MAX + 2)
+ {
+ dev_err(&adapter->dev, "smbus_access called with "
+ "invalid block write size (%d)\n",
+ data->block[0]);
+ return -1;
+ }
+
+ if (size == I2C_SMBUS_BLOCK_DATA_PEC)
+ (msg[0].len)++;
+
+ for (i = 1; i <= msg[0].len; i++)
+ msgbuf0[i] = data->block[i - 1];
+ }
+
+ break;
+
+ case I2C_SMBUS_BLOCK_PROC_CALL:
+ case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
+ dev_dbg(&adapter->dev, "Block process call not supported "
+ "under I2C emulation!\n");
+ return -1;
+
+ case I2C_SMBUS_I2C_BLOCK_DATA:
+
+ if (read_write == I2C_SMBUS_READ)
+ msg[1].len = I2C_SMBUS_I2C_BLOCK_MAX;
+ else
+ {
+ msg[0].len = data->block[0] + 1;
+
+ if (msg[0].len > I2C_SMBUS_I2C_BLOCK_MAX + 1)
+ {
+ dev_err(&adapter->dev, "i2c_smbus_xfer_emulated called with "
+ "invalid block write size (%d)\n",
+ data->block[0]);
+ return -1;
+ }
+
+ for (i = 1; i <= data->block[0]; i++)
+ msgbuf0[i] = data->block[i];
+ }
+
+ break;
+
+ default:
+ dev_err(&adapter->dev, "smbus_access called with invalid size (%d)\n",
+ size);
+ return -1;
+ }
+
+ if (i2c_transfer(adapter, msg, num) < 0)
+ return -1;
+
+ if (read_write == I2C_SMBUS_READ)
+ switch (size)
+ {
+ case I2C_SMBUS_BYTE:
+ data->byte = msgbuf0[0];
+ break;
+
+ case I2C_SMBUS_BYTE_DATA:
+ data->byte = msgbuf1[0];
+ break;
+
+ case I2C_SMBUS_WORD_DATA:
+ case I2C_SMBUS_PROC_CALL:
+ data->word = msgbuf1[0] | (msgbuf1[1] << 8);
+ break;
+
+ case I2C_SMBUS_I2C_BLOCK_DATA:
+ /* fixed at 32 for now */
+ data->block[0] = I2C_SMBUS_I2C_BLOCK_MAX;
+
+ for (i = 0; i < I2C_SMBUS_I2C_BLOCK_MAX; i++)
+ data->block[i + 1] = msgbuf1[i];
+
+ break;
+ }
+
+ return 0;
+ }
+
+s32 i2c_smbus_xfer(struct i2c_adapter * adapter, u16 addr, unsigned short flags,
+ char read_write, u8 command, int size,
+ union i2c_smbus_data * data)
+ {
+ s32 res;
+ int swpec = 0;
+ u8 partial = 0;
+
+ flags &= I2C_M_TEN | I2C_CLIENT_PEC;
+
+ if ((flags & I2C_CLIENT_PEC) &&
+ !(i2c_check_functionality(adapter, I2C_FUNC_SMBUS_HWPEC_CALC)))
+ {
+ swpec = 1;
+
+ if (read_write == I2C_SMBUS_READ &&
+ size == I2C_SMBUS_BLOCK_DATA)
+ size = I2C_SMBUS_BLOCK_DATA_PEC;
+ else if (size == I2C_SMBUS_PROC_CALL)
+ size = I2C_SMBUS_PROC_CALL_PEC;
+ else if (size == I2C_SMBUS_BLOCK_PROC_CALL)
+ {
+ i2c_smbus_add_pec(addr, command,
+ I2C_SMBUS_BLOCK_DATA, data);
+ partial = data->block[data->block[0] + 1];
+ size = I2C_SMBUS_BLOCK_PROC_CALL_PEC;
+ }
+ else if (read_write == I2C_SMBUS_WRITE &&
+ size != I2C_SMBUS_QUICK &&
+ size != I2C_SMBUS_I2C_BLOCK_DATA)
+ size = i2c_smbus_add_pec(addr, command, size, data);
+ }
+
+ if (adapter->algo->smbus_xfer)
+ {
+ down(&adapter->bus_lock);
+ res = adapter->algo->smbus_xfer(adapter, addr, flags, read_write,
+ command, size, data);
+ up(&adapter->bus_lock);
+ }
+ else
+ res = i2c_smbus_xfer_emulated(adapter, addr, flags, read_write,
+ command, size, data);
+
+ if (res >= 0 && swpec &&
+ size != I2C_SMBUS_QUICK && size != I2C_SMBUS_I2C_BLOCK_DATA &&
+ (read_write == I2C_SMBUS_READ || size == I2C_SMBUS_PROC_CALL_PEC ||
+ size == I2C_SMBUS_BLOCK_PROC_CALL_PEC))
+ if (i2c_smbus_check_pec(addr, command, size, partial, data))
+ return -1;
+
+ return res;
+ }
+
+/* Next four are needed by i2c-isa */
+EXPORT_SYMBOL_GPL(i2c_adapter_dev_release);
+EXPORT_SYMBOL_GPL(i2c_adapter_driver);
+EXPORT_SYMBOL_GPL(i2c_adapter_class);
+EXPORT_SYMBOL_GPL(i2c_bus_type);
+
+EXPORT_SYMBOL(i2c_add_adapter);
+EXPORT_SYMBOL(i2c_del_adapter);
+EXPORT_SYMBOL(i2c_add_driver);
+EXPORT_SYMBOL(i2c_del_driver);
+EXPORT_SYMBOL(i2c_attach_client);
+EXPORT_SYMBOL(i2c_detach_client);
+EXPORT_SYMBOL(i2c_use_client);
+EXPORT_SYMBOL(i2c_release_client);
+EXPORT_SYMBOL(i2c_clients_command);
+EXPORT_SYMBOL(i2c_check_addr);
+
+EXPORT_SYMBOL(i2c_master_send);
+EXPORT_SYMBOL(i2c_master_recv);
+EXPORT_SYMBOL(i2c_control);
+EXPORT_SYMBOL(i2c_transfer);
+EXPORT_SYMBOL(i2c_get_adapter);
+EXPORT_SYMBOL(i2c_put_adapter);
+EXPORT_SYMBOL(i2c_probe);
+
+EXPORT_SYMBOL(i2c_smbus_xfer);
+EXPORT_SYMBOL(i2c_smbus_write_quick);
+EXPORT_SYMBOL(i2c_smbus_read_byte);
+EXPORT_SYMBOL(i2c_smbus_write_byte);
+EXPORT_SYMBOL(i2c_smbus_read_byte_data);
+EXPORT_SYMBOL(i2c_smbus_write_byte_data);
+EXPORT_SYMBOL(i2c_smbus_read_word_data);
+EXPORT_SYMBOL(i2c_smbus_write_word_data);
+EXPORT_SYMBOL(i2c_smbus_write_block_data);
+EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data);
+
+MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
+MODULE_DESCRIPTION("I2C-Bus main module");
+MODULE_LICENSE("GPL");
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02101-comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02101-comment-indent.c
index 7c5f0f0c..7c5f0f0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02101-comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02101-comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02200-xml.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02200-xml.c
index 62bd81d0..62bd81d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02200-xml.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02200-xml.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02201-align-string.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02201-align-string.c
index 0b2cf25a..0b2cf25a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02201-align-string.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02201-align-string.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02300-preproc-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02300-preproc-if.c
index 8e20a744..8e20a744 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02300-preproc-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02300-preproc-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02301-preproc-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02301-preproc-if.c
index 0130e1f5..0130e1f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02301-preproc-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02301-preproc-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02302-nl-cont.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02302-nl-cont.c
index dfbb0c2d..dfbb0c2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02302-nl-cont.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02302-nl-cont.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02303-nl-cont2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02303-nl-cont2.c
index a0129423..a0129423 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02303-nl-cont2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02303-nl-cont2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02310-empty-for.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02310-empty-for.c
index 4bd43b09..4bd43b09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02310-empty-for.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02310-empty-for.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02311-pragma.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02311-pragma.c
index ec944697..ec944697 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02311-pragma.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02311-pragma.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02315-pp_ret.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02315-pp_ret.c
index 18a3d5cb..18a3d5cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02315-pp_ret.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02315-pp_ret.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02320-nl_create_one_liner.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02320-nl_create_one_liner.c
index 55974c3c..55974c3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02320-nl_create_one_liner.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02320-nl_create_one_liner.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02325-sort_include.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02325-sort_include.c
index 4f2b20bf..4f2b20bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02325-sort_include.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02325-sort_include.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02330-one_liners.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02330-one_liners.c
index 57d8ba44..57d8ba44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02330-one_liners.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02330-one_liners.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02410-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02410-ifdef-indent.c
index e71d8cf3..e71d8cf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02410-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02410-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02411-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02411-ifdef-indent.c
index bf39a98c..bf39a98c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02411-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02411-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02412-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02412-ifdef-indent.c
index 23b4dd37..23b4dd37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02412-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02412-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02413-ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02413-ifdef-indent.c
index 8738bbf7..8738bbf7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02413-ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02413-ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02414-whole_file_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02414-whole_file_ifdef.c
index c767bbf7..c767bbf7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02414-whole_file_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02414-whole_file_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02415-endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02415-endif.c
index c8b99a6a..c8b99a6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02415-endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02415-endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02416-cmt_nl_end.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02416-cmt_nl_end.c
index 56de21ec..56de21ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02416-cmt_nl_end.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02416-cmt_nl_end.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02421-cmt_multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02421-cmt_multi.c
index 61faac36..61faac36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02421-cmt_multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02421-cmt_multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02422-cmt_multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02422-cmt_multi.c
index bbdd79cd..bbdd79cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02422-cmt_multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02422-cmt_multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02423-cmt_multi_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02423-cmt_multi_utf8.c
index 05b01f84..05b01f84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02423-cmt_multi_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02423-cmt_multi_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02431-cmt_right_align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02431-cmt_right_align.c
index 315e5010..315e5010 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02431-cmt_right_align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02431-cmt_right_align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02432-cmt_right_align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02432-cmt_right_align.c
index eef43777..eef43777 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02432-cmt_right_align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02432-cmt_right_align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02440-string_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02440-string_utf8.c
index a473e1bf..a473e1bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02440-string_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02440-string_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02441-utf8-identifiers.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02441-utf8-identifiers.c
index 1dc39e9c..1dc39e9c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02441-utf8-identifiers.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02441-utf8-identifiers.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02451-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02451-nl_return_expr.c
index bf8621d5..bf8621d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02451-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02451-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02452-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02452-nl_return_expr.c
index 4dc23adf..4dc23adf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02452-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02452-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02453-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02453-nl_return_expr.c
index c917fb17..c917fb17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02453-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02453-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02454-nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02454-nl_return_expr.c
index 2e33d2b0..2e33d2b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02454-nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02454-nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02455-macro-returns.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02455-macro-returns.c
index dba84c56..dba84c56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02455-macro-returns.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02455-macro-returns.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02456-macro-returns.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02456-macro-returns.c
index 7cd29044..7cd29044 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02456-macro-returns.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02456-macro-returns.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02457-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02457-nl_before_return.c
index a396202f..a396202f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02457-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02457-nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02460-freebsd.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02460-freebsd.c
index 804c5ec7..804c5ec7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02460-freebsd.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02460-freebsd.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02486-doxy-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02486-doxy-comment.c
index e2a6c2c4..e2a6c2c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02486-doxy-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02486-doxy-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02487-doxy-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02487-doxy-comment.c
index 4abad3c8..4abad3c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02487-doxy-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02487-doxy-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02501-custom_types_ssl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02501-custom_types_ssl.c
index 3e28d2e3..3e28d2e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02501-custom_types_ssl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02501-custom_types_ssl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02502-custom_types_ssl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02502-custom_types_ssl.c
index 0df5ddad..0df5ddad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02502-custom_types_ssl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02502-custom_types_ssl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02504-align_keep_extra.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02504-align_keep_extra.c
index 985f428c..985f428c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02504-align_keep_extra.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02504-align_keep_extra.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02510-asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02510-asm.c
index 6609bf9b..6609bf9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/02510-asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02510-asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/07630-indent-vbrace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/07630-indent-vbrace.c
index a1344348..a1344348 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/07630-indent-vbrace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/07630-indent-vbrace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/08399-gh399.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/08399-gh399.c
index 780234ab..780234ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/08399-gh399.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/08399-gh399.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09588-sf588.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09588-sf588.c
index d1c5f1cc..d1c5f1cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09588-sf588.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09588-sf588.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09594-sf594.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09594-sf594.c
index 94a1973c..94a1973c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09594-sf594.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09594-sf594.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09601-sp_after_sparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09601-sp_after_sparen.c
index 93cbfea2..93cbfea2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09601-sp_after_sparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09601-sp_after_sparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09602-bug_671.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09602-bug_671.c
index a9d54ee8..a9d54ee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09602-bug_671.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09602-bug_671.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09603-indent_ternary-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09603-indent_ternary-1.c
index f9200886..f9200886 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09603-indent_ternary-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09603-indent_ternary-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09604-indent_ternary-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09604-indent_ternary-2.c
index e6d3576c..e6d3576c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09604-indent_ternary-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09604-indent_ternary-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09605-negative_value.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09605-negative_value.c
index 6399fbef..6399fbef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09605-negative_value.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09605-negative_value.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09606-extern.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09606-extern.c
index d43131fe..d43131fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09606-extern.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09606-extern.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09607-attribute.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09607-attribute.c
index 19e3a057..19e3a057 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09607-attribute.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09607-attribute.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09608-func_call_user2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09608-func_call_user2.c
index ee4e24d4..ee4e24d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09608-func_call_user2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09608-func_call_user2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09609-Issue_2279.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09609-Issue_2279.c
index 88c0ae84..88c0ae84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09609-Issue_2279.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09609-Issue_2279.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09610-bug_i_876.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09610-bug_i_876.c
index e1afece6..e1afece6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09610-bug_i_876.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09610-bug_i_876.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09611-bug_i_222.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09611-bug_i_222.c
index 4f0ded31..4f0ded31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09611-bug_i_222.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09611-bug_i_222.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09612-bug_1041.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09612-bug_1041.c
index 7c07615b..7c07615b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09612-bug_1041.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09612-bug_1041.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09613-i1413.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09613-i1413.c
index 4287ca86..4287ca86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09613-i1413.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09613-i1413.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09614-string_prefixes.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09614-string_prefixes.c
index e901c9ac..e901c9ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09614-string_prefixes.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09614-string_prefixes.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09615-i1564.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09615-i1564.c
index 2b37b25c..2b37b25c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09615-i1564.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09615-i1564.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09616-enum_comma_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09616-enum_comma_ifdef.c
index 95637aae..95637aae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09616-enum_comma_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09616-enum_comma_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09617-Issue_2360.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09617-Issue_2360.c
index 0489b0f9..0489b0f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09617-Issue_2360.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09617-Issue_2360.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09618-Issue_2360.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09618-Issue_2360.c
index 898c64e6..898c64e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09618-Issue_2360.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09618-Issue_2360.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09619-Issue_2411.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09619-Issue_2411.c
index 40244488..40244488 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09619-Issue_2411.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09619-Issue_2411.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09620-Issue_2640.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09620-Issue_2640.c
index ba25bcbe..ba25bcbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09620-Issue_2640.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09620-Issue_2640.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09621-pp-before-func-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09621-pp-before-func-def.c
index 948ce135..948ce135 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/09621-pp-before-func-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/09622-Issue_3356.c
new file mode 100644
index 00000000..7f1e0282
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/09622-Issue_3356.c
@@ -0,0 +1,13 @@
+/* PR middle-end/46360 */
+
+__attribute__((gnu_inline, always_inline)) extern inline char *
+strncpy (char *dest, const char *src, SIZE_TYPE len)
+{
+ return __builtin_strncpy (dest, src, len);
+}
+
+void
+foo (char *s)
+{
+ strncpy (s, "", 0);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10004-pragma_asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10004-pragma_asm.c
index 0e6b48d6..0e6b48d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10004-pragma_asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10004-pragma_asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10005-i1270.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10005-i1270.c
index 4831a47a..4831a47a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10005-i1270.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10005-i1270.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10006-bug_2331.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10006-bug_2331.c
index 67088d94..67088d94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10006-bug_2331.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10006-bug_2331.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10007-indent-macro-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10007-indent-macro-brace.c
index 192a399f..192a399f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10007-indent-macro-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10007-indent-macro-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10008-indent-macro-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10008-indent-macro-brace.c
index a54cd504..a54cd504 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10008-indent-macro-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10008-indent-macro-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10009-return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10009-return-compound-literal.c
index fad9a3f2..fad9a3f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10009-return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10009-return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10010-return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10010-return-compound-literal.c
index da33e2fd..da33e2fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10010-return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10010-return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10011-return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10011-return-compound-literal.c
index fad9a3f2..fad9a3f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10011-return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10011-return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10012-sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10012-sparen-indent.c
index d9ddbe06..d9ddbe06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10012-sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10012-sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10013-sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10013-sparen-indent.c
index b09a3102..b09a3102 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10013-sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10013-sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10014-sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10014-sparen-indent.c
index bf0ba8cf..bf0ba8cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10014-sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10014-sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10015-Issue_2845.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10015-Issue_2845.h
index 9f34b1dc..9f34b1dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/c/10015-Issue_2845.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/c/10016-Issue_3233.c
new file mode 100644
index 00000000..ccb53151
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10016-Issue_3233.c
@@ -0,0 +1,8 @@
+#include "config.h"
+
+#include "nautilus-previewer.h"
+
+#define PREVIEWER2_DBUS_IFACE "org.gnome.NautilusPreviewer2"
+#define PREVIEWER_DBUS_PATH "/org/gnome/NautilusPreviewer"
+
+static GDBusProxy *previewer_v2_proxy = NULL;
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.74.0/tests/expected/c/10017-double-sparen.c
new file mode 100644
index 00000000..6633006e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10017-double-sparen.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+int main() {
+ FILE *f;
+ if ( (f = fopen("/dev/null", "r")) )
+ puts("file is open");
+ return 0;
+}
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.74.0/tests/expected/c/10018-double-sparen.c
new file mode 100644
index 00000000..f77262fe
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10018-double-sparen.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+int main() {
+ FILE *f;
+ if ( (f = fopen("/dev/null", "r") ) )
+ puts("file is open");
+ return 0;
+}
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.74.0/tests/expected/c/10019-include-guard.h
new file mode 100644
index 00000000..e742dd4c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10019-include-guard.h
@@ -0,0 +1,10 @@
+#ifndef FOO
+ #define FOO
+
+ int foo();
+
+ #ifdef BAR
+ #define BAZ
+ int bar();
+ #endif
+#endif
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.74.0/tests/expected/c/10020-single_line_comment_after.c
new file mode 100644
index 00000000..527b3e80
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10020-single_line_comment_after.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main(void)
+{
+ printf("Hello "); // This comment is short.
+
+ printf("world!\n");
+ // This comment is long, so I put it on the next line and indented it.
+
+ return 0;
+}
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.74.0/tests/expected/c/10021-parenthesized_indirect_call.c
new file mode 100644
index 00000000..7fd4d573
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10021-parenthesized_indirect_call.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+
+void hello(void)
+{
+ printf("Hello world!\n");
+}
+
+void (*get_hello(void)) (void)
+{
+ return hello;
+}
+
+int main()
+{
+ (get_hello()) ();
+ return 0;
+}
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.74.0/tests/expected/c/10022-Issue_3269.c
new file mode 100644
index 00000000..6baef61c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10022-Issue_3269.c
@@ -0,0 +1,17 @@
+int main(void)
+{
+ int x = 0;
+
+ while ( x < 5 )
+ {
+ x++;
+ }
+
+ do
+ {
+ x++;
+ }
+ while ( x < 5 );
+
+ return 0;
+}
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.74.0/tests/expected/c/10023-Issue_3272.h
new file mode 100644
index 00000000..673c5a91
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10023-Issue_3272.h
@@ -0,0 +1,11 @@
+//#define INLINE_BUSY_WAIT(ticks) \
+//{ \
+// volatile size_t busy_wait_counter = 0; \
+// while (busy_wait_counter++ < ticks); \
+//}
+
+// #define INLINE_BUSY_WAIT(ticks) \
+// { \
+// volatile size_t busy_wait_counter = 0; \
+// while (busy_wait_counter++ < ticks); \
+// }
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.74.0/tests/expected/c/10024-Issue_3274.c
new file mode 100644
index 00000000..f8b9f789
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10024-Issue_3274.c
@@ -0,0 +1,5 @@
+#define FOO
+#define BAR()
+
+FOO
+BAR()
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10025-forever.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10025-forever.c
new file mode 100644
index 00000000..fc14ccf1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10025-forever.c
@@ -0,0 +1,5 @@
+int main(void)
+{
+ for( ;; )
+ continue;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10026-forever.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10026-forever.c
new file mode 100644
index 00000000..94dc8ce1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10026-forever.c
@@ -0,0 +1,5 @@
+int main(void)
+{
+ for(; ;)
+ continue;
+}
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.74.0/tests/expected/c/10027-Issue_3327.c
new file mode 100644
index 00000000..92ec0779
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10027-Issue_3327.c
@@ -0,0 +1,10 @@
+int main(void)
+{
+ #if 1
+ #pragma GCC warning "This code won't compile"
+ #define FOO 1
+ #line 7
+ #error
+ #endif
+ return 0;
+}
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.74.0/tests/expected/c/10028-Issue_3339.c
new file mode 100644
index 00000000..fa6872e4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10028-Issue_3339.c
@@ -0,0 +1,7 @@
+int main(int argc, char **argv)
+{
+ if (argc > 1)
+ return /*status*/0/*success*/;
+ else
+ return /*status*/ 1 /*failure*/;
+}
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.74.0/tests/expected/c/10029-Issue_3339.c
new file mode 100644
index 00000000..0b9b50e1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10029-Issue_3339.c
@@ -0,0 +1,7 @@
+int main(int argc, char **argv)
+{
+ if (argc > 1)
+ return /*status*/ 0 /*success*/;
+ else
+ return /*status*/ 1 /*failure*/;
+}
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.74.0/tests/expected/c/10030-Issue_3339.c
new file mode 100644
index 00000000..fb71b266
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10030-Issue_3339.c
@@ -0,0 +1,7 @@
+int main(int argc, char **argv)
+{
+ if (argc > 1)
+ return /*status*/0/*success*/;
+ else
+ return /*status*/1/*failure*/;
+}
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.74.0/tests/expected/c/10031-Issue_3342.c
new file mode 100644
index 00000000..986aab70
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10031-Issue_3342.c
@@ -0,0 +1,6 @@
+int main(int argc, char **argv)
+{
+ int x[argc * argc];
+ typedef int x_t[argc * argc];
+ return 0;
+}
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.74.0/tests/expected/c/10032-Issue_3345.c
new file mode 100644
index 00000000..eec63b28
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10032-Issue_3345.c
@@ -0,0 +1,8 @@
+int main(int argc, char **argv)
+{
+ int x = argc * argc;
+ int y[] = { argc * argc };
+ struct { int x; } z = { argc * argc };
+ enum { w = 5 * 5 };
+ return 0;
+}
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.74.0/tests/expected/c/10033-Issue_3343.c
new file mode 100644
index 00000000..6acdb70e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10033-Issue_3343.c
@@ -0,0 +1,10 @@
+int x[] =
+{
+ #if 1
+#define X1
+ #include "x1.c"
+ #else
+#define X2
+ #include "x2.c"
+ #endif
+};
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.74.0/tests/expected/c/10034-Issue_3343.c
new file mode 100644
index 00000000..31eddc22
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10034-Issue_3343.c
@@ -0,0 +1,10 @@
+int x[] =
+{
+ #if 1
+#define X1
+ #include "x1.c"
+ #else
+#define X2
+ #include "x2.c"
+ #endif
+};
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.74.0/tests/expected/c/10035-comment-indent.c
new file mode 100644
index 00000000..4486816e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10035-comment-indent.c
@@ -0,0 +1,40 @@
+/**
+ * This is your typical header comment
+ */
+int foo(int bar)
+{
+ int idx;
+ int res = 0; // trailing comment
+ // that spans two lines
+ for (idx = 1; idx < bar; idx++)
+ /* comment in virtual braces */
+ res += idx;
+
+ res *= idx; // some comment
+
+ // almost continued, but a NL in between
+
+// col1 comment in level 1
+// second comment
+ return(res);
+}
+
+// col1 comment in level 0
+// and another
+
+void foo()
+{
+ if( bar )
+ {
+ foo();
+ }
+ /*else if( bar2 )
+ {
+ foo2();
+ }
+ */else if( bar3 )
+ {
+ foo3();
+ }
+}
+
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.74.0/tests/expected/c/10036-comment-indent.c
new file mode 100644
index 00000000..9ac0677f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10036-comment-indent.c
@@ -0,0 +1,40 @@
+/**
+ * This is your typical header comment
+ */
+int foo(int bar)
+{
+ int idx;
+ int res = 0; // trailing comment
+ // that spans two lines
+ for (idx = 1; idx < bar; idx++)
+ /* comment in virtual braces */
+ res += idx;
+
+ res *= idx; // some comment
+
+ // almost continued, but a NL in between
+
+// col1 comment in level 1
+// second comment
+ return(res);
+}
+
+ // col1 comment in level 0
+ // and another
+
+void foo()
+{
+ if( bar )
+ {
+ foo();
+ }
+ /*else if( bar2 )
+ {
+ foo2();
+ }
+ */else if( bar3 )
+ {
+ foo3();
+ }
+}
+
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.74.0/tests/expected/c/10037-Issue_3362.c
new file mode 100644
index 00000000..abff8de4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10037-Issue_3362.c
@@ -0,0 +1,15 @@
+int main(int argc, char** argv)
+{
+ switch (argc)
+ {
+ case 1:
+ // return the number unchanged
+ return 1;
+ case 2:
+ // fall through
+ case 3:
+ return 5;
+ default:
+ return 10;
+ }
+}
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.74.0/tests/expected/c/10038-Issue_3362.c
new file mode 100644
index 00000000..7a8c08f3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10038-Issue_3362.c
@@ -0,0 +1,15 @@
+int main(int argc, char** argv)
+{
+ switch (argc)
+ {
+ case 1:
+ // return the number unchanged
+ return 1;
+ case 2:
+ // fall through
+ case 3:
+ return 5;
+ default:
+ return 10;
+ }
+}
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.74.0/tests/expected/c/10039-Issue_3370.c
new file mode 100644
index 00000000..2586a3b4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10039-Issue_3370.c
@@ -0,0 +1,17 @@
+int main(int argc, char** argv)
+{
+ switch (argc)
+ {
+ // If FOO or BAR is defined, treat it specially
+ #ifdef FOO
+ case FOO:
+ return 1;
+ #endif
+ #ifdef BAR
+ case BAR:
+ return 2;
+ #endif
+ default:
+ return 100;
+ }
+}
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.74.0/tests/expected/c/10040-Issue_3377.c
new file mode 100644
index 00000000..fc4aa694
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10040-Issue_3377.c
@@ -0,0 +1,9 @@
+int main(void)
+{
+ int i = 0;
+ while ( i < 10 )
+ i++;
+ for (i = 0; i < 10; i++)
+ continue;
+ return 0;
+}
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.74.0/tests/expected/c/10041-Issue_3351.c
new file mode 100644
index 00000000..592fc511
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10041-Issue_3351.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+void foo(unsigned flags, unsigned COMMENT) {
+ /* Discard file comment if any */
+ if ((flags & COMMENT) != 0) {
+ while (getchar() != 0) /* null */
+ {
+ }
+ }
+}
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.74.0/tests/expected/c/10042-Issue_3376.c
new file mode 100644
index 00000000..084e9c7d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10042-Issue_3376.c
@@ -0,0 +1,5 @@
+int *ptr;
+int *(*func1)(void (*param), void (*));
+int *(*func2)(void (*callback)(void), void (*)(void));
+int *(* func3)(void (* callback)(void), void (* )(void));
+int *(* func4)(void (* callback)(void), void (* )(void));
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.74.0/tests/expected/c/10043-Issue_3376.c
new file mode 100644
index 00000000..6874a984
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10043-Issue_3376.c
@@ -0,0 +1,5 @@
+int *ptr;
+int *(* func1)(void (*param), void (*));
+int *(* func2)(void (* callback)(void), void (*)(void));
+int *(* func3)(void (* callback)(void), void (* )(void));
+int *(* func4)(void (* callback)(void), void (* )(void));
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.74.0/tests/expected/c/10044-Issue_3376.c
new file mode 100644
index 00000000..b6ea490d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10044-Issue_3376.c
@@ -0,0 +1,5 @@
+int *ptr;
+int *(*func1)(void (*param), void (*));
+int *(*func2)(void (*callback)(void), void (*)(void));
+int *(*func3)(void (*callback)(void), void (* )(void));
+int *(*func4)(void (*callback)(void), void (* )(void));
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.74.0/tests/expected/c/10045-Issue_3376.c
new file mode 100644
index 00000000..fa3776db
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/10045-Issue_3376.c
@@ -0,0 +1,5 @@
+int *ptr;
+int *(* func1)(void (*param), void (*));
+int *(* func2)(void (* callback)(void), void (*)(void));
+int *(* func3)(void (* callback)(void), void (* )(void));
+int *(* func4)(void (* callback)(void), void (* )(void));
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/02102-indent-c.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02102-indent-c.cpp
index 70648397..70648397 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/02102-indent-c.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02102-indent-c.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/02103-output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02103-output.cpp
index ca003784..ca003784 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/02103-output.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/02103-output.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10000-621_this-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10000-621_this-spacing.cpp
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10000-621_this-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10000-621_this-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp
index c466b45c..c466b45c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10001-622_ifdef-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10002-623_caret-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10002-623_caret-spacing.cpp
index 5058ea4b..5058ea4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10002-623_caret-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10002-623_caret-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp
index 4160ecca..4160ecca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10003-633_decl-in-func-typedef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp
index bb6b14fb..bb6b14fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10004-634_extern-c-no-block.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10005-define-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10005-define-indentation.cpp
index 24370df9..24370df9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10005-define-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10005-define-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10006-dont-detab-strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10006-dont-detab-strings.cpp
index 11352d82..11352d82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10006-dont-detab-strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10006-dont-detab-strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 56f6852e..56f6852e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp
index dfd33ac7..dfd33ac7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10008-PR326_invalid-backslash-eol-csharp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp
index ea1c724e..ea1c724e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10009-STUCK_macro-difficulties.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10020-macro_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10020-macro_spaces.cpp
index 55a50766..55a50766 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10020-macro_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10020-macro_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10021-braces_align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10021-braces_align.cpp
index 40d966f5..40d966f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10021-braces_align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10021-braces_align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10022-foreach.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10022-foreach.cpp
index 2862e6ef..2862e6ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10022-foreach.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10022-foreach.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10023-for_auto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10023-for_auto.cpp
index 775031a5..775031a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10023-for_auto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10023-for_auto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10024-ifcomment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10024-ifcomment.cpp
index b41c5c6f..b41c5c6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10024-ifcomment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10024-ifcomment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10025-qtargs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10025-qtargs.cpp
index 01d94543..01d94543 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10025-qtargs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp
new file mode 100644
index 00000000..852360a4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10026-gcc_case_ellipsis.cpp
@@ -0,0 +1,15 @@
+void f(int i)
+{
+ switch(i)
+ {
+ case 1 ... 2:
+ {
+ break;
+ }
+ case 3 ... 5:
+ break;
+
+ default:
+ break
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10027-Issue_3058.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10027-Issue_3058.cpp
index 09e1dc92..09e1dc92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10027-Issue_3058.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp
new file mode 100644
index 00000000..852360a4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10028-gcc_case_ellipsis.cpp
@@ -0,0 +1,15 @@
+void f(int i)
+{
+ switch(i)
+ {
+ case 1 ... 2:
+ {
+ break;
+ }
+ case 3 ... 5:
+ break;
+
+ default:
+ break
+ }
+}
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.74.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp
new file mode 100644
index 00000000..e2d8ef8a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10029-gcc_case_ellipsis.cpp
@@ -0,0 +1,15 @@
+void f(int i)
+{
+ switch(i)
+ {
+ case 1 ... 2:
+ {
+ break;
+ }
+ case 3 ... 5:
+ break;
+
+ default:
+ break
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10047-UNI-1334.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10047-UNI-1334.cpp
index 9a856f91..9a856f91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10047-UNI-1334.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10047-UNI-1334.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10048-UNI-1335.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10048-UNI-1335.cpp
index 891b945a..891b945a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10048-UNI-1335.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10048-UNI-1335.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10050-UNI-1337.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10050-UNI-1337.cpp
index 59635c19..59635c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10050-UNI-1337.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10050-UNI-1337.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10052-UNI-1339.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10052-UNI-1339.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10052-UNI-1339.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10052-UNI-1339.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10053-UNI-1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10053-UNI-1340.cpp
index 2a96aa31..2a96aa31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10053-UNI-1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10053-UNI-1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10054-UNI-1344.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10054-UNI-1344.cpp
index 43c4429e..43c4429e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10054-UNI-1344.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10054-UNI-1344.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10056-UNI-1346.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10056-UNI-1346.cpp
index af875c3e..af875c3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10056-UNI-1346.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10056-UNI-1346.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10057-UNI-1347.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10057-UNI-1347.cpp
index ec8f350b..ec8f350b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10057-UNI-1347.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10057-UNI-1347.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10060-UNI-1350.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10060-UNI-1350.cpp
index 7353e915..7353e915 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10060-UNI-1350.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10060-UNI-1350.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10062-UNI-1356.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10062-UNI-1356.cpp
index c70ca61d..c70ca61d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10062-UNI-1356.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10062-UNI-1356.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10063-UNI-1358.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10063-UNI-1358.cpp
index 120aa9c4..120aa9c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10063-UNI-1358.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10063-UNI-1358.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10069-UNI-1980.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10069-UNI-1980.cpp
index 97940716..97940716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10069-UNI-1980.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10069-UNI-1980.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10070-UNI-1981.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10070-UNI-1981.cpp
index d4f74dc3..d4f74dc3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10070-UNI-1981.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10070-UNI-1981.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10071-UNI-1983.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10071-UNI-1983.cpp
index e7d9de6d..e7d9de6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10071-UNI-1983.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10071-UNI-1983.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10079-UNI-9650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10079-UNI-9650.cpp
index 0d6cdb46..0d6cdb46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10079-UNI-9650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10079-UNI-9650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10080-UNI-10496.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10080-UNI-10496.cpp
index 81122be8..81122be8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10080-UNI-10496.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10080-UNI-10496.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10100-issue_564.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10100-issue_564.cpp
index ac5fbef3..ac5fbef3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10100-issue_564.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10100-issue_564.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10101-issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10101-issue_574.cpp
index 6621d455..6621d455 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10101-issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10101-issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10102-issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10102-issue_574.cpp
index 0f3b7da3..0f3b7da3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10102-issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10102-issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10103-issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10103-issue_574.cpp
index b87e76fe..b87e76fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10103-issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10103-issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10566-issue_1752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10566-issue_1752.cpp
index 8e16cfa3..8e16cfa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/10566-issue_1752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/10566-issue_1752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/11000-UNI-12046.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/11000-UNI-12046.cpp
index 5ffc0da9..5ffc0da9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/11000-UNI-12046.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/11000-UNI-12046.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/20002-UNI-32657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20002-UNI-32657.cpp
index eb7655da..eb7655da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/20002-UNI-32657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20002-UNI-32657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/20011-UNI-38381.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20011-UNI-38381.cpp
index 701b55b2..701b55b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/20011-UNI-38381.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/20011-UNI-38381.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30000-cout.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30000-cout.cpp
index f099751f..f099751f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30000-cout.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30000-cout.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30001-alt_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30001-alt_tokens.cpp
index 02083b88..02083b88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30001-alt_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30001-alt_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30002-constructor.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30002-constructor.cpp
index f7cbb30d..f7cbb30d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30002-constructor.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30002-constructor.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30003-strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30003-strings.cpp
index acef8744..acef8744 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30003-strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30003-strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30010-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30010-class.h
index 2293d9c8..2293d9c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30010-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30010-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30011-misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30011-misc.cpp
index 9e3b8c5b..9e3b8c5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30011-misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30011-misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30012-misc2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30012-misc2.cpp
index c5febbac..c5febbac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30012-misc2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30012-misc2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30013-sim.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30013-sim.h
index 835ae666..835ae666 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30013-sim.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30013-sim.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30014-ctor-var.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30014-ctor-var.cpp
index 2551d8bd..2551d8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30014-ctor-var.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30014-ctor-var.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30015-exception.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30015-exception.cpp
index 75a4f97e..75a4f97e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30015-exception.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30015-exception.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30016-custom-open.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30016-custom-open.cpp
index 234f5591..234f5591 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30016-custom-open.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30016-custom-open.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30017-custom-open.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30017-custom-open.cpp
index 6acd92e5..6acd92e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30017-custom-open.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30017-custom-open.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30018-class-addr.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30018-class-addr.h
index 042579dc..042579dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30018-class-addr.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30018-class-addr.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30019-wacky-template.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30019-wacky-template.cpp
index cf6e5c87..cf6e5c87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30019-wacky-template.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30019-wacky-template.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30020-bool.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30020-bool.cpp
index 9f9e55b2..9f9e55b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30020-bool.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30020-bool.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30021-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30021-byref.cpp
index 87f6c44a..87f6c44a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30021-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30021-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30022-extern_c.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30022-extern_c.h
index a97d93b8..a97d93b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30022-extern_c.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30023-templates.cpp
new file mode 100644
index 00000000..960e0b82
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30023-templates.cpp
@@ -0,0 +1,197 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f<T>()
+
+class MyClass
+{
+ public:
+ std::map<int, bool> someData;
+ std::map<int, std::list<bool> > otherData;
+};
+
+void foo()
+{
+ List<byte> bob = new List<byte>();
+}
+
+A<B> foo;
+A<B, C> bar;
+A<B *> baz;
+A<B<C> > bay;
+
+void asd(void)
+{
+ A<B> foo;
+ A<B, C> bar;
+ A<B *> baz;
+ A<B<C> > bay;
+
+ if (a < b && b > c)
+ {
+ a = b < c > 0;
+ }
+ if (a<bar()> c)
+ {
+ }
+ a < up_lim() ? do_hi() : do_low;
+ a[a<b> c] = d;
+}
+
+template<typename T> class MyClass
+{
+}
+
+template<typename T>
+class MyClass
+{
+}
+
+template<typename A, typename B, typename C> class MyClass : myvar(0),
+ myvar2(0)
+{
+}
+
+template<typename A, typename B, typename C> class MyClass
+ : myvar(0),
+ myvar2(0)
+{
+}
+
+
+static int max_value()
+{
+ return((std::numeric_limits<int>::max)());
+}
+
+template<class Config_>
+priority_queue<Config_>::~priority_queue ()
+{
+}
+
+template<class T>
+T test(T a)
+{
+ return(a);
+}
+
+int main()
+{
+ int k;
+ int j;
+ h g<int>;
+
+ k = test<int> (j);
+ return(0);
+}
+
+template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass>
+class RotationMatrix
+ : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
+{
+ public:
+ RotationMatrix()
+ : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass<T, 3, 3>& other)
+ {
+ // do something
+ }
+};
+
+int main()
+{
+ MyClass<double, 3, 3, MyStorage> foo;
+}
+
+template<typename CharT, int N, typename Traits>
+inline std::basic_ostream<CharT, Traits>& FWStreamOut(std::basic_ostream<CharT, Traits>&os,
+ const W::S<CharT, N, Traits>&s)
+{
+ return(operator<<<CharT, N, Traits, char, std::char_traits<char> > (os, s));
+}
+
+struct foo
+{
+ type1<int&> bar;
+};
+struct foo
+{
+ type1<int const> bar;
+};
+
+
+template<int i> void f();
+template<int i> void g()
+{
+ f<i - 1>();
+ f<i>();
+ f<i + 1>();
+ f<bar()>();
+}
+void h()
+{
+ g<42>();
+}
+
+#include <vector>
+std::vector<int> A(2);
+std::vector<int> B;
+std::vector<int> C(2);
+std::vector<int> D;
+
+template<class T> struct X
+{
+ template<class U> void operator()(U);
+};
+
+template<class T> class Y {
+ template<class V> void f(V);
+};
+
+void (*foobar)(void) = NULL;
+std::vector<void (*)(void)> functions;
+
+#define MACRO(a) a
+template<typename = int> class X;
+MACRO(void f(X<>& x));
+void g(X<>& x);
+
+#include <vector>
+typedef std::vector<std::vector<int> > Table; // OK
+typedef std::vector<std::vector<bool> > Flags; // Error
+
+void func(List<B> =default_val1);
+void func(List<List<B> > =default_val2);
+
+BLAH<(3.14 >= 42)> blah;
+bool X = j<3> > 1;
+
+void foo()
+{
+ A<(X > Y)> a;
+
+ a = static_cast<List<B> >(ld);
+}
+
+template<int i> class X { /* ... */
+};
+X < 1 > 2 > x1; // Syntax error.
+X<(1 > 2)> x2; // Okay.
+
+template<class T> class Y { /* ... */
+};
+Y<X<1> > x3; // Okay, same as "Y<X<1> > x3;".
+Y<X<(6 >> 1)> > x4;
+
+
+template<typename T>
+int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30024-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30024-class-init.cpp
index 884d5c71..884d5c71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30024-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30024-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30025-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30025-class-init.cpp
index 703686ac..703686ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30025-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30025-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30026-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30026-byref.cpp
index 2534aa05..2534aa05 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30026-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30026-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30027-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30027-byref.cpp
index d0598697..d0598697 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30027-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30027-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30028-byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30028-byref.cpp
index 7a97856d..7a97856d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30028-byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30028-byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30029-init_align.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30029-init_align.h
index 085f838b..085f838b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30029-init_align.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30029-init_align.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30030-Timestamp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30030-Timestamp.h
index 998b7d6f..998b7d6f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30030-Timestamp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30030-Timestamp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30031-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30031-operator.cpp
index f17b865d..f17b865d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30031-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30031-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30032-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30032-operator.cpp
index cfa98ca1..cfa98ca1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30032-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30032-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30033-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30033-operator.cpp
index 976d919f..976d919f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30033-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30033-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30034-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30034-operator_proto.cpp
index 3e5af195..3e5af195 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30034-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30034-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30035-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30035-operator_proto.cpp
index 3824798c..3824798c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30035-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30035-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30036-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30036-operator.cpp
index b1468795..b1468795 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30036-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30036-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30037-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30037-operator_proto.cpp
index d5c7e8fc..d5c7e8fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30037-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30037-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30038-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30038-operator.cpp
index a1bfafe3..a1bfafe3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30038-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30038-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30039-operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30039-operator_proto.cpp
index 4ec0acf1..4ec0acf1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30039-operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30039-operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30040-nl-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30040-nl-class.h
index 9ccbcf75..9ccbcf75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30040-nl-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30040-nl-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30041-nl-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30041-nl-class.h
index 57e47625..57e47625 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30041-nl-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30041-nl-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30042-Issue_2020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30042-Issue_2020.cpp
index d618f922..d618f922 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30042-Issue_2020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30042-Issue_2020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30043-nl_func_call_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30043-nl_func_call_empty.cpp
index fbf89d16..fbf89d16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30043-nl_func_call_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30043-nl_func_call_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp
index 4495d667..4495d667 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30044-nl_func_call_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30045-nl_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30045-nl_func_decl.cpp
index 81d0a00e..81d0a00e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30045-nl_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30045-nl_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30046-nl_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30046-nl_func_decl.cpp
index 17aa59f0..17aa59f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30046-nl_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30046-nl_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp
index e8a947c9..e8a947c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30047-nl_func_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp
index 22f3c700..22f3c700 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30048-nl_func_def_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30049-nl_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30049-nl_func_call_paren.cpp
index 847b7037..847b7037 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30049-nl_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30049-nl_func_call_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30050-nl-namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30050-nl-namespace.h
index e515b479..e515b479 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30050-nl-namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30050-nl-namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30051-nl-namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30051-nl-namespace.h
index c51d75be..c51d75be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30051-nl-namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30051-nl-namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30052-try-catch-nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30052-try-catch-nl.cpp
index 410a735e..410a735e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30052-try-catch-nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30052-try-catch-nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30053-exception.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30053-exception.cpp
index 2c41efbf..2c41efbf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30053-exception.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30053-exception.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30054-Issue_2091.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30054-Issue_2091.cpp
index 6e32d683..6e32d683 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30054-Issue_2091.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30054-Issue_2091.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30055-nl_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30055-nl_func.cpp
index 142e6895..142e6895 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30055-nl_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30055-nl_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30056-nl_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30056-nl_func.cpp
index f930b703..f930b703 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30056-nl_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30056-nl_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30057-nl_inside_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30057-nl_inside_namespace.cpp
index 01486ebe..01486ebe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30057-nl_inside_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30057-nl_inside_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30058-nl_inside_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30058-nl_inside_namespace.cpp
index 01486ebe..01486ebe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30058-nl_inside_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30058-nl_inside_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30059-Issue_2186.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30059-Issue_2186.cpp
index 2c3081ea..2c3081ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30059-Issue_2186.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30059-Issue_2186.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30060-Issue_1734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30060-Issue_1734.cpp
index 31d08c29..31d08c29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30060-Issue_1734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30060-Issue_1734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30061-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30061-class-init.cpp
index 7ce41d09..7ce41d09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30061-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30061-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30062-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30062-class-init.cpp
index 53ce4a31..53ce4a31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30062-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30062-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30063-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30063-class-init.cpp
index ad278c90..ad278c90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30063-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30063-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30064-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30064-class-init.cpp
index c44bdfd3..c44bdfd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30064-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30064-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30065-Example.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30065-Example.h
index 1a868d10..1a868d10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30065-Example.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30065-Example.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30066-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30066-class-init.cpp
index 1fc8bb57..1fc8bb57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30066-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30066-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30067-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30067-nl_func_type_name.cpp
index a30a08e9..a30a08e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30067-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30067-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30068-nl_func_scope_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30068-nl_func_scope_name.cpp
index 1e4caa86..1e4caa86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30068-nl_func_scope_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30068-nl_func_scope_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30069-class-implementation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30069-class-implementation.cpp
index 18481338..18481338 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30069-class-implementation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30069-class-implementation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30070-nl_func_scope_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30070-nl_func_scope_name.cpp
index c14a06ed..c14a06ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30070-nl_func_scope_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30070-nl_func_scope_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30071-lineEndings-Mac.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30071-lineEndings-Mac.cpp
index 20fa083a..20fa083a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30071-lineEndings-Mac.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30071-lineEndings-Mac.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30072-lineEndings-Win.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30072-lineEndings-Win.cpp
index cdbf7653..cdbf7653 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30072-lineEndings-Win.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30072-lineEndings-Win.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30073-lineEndings-Unix.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30073-lineEndings-Unix.cpp
index 608952c0..608952c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30073-lineEndings-Unix.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30073-lineEndings-Unix.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30074-bom.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30074-bom.cpp
index 7ee7e7e6..7ee7e7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30074-bom.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30074-bom.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30075-goto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30075-goto.cpp
index 4cccfe2c..4cccfe2c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30075-goto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30075-goto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30076-Issue_2594.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30076-Issue_2594.cpp
index 240e19db..240e19db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30076-Issue_2594.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30076-Issue_2594.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30077-Issue_2596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30077-Issue_2596.cpp
index d2517e8b..d2517e8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30077-Issue_2596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30077-Issue_2596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30078-Issue_2672-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30078-Issue_2672-a.cpp
index d29d2c47..d29d2c47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30078-Issue_2672-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30078-Issue_2672-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30079-Issue_2672-b.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30079-Issue_2672-b.cpp
index f484d4ff..f484d4ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30079-Issue_2672-b.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30079-Issue_2672-b.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30080-nl_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30080-nl_brace_brace.cpp
index a9783697..a9783697 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30080-nl_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30080-nl_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30081-Issue_2383.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30081-Issue_2383.cpp
index 356fd9af..356fd9af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30081-Issue_2383.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30081-Issue_2383.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30082-Issue_931.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30082-Issue_931.cpp
index 76a6b856..76a6b856 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30082-Issue_931.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30082-Issue_931.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30083-Issue_995-do.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30083-Issue_995-do.cpp
index 2e84d7ce..2e84d7ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30083-Issue_995-do.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30083-Issue_995-do.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30084-Issue_1184.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30084-Issue_1184.cpp
index 848b1e03..848b1e03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30084-Issue_1184.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30084-Issue_1184.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30085-align_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30085-align_class.cpp
index 552d6947..552d6947 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30085-align_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30085-align_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30086-align_class-constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30086-align_class-constr.cpp
index f6082028..f6082028 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30086-align_class-constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30086-align_class-constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30087-Issue_1511.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30087-Issue_1511.cpp
index 2583c0e3..2583c0e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30087-Issue_1511.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30087-Issue_1511.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30088-Issue_2561.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30088-Issue_2561.cpp
index aa566966..aa566966 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30088-Issue_2561.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30088-Issue_2561.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30089-Issue_2281.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30089-Issue_2281.cpp
index e0d8727d..e0d8727d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30089-Issue_2281.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30089-Issue_2281.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30090-bug_488.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30090-bug_488.cpp
index 268d5ba4..268d5ba4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30090-bug_488.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30090-bug_488.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30091-bug_472.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30091-bug_472.cpp
index e48251fe..e48251fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30091-bug_472.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30091-bug_472.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30092-bug_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30092-bug_481.cpp
index 99d8c390..99d8c390 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30092-bug_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30092-bug_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30093-bug_484.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30093-bug_484.cpp
index 875ff3d2..875ff3d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30093-bug_484.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30093-bug_484.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30094-bug_495.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30094-bug_495.cpp
index d7db1238..d7db1238 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30094-bug_495.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30094-bug_495.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30095-bug_485.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30095-bug_485.cpp
index b5e7842c..b5e7842c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30095-bug_485.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30095-bug_485.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30096-bug_1854.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30096-bug_1854.cpp
index 29cc2774..29cc2774 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30096-bug_1854.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30096-bug_1854.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30097-issue_1946.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30097-issue_1946.cpp
index 9682da68..9682da68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30097-issue_1946.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30097-issue_1946.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30098-Issue_2692.cpp
index 4173ad5d..4173ad5d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2692.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30098-Issue_2692.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30099-bug_1127.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30099-bug_1127.cpp
index 0109baaf..0109baaf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30099-bug_1127.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30100-templates.cpp
new file mode 100644
index 00000000..e4dd89e5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30100-templates.cpp
@@ -0,0 +1,200 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f<T>()
+
+class MyClass
+{
+public:
+ std::map < int, bool > someData;
+ std::map < int, std::list < bool > > otherData;
+};
+
+void foo()
+{
+ List < byte > bob = new List<byte>();
+
+}
+
+A<B> foo;
+A<B,C> bar;
+A<B*> baz;
+A<B<C> > bay;
+
+void asd(void)
+{
+ A<B> foo;
+ A<B,C> bar;
+ A<B*> baz;
+ A<B<C> > bay;
+ if (a < b && b > c)
+ {
+ a = b < c > 0;
+ }
+ if (a < bar() > c)
+ {
+ }
+ a < up_lim() ? do_hi() : do_low;
+ a[ a<b> c] = d;
+}
+
+template<typename T>
+class MyClass
+{
+
+}
+
+template<typename T>
+class MyClass
+{
+}
+
+template<typename A, typename B, typename C>
+class MyClass : myvar(0),
+ myvar2(0)
+{
+
+}
+
+template<typename A, typename B, typename C>
+class MyClass
+ : myvar(0),
+ myvar2(0)
+{
+
+}
+
+
+static int max_value()
+{
+ return (std :: numeric_limits <int >:: max ) ();
+}
+
+template < class Config_ >
+priority_queue < Config_ > :: ~priority_queue () {
+
+}
+
+template<class T>
+T test(T a) {
+ return a;
+}
+
+int main() {
+ int k;
+ int j;
+ h g<int>;
+ k=test<int> (j);
+ return 0;
+}
+
+template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass>
+class RotationMatrix
+ : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
+{
+
+public:
+
+ RotationMatrix()
+ : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass<T, 3, 3 >& other)
+ {
+ // do something
+ }
+
+};
+
+int main()
+{
+ MyClass<double, 3, 3, MyStorage> foo;
+}
+
+template< typename CharT, int N, typename Traits >
+inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits>& os,
+ const W::S<CharT,N,Traits>& s)
+{
+ return operator << <CharT, N, Traits, char, std::char_traits<char> > ( os, s );
+}
+
+struct foo {
+ type1 < int& > bar;
+};
+struct foo {
+ type1 < int const > bar;
+};
+
+
+template <int i>
+void f();
+template <int i>
+void g() {
+ f<i - 1>();
+ f< i >();
+ f<i + 1>();
+ f<bar()>();
+}
+void h() {
+ g<42>();
+}
+
+#include <vector>
+std::vector<int> A(2);
+std::vector<int> B;
+std::vector<int> C(2);
+std::vector<int> D;
+
+template<class T>
+struct X { template<class U>
+ void operator ()(U); };
+
+template<class T>
+class Y { template<class V>
+ void f(V); };
+
+void (* foobar)(void) = NULL;
+std::vector<void (*)(void)> functions;
+
+#define MACRO( a ) a
+template < typename = int >
+class X;
+MACRO ( void f( X < >& x ) );
+void g( X < >& x );
+
+#include <vector>
+typedef std::vector<std::vector<int> > Table; // OK
+typedef std::vector<std::vector<bool> > Flags; // Error
+
+void func(List<B> = default_val1);
+void func(List<List<B> > = default_val2);
+
+BLAH<(3.14 >= 42)> blah;
+bool X = j<3> > 1;
+
+void foo()
+{
+ A<(X > Y)> a;
+ a = static_cast<List<B> >(ld);
+}
+
+template<int i>
+class X { /* ... */ };
+X < 1 > 2 > x1; // Syntax error.
+X<(1 > 2)> x2; // Okay.
+
+template<class T>
+class Y { /* ... */ };
+Y<X<1> > x3; // Okay, same as "Y<X<1> > x3;".
+Y<X<(6 >> 1)> > x4;
+
+
+template <typename T>
+int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30101-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30101-templates.cpp
new file mode 100644
index 00000000..78a60ebd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30101-templates.cpp
@@ -0,0 +1,182 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f<T>()
+
+class MyClass
+{
+public:
+ std::map < int, bool > someData;
+ std::map < int, std::list < bool > > otherData;
+};
+
+void foo()
+{
+ List < byte > bob = new List<byte>();
+
+}
+
+A<B> foo;
+A<B,C> bar;
+A<B*> baz;
+A<B<C> > bay;
+
+void asd(void)
+{
+ A<B> foo;
+ A<B,C> bar;
+ A<B*> baz;
+ A<B<C> > bay;
+ if (a < b && b > c)
+ {
+ a = b < c > 0;
+ }
+ if (a < bar() > c)
+ {
+ }
+ a < up_lim() ? do_hi() : do_low;
+ a[ a<b> c] = d;
+}
+
+template<typename T> class MyClass
+{
+
+}
+
+template<typename T> class MyClass
+{
+}
+
+template<typename A, typename B, typename C> class MyClass : myvar(0),
+ myvar2(0)
+{
+
+}
+
+template<typename A, typename B, typename C> class MyClass
+ : myvar(0),
+ myvar2(0)
+{
+
+}
+
+
+static int max_value()
+{
+ return (std :: numeric_limits <int >:: max ) ();
+}
+
+template < class Config_ > priority_queue < Config_ > :: ~priority_queue () {
+
+}
+
+template<class T> T test(T a) {
+ return a;
+}
+
+int main() {
+ int k;
+ int j;
+ h g<int>;
+ k=test<int> (j);
+ return 0;
+}
+
+template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass> class RotationMatrix
+ : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
+{
+
+public:
+
+ RotationMatrix()
+ : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass<T, 3, 3 >& other)
+ {
+ // do something
+ }
+
+};
+
+int main()
+{
+ MyClass<double, 3, 3, MyStorage> foo;
+}
+
+template< typename CharT, int N, typename Traits > inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits>& os,
+ const W::S<CharT,N,Traits>& s)
+{
+ return operator << <CharT, N, Traits, char, std::char_traits<char> > ( os, s );
+}
+
+struct foo {
+ type1 < int& > bar;
+};
+struct foo {
+ type1 < int const > bar;
+};
+
+
+template <int i> void f();
+template <int i> void g() {
+ f<i - 1>();
+ f< i >();
+ f<i + 1>();
+ f<bar()>();
+}
+void h() {
+ g<42>();
+}
+
+#include <vector>
+std::vector<int> A(2);
+std::vector<int> B;
+std::vector<int> C(2);
+std::vector<int> D;
+
+template<class T> struct X { template<class U> void operator ()(U); };
+
+template<class T> class Y { template<class V> void f(V); };
+
+void (* foobar)(void) = NULL;
+std::vector<void (*)(void)> functions;
+
+#define MACRO( a ) a
+template < typename = int > class X;
+MACRO ( void f( X < >& x ) );
+void g( X < >& x );
+
+#include <vector>
+typedef std::vector<std::vector<int> > Table; // OK
+typedef std::vector<std::vector<bool> > Flags; // Error
+
+void func(List<B> = default_val1);
+void func(List<List<B> > = default_val2);
+
+BLAH<(3.14 >= 42)> blah;
+bool X = j<3> > 1;
+
+void foo()
+{
+ A<(X > Y)> a;
+ a = static_cast<List<B> >(ld);
+}
+
+template<int i> class X { /* ... */ };
+X < 1 > 2 > x1; // Syntax error.
+X<(1 > 2)> x2; // Okay.
+
+template<class T> class Y { /* ... */ };
+Y<X<1> > x3; // Okay, same as "Y<X<1> > x3;".
+Y<X<(6 >> 1)> > x4;
+
+
+template <typename T> int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30102-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30102-templates.cpp
new file mode 100644
index 00000000..86bbfaf7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30102-templates.cpp
@@ -0,0 +1,188 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f < T > ()
+
+class MyClass
+{
+public:
+ std::map < int, bool > someData;
+ std::map < int, std::list < bool > > otherData;
+};
+
+void foo()
+{
+ List < byte > bob = new List < byte > ();
+
+}
+
+A < B > foo;
+A < B,C > bar;
+A < B* > baz;
+A < B < C > > bay;
+
+void asd(void)
+{
+ A < B > foo;
+ A < B,C > bar;
+ A < B* > baz;
+ A < B < C > > bay;
+ if (a<b && b>c)
+ {
+ a = b<c>0;
+ }
+ if (a < bar() > c)
+ {
+ }
+ a<up_lim() ? do_hi() : do_low;
+ a[ a < b > c] = d;
+}
+
+template< typename T > class MyClass
+{
+
+}
+
+template< typename T >
+class MyClass
+{
+}
+
+template< typename A, typename B, typename C > class MyClass : myvar(0),
+ myvar2(0)
+{
+
+}
+
+template< typename A, typename B, typename C > class MyClass
+ : myvar(0),
+ myvar2(0)
+{
+
+}
+
+
+static int max_value()
+{
+ return (std :: numeric_limits < int >:: max ) ();
+}
+
+template< class Config_ >
+priority_queue < Config_ > :: ~priority_queue () {
+
+}
+
+template< class T >
+T test(T a) {
+ return a;
+}
+
+int main() {
+ int k;
+ int j;
+ h g < int >;
+ k=test < int > (j);
+ return 0;
+}
+
+template< typename T, template< typename, unsigned int, unsigned int > class ConcreteStorageClass >
+class RotationMatrix
+ : public StaticBaseMatrix < T, 3, 3, ConcreteStorageClass >
+{
+
+public:
+
+ RotationMatrix()
+ : StaticBaseMatrix < T, 3, 3, ConcreteStorageClass > ()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass < T, 3, 3 >& other)
+ {
+ // do something
+ }
+
+};
+
+int main()
+{
+ MyClass < double, 3, 3, MyStorage > foo;
+}
+
+template< typename CharT, int N, typename Traits >
+inline std::basic_ostream < CharT,Traits >& FWStreamOut(std::basic_ostream < CharT,Traits >& os,
+ const W::S < CharT,N,Traits >& s)
+{
+ return operator << < CharT, N, Traits, char, std::char_traits < char > > ( os, s );
+}
+
+struct foo {
+ type1 < int& > bar;
+};
+struct foo {
+ type1 < int const > bar;
+};
+
+
+template< int i > void f();
+template< int i > void g() {
+ f < i - 1 > ();
+ f < i > ();
+ f < i + 1 > ();
+ f < bar() > ();
+}
+void h() {
+ g < 42 > ();
+}
+
+#include <vector>
+std::vector < int > A(2);
+std::vector < int > B;
+std::vector < int > C(2);
+std::vector < int > D;
+
+template< class T > struct X { template< class U > void operator ()(U); };
+
+template< class T > class Y { template< class V > void f(V); };
+
+void (* foobar)(void) = NULL;
+std::vector < void (*)(void) > functions;
+
+#define MACRO( a ) a
+template< typename = int > class X;
+MACRO ( void f( X < >& x ) );
+void g( X < >& x );
+
+#include <vector>
+typedef std::vector < std::vector < int > > Table; // OK
+typedef std::vector < std::vector < bool > > Flags; // Error
+
+void func(List < B > = default_val1);
+void func(List < List < B > > = default_val2);
+
+BLAH < (3.14>=42) > blah;
+bool X = j < 3 > >1;
+
+void foo()
+{
+ A < (X>Y) > a;
+ a = static_cast < List < B > > (ld);
+}
+
+template< int i > class X { /* ... */ };
+X<1>2>x1; // Syntax error.
+X < (1>2) > x2; // Okay.
+
+template< class T > class Y { /* ... */ };
+Y < X < 1 > > x3; // Okay, same as "Y<X<1> > x3;".
+Y < X < (6 >> 1) > > x4;
+
+
+template< typename T >
+int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30103-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30103-templates.cpp
new file mode 100644
index 00000000..adadb882
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30103-templates.cpp
@@ -0,0 +1,188 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f<T>()
+
+class MyClass
+{
+public:
+ std::map<int, bool>someData;
+ std::map<int, std::list<bool> >otherData;
+};
+
+void foo()
+{
+ List<byte>bob = new List<byte>();
+
+}
+
+A<B>foo;
+A<B,C>bar;
+A<B*>baz;
+A<B<C> >bay;
+
+void asd(void)
+{
+ A<B>foo;
+ A<B,C>bar;
+ A<B*>baz;
+ A<B<C> >bay;
+ if (a < b && b > c)
+ {
+ a = b < c > 0;
+ }
+ if (a<bar()>c)
+ {
+ }
+ a < up_lim() ? do_hi() : do_low;
+ a[ a<b>c] = d;
+}
+
+template<typename T>class MyClass
+{
+
+}
+
+template<typename T>
+class MyClass
+{
+}
+
+template<typename A, typename B, typename C>class MyClass : myvar(0),
+ myvar2(0)
+{
+
+}
+
+template<typename A, typename B, typename C>class MyClass
+ : myvar(0),
+ myvar2(0)
+{
+
+}
+
+
+static int max_value()
+{
+ return (std :: numeric_limits<int>:: max )();
+}
+
+template<class Config_>
+priority_queue<Config_> :: ~priority_queue () {
+
+}
+
+template<class T>
+T test(T a) {
+ return a;
+}
+
+int main() {
+ int k;
+ int j;
+ h g<int>;
+ k=test<int> (j);
+ return 0;
+}
+
+template<typename T, template<typename, unsigned int, unsigned int>class ConcreteStorageClass>
+class RotationMatrix
+ : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
+{
+
+public:
+
+ RotationMatrix()
+ : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass<T, 3, 3>& other)
+ {
+ // do something
+ }
+
+};
+
+int main()
+{
+ MyClass<double, 3, 3, MyStorage>foo;
+}
+
+template<typename CharT, int N, typename Traits>
+inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits>& os,
+ const W::S<CharT,N,Traits>& s)
+{
+ return operator<<<CharT, N, Traits, char, std::char_traits<char> > ( os, s );
+}
+
+struct foo {
+ type1<int&>bar;
+};
+struct foo {
+ type1<int const>bar;
+};
+
+
+template<int i>void f();
+template<int i>void g() {
+ f<i - 1>();
+ f<i>();
+ f<i + 1>();
+ f<bar()>();
+}
+void h() {
+ g<42>();
+}
+
+#include <vector>
+std::vector<int>A(2);
+std::vector<int>B;
+std::vector<int>C(2);
+std::vector<int>D;
+
+template<class T>struct X { template<class U>void operator()(U); };
+
+template<class T>class Y { template<class V>void f(V); };
+
+void (* foobar)(void) = NULL;
+std::vector<void (*)(void)>functions;
+
+#define MACRO( a ) a
+template<typename = int>class X;
+MACRO( void f( X<>& x ) );
+void g( X<>& x );
+
+#include <vector>
+typedef std::vector<std::vector<int> >Table; // OK
+typedef std::vector<std::vector<bool> >Flags; // Error
+
+void func(List<B> = default_val1);
+void func(List<List<B> > = default_val2);
+
+BLAH<(3.14 >= 42)>blah;
+bool X = j<3> > 1;
+
+void foo()
+{
+ A<(X > Y)>a;
+ a = static_cast<List<B> >(ld);
+}
+
+template<int i>class X { /* ... */ };
+X < 1 > 2 > x1; // Syntax error.
+X<(1 > 2)>x2; // Okay.
+
+template<class T>class Y { /* ... */ };
+Y<X<1> >x3; // Okay, same as "Y<X<1> > x3;".
+Y<X<(6 >> 1)> >x4;
+
+
+template<typename T>
+int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30104-templ_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30104-templ_class.h
index 802f7e27..802f7e27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30104-templ_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30104-templ_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30105-av.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30105-av.h
index 6efe8e9b..6efe8e9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30105-av.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30105-av.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30106-templates2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30106-templates2.cpp
index 48f56d99..48f56d99 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30106-templates2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30106-templates2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30107-templates2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30107-templates2.cpp
index a49d4381..a49d4381 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30107-templates2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30107-templates2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30108-templates3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30108-templates3.cpp
index a0e20d19..a0e20d19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30108-templates3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30108-templates3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30109-templates4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30109-templates4.cpp
index 781822e8..781822e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30109-templates4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30109-templates4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30110-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30110-class-init.cpp
index e1b1949c..e1b1949c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30110-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30110-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30111-bug_1346.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30111-bug_1346.h
index 2ca31e50..2ca31e50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30111-bug_1346.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30111-bug_1346.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30112-bug_1432.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30112-bug_1432.cpp
index 575a21c8..575a21c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30112-bug_1432.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30112-bug_1432.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30113-bug_1452.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30113-bug_1452.cpp
index 59a3babd..59a3babd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30113-bug_1452.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30113-bug_1452.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30114-bug_1462.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30114-bug_1462.cpp
index b6a33ceb..b6a33ceb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30114-bug_1462.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30114-bug_1462.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30115-Issue_1704.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30115-Issue_1704.cpp
index 90cb2049..90cb2049 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30115-Issue_1704.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30115-Issue_1704.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30116-Issue_1052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30116-Issue_1052.cpp
index 0e21f136..0e21f136 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30116-Issue_1052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30116-Issue_1052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30117-Issue_2343.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30117-Issue_2343.cpp
index a82e1172..a82e1172 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30117-Issue_2343.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30117-Issue_2343.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30118-Issue_2758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30118-Issue_2758.cpp
index 576b1bef..576b1bef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30118-Issue_2758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30118-Issue_2758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30119-Issue_2879.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30119-Issue_2879.cpp
index fbc323ae..fbc323ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30119-Issue_2879.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30119-Issue_2879.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30120-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30120-sp_after_angle.cpp
index 04af5289..04af5289 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30120-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30120-sp_after_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30121-sp_after_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30121-sp_after_angle.cpp
index 8764578e..8764578e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30121-sp_after_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30122-sp_after_angle.cpp
new file mode 100644
index 00000000..ee7acae0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30122-sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template < typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE( foo < int> )
+
+int bar( foo <int > );
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.74.0/tests/expected/cpp/30123-sp_after_angle.cpp
new file mode 100644
index 00000000..a791a8ef
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30123-sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template < typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE(foo < int>)
+
+int bar(foo <int >);
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.74.0/tests/expected/cpp/30124-sp_after_angle.cpp
new file mode 100644
index 00000000..c29f3552
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30124-sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template < typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE(foo < int> )
+
+int bar(foo <int > );
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.74.0/tests/expected/cpp/30125-sp_after_angle.cpp
new file mode 100644
index 00000000..a791a8ef
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30125-sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template < typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE(foo < int>)
+
+int bar(foo <int >);
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.74.0/tests/expected/cpp/30126-sp_after_angle.cpp
new file mode 100644
index 00000000..18788919
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30126-sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template < typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE(foo < int> )
+
+int bar(foo <int > );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30127-Issue_2565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30127-Issue_2565.cpp
index 721d4d78..721d4d78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30127-Issue_2565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30127-Issue_2565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30128-Issue_2873.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30128-Issue_2873.cpp
index 6803fd9a..6803fd9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30128-Issue_2873.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30128-Issue_2873.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30129-Issue_2890.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30129-Issue_2890.cpp
index d03e4f62..d03e4f62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30129-Issue_2890.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30129-Issue_2890.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30130-if-constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30130-if-constexpr.cpp
index 483317be..483317be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30130-if-constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30130-if-constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30131-Issue_3010.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30131-Issue_3010.cpp
index 93fd70db..93fd70db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30131-Issue_3010.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30131-Issue_3010.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30132-sp_brace_catch.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30132-sp_brace_catch.cpp
index 04c1b9c1..04c1b9c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30132-sp_brace_catch.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30133-Issue_3252.cpp
new file mode 100644
index 00000000..5dc0e67e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30133-Issue_3252.cpp
@@ -0,0 +1,6 @@
+void (*x) (void);
+
+typedef struct
+{
+ void (*y) (void);
+} z;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30200-bug_1862.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30200-bug_1862.cpp
index c5357c86..c5357c86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30200-bug_1862.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30200-bug_1862.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30201-cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30201-cmt_indent.cpp
index ed27ffca..ed27ffca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30201-cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30201-cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30202-cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30202-cmt_indent.cpp
index 95c47d6e..95c47d6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30202-cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30202-cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30203-cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30203-cmt_indent.cpp
index 05cc2df3..05cc2df3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30203-cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30203-cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30204-comment-align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30204-comment-align.cpp
index afaaafef..afaaafef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30204-comment-align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30204-comment-align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30205-cmt_right.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30205-cmt_right.cpp
index bcca4e2e..bcca4e2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30205-cmt_right.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30205-cmt_right.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp
index d020e171..d020e171 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30206-cmt_backslash_eol.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30207-cmt_indent_pp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30207-cmt_indent_pp.h
index 50e35c8d..50e35c8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30207-cmt_indent_pp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30207-cmt_indent_pp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30208-bug_1108.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30208-bug_1108.cpp
index 573a9810..573a9810 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30208-bug_1108.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30208-bug_1108.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30209-bug_1134.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30209-bug_1134.cpp
index 369b70f1..369b70f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30209-bug_1134.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30209-bug_1134.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30210-bug_1338.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30210-bug_1338.cpp
index 04b4cd8a..04b4cd8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30210-bug_1338.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp
new file mode 100644
index 00000000..34c09203
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30211-indent_comment_align_thresh.cpp
@@ -0,0 +1,153 @@
+// First comment
+// Second comment
+
+// First comment
+// Second comment
+
+// Issue #1134
+class MyClass : public BaseClass
+{
+ //@{ BaseClass interface
+#if VERY_LONG_AND_COMPLICATED_DEFINE
+ void foo();
+#endif // VERY_LONG_AND_COMPLICATED_DEFINE
+ //@}
+};
+
+// Issue #1287
+void foo()
+{
+#if defined(SUPPORT_FEATURE)
+ bar();
+#endif // SUPPORT_FEATURE
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+#if defined(SUPPORT_FEATURE)
+ bar();
+#endif // SUPPORT_FEATURE
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+# if defined(SUPPORT_FEATURE)
+ bar();
+# endif // SUPPORT_FEATURE
+ // SUPPORT_FEATURE
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+# if defined(SUPPORT_FEATURE)
+ bar();
+# endif // SUPPORT_FEATURE
+ // SUPPORT_FEATURE
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+ #if defined(SUPPORT_FEATURE)
+ bar();
+ #endif /* SUPPORT_FEATURE
+ SUPPORT_FEATURE */
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+}
+
+// ----- Some namespace scope --------------------------------------------------
+// ----- FooNamespace scope ----------------------------------------------------
+namespace FooNamespace
+{
+// ----- Some classes scope ----------------------------------------------------
+// ----- FooClass scope --------------------------------------------------------
+class FooClass
+{
+ using FooUsing = FooTemplate<
+ param1,
+ param2
+ >; // FooTemplate
+ // Foo description
+ void foo()
+ {
+ if (a == b)
+ {
+// Col1 comment
+// Col1 comment
+// Col1 comment
+ // Baz description
+ baz(); // Baz trailing comment begin
+ // Baz trailing comment ...
+ // Baz trailing comment end
+ } // if (a == b)
+ // Bar description begin
+ // Bar description ...
+ // Bar description end
+ bar(
+ a,
+ b
+ ); // bar trailing comment begin
+ // bar trailing comment ...
+ // Baz trailing comment end
+ /*! Baz description begin
+ * Baz description ...
+ * Baz description end */
+ baz(a,
+ b); /* Baz trailing comment begin
+ Baz trailing comment ...
+ Baz trailing comment end */
+ // Bar description
+ bar(); // bar trailing comment begin
+ // bar trailing comment ...
+ // Baz trailing comment end
+
+ // Baz description
+ baz();
+ }
+ void bar();
+ // Many methods
+ void baz();
+}; // FooClass
+// ----- FooClass scope --------------------------------------------------------
+
+// Many classes
+// Many classes
+// Many classes
+
+class BazClass
+{
+ void foo();
+
+// Many methods
+// Many methods
+// Many methods
+
+// Overrides
+// Overrides
+//Overrides
+protected:
+ // Bar description
+ void baz();
+ //Overrides
+}; // BazClass trailing comment begin
+ // BazClass trailing comment ...
+ // BazClass trailing comment end
+// ----- Some classes scope ----------------------------------------------------
+} // FooNamespace trailing comment begin
+ // FooNamespace trailing comment end
+// ----- FooNamespace scope ----------------------------------------------------
+// BarNamespace description
+namespace BarNamespace
+{
+} // namespace BarNamespace
+// ----- Some namespace scope --------------------------------------------------
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.74.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp
new file mode 100644
index 00000000..f9316598
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30212-indent_comment_align_thresh.cpp
@@ -0,0 +1,153 @@
+// First comment
+// Second comment
+
+// First comment
+// Second comment
+
+// Issue #1134
+class MyClass : public BaseClass
+{
+ //@{ BaseClass interface
+#if VERY_LONG_AND_COMPLICATED_DEFINE
+ void foo();
+#endif // VERY_LONG_AND_COMPLICATED_DEFINE
+ //@}
+};
+
+// Issue #1287
+void foo()
+{
+#if defined(SUPPORT_FEATURE)
+ bar();
+#endif // SUPPORT_FEATURE
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+#if defined(SUPPORT_FEATURE)
+ bar();
+#endif // SUPPORT_FEATURE
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+# if defined(SUPPORT_FEATURE)
+ bar();
+# endif // SUPPORT_FEATURE
+ // SUPPORT_FEATURE
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+# if defined(SUPPORT_FEATURE)
+ bar();
+# endif // SUPPORT_FEATURE
+ // SUPPORT_FEATURE
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+
+ #if defined(SUPPORT_FEATURE)
+ bar();
+ #endif /* SUPPORT_FEATURE
+ SUPPORT_FEATURE */
+ // Handle error
+ // Handle error
+ if (error != 0)
+ {
+ }
+}
+
+// ----- Some namespace scope --------------------------------------------------
+// ----- FooNamespace scope ----------------------------------------------------
+namespace FooNamespace
+{
+// ----- Some classes scope ----------------------------------------------------
+// ----- FooClass scope --------------------------------------------------------
+class FooClass
+{
+ using FooUsing = FooTemplate<
+ param1,
+ param2
+ >; // FooTemplate
+ // Foo description
+ void foo()
+ {
+ if (a == b)
+ {
+ // Col1 comment
+ // Col1 comment
+ // Col1 comment
+ // Baz description
+ baz(); // Baz trailing comment begin
+ // Baz trailing comment ...
+ // Baz trailing comment end
+ } // if (a == b)
+ // Bar description begin
+ // Bar description ...
+ // Bar description end
+ bar(
+ a,
+ b
+ ); // bar trailing comment begin
+ // bar trailing comment ...
+ // Baz trailing comment end
+ /*! Baz description begin
+ * Baz description ...
+ * Baz description end */
+ baz(a,
+ b); /* Baz trailing comment begin
+ Baz trailing comment ...
+ Baz trailing comment end */
+ // Bar description
+ bar(); // bar trailing comment begin
+ // bar trailing comment ...
+ // Baz trailing comment end
+
+ // Baz description
+ baz();
+ }
+ void bar();
+ // Many methods
+ void baz();
+}; // FooClass
+// ----- FooClass scope --------------------------------------------------------
+
+// Many classes
+// Many classes
+// Many classes
+
+class BazClass
+{
+ void foo();
+
+ // Many methods
+ // Many methods
+ // Many methods
+
+ // Overrides
+ // Overrides
+ //Overrides
+protected:
+ // Bar description
+ void baz();
+ //Overrides
+}; // BazClass trailing comment begin
+ // BazClass trailing comment ...
+ // BazClass trailing comment end
+// ----- Some classes scope ----------------------------------------------------
+} // FooNamespace trailing comment begin
+ // FooNamespace trailing comment end
+// ----- FooNamespace scope ----------------------------------------------------
+// BarNamespace description
+namespace BarNamespace
+{
+} // namespace BarNamespace
+// ----- Some namespace scope --------------------------------------------------
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30213-align_right_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30213-align_right_comment.cpp
index 43a2a70f..43a2a70f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30213-align_right_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30213-align_right_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30214-align_across_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30214-align_across_braces.cpp
index 199ede8d..199ede8d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30214-align_across_braces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30214-align_across_braces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30215-Issue_2099.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30215-Issue_2099.cpp
index 4726f44b..4726f44b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30215-Issue_2099.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30215-Issue_2099.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30216-Issue_2302.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30216-Issue_2302.cpp
index e2684ae6..e2684ae6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30216-Issue_2302.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30216-Issue_2302.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30217-2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30217-2138.cpp
index 8d1d7462..8d1d7462 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30217-2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30217-2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30218-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30218-trailing_return.cpp
index be70a23b..be70a23b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30218-trailing_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30218-trailing_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30219-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30219-trailing_return.cpp
index e250cbd5..e250cbd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30219-trailing_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30219-trailing_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30220-bug_1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30220-bug_1340.cpp
index f64bc6a0..f64bc6a0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30220-bug_1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30220-bug_1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30221-Issue_2914.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30221-Issue_2914.cpp
index c2cd8b59..c2cd8b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30221-Issue_2914.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30221-Issue_2914.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30222-trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30222-trailing_return.cpp
index 9c076282..9c076282 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30222-trailing_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30222-trailing_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30223-sp_enum_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30223-sp_enum_colon.cpp
index 11d7320b..11d7320b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30223-sp_enum_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30223-sp_enum_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30224-sp_enum_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30224-sp_enum_colon.cpp
index 804fe1ae..804fe1ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30224-sp_enum_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30225-Issue_3176.cpp
new file mode 100644
index 00000000..2384027d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30225-Issue_3176.cpp
@@ -0,0 +1 @@
+SecureStorage::~SecureStorage() = default;
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.74.0/tests/expected/cpp/30226-sp_enum_colon.cpp
new file mode 100644
index 00000000..be23e687
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30226-sp_enum_colon.cpp
@@ -0,0 +1,10 @@
+enum Enum1:int {
+ E31=0,
+ E32=1,
+ E33=2
+};
+enum Enum2 : int {
+ E31=0,
+ E32=1,
+ E33=2
+};
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.74.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp
new file mode 100644
index 00000000..8386e215
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30227-sp_inside_braces_enum.cpp
@@ -0,0 +1 @@
+enum { IDD = IDD_ATCS_MGR_DLG };
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.74.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp
new file mode 100644
index 00000000..666f834c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30228-sp_inside_braces_enum.cpp
@@ -0,0 +1 @@
+enum { IDD = IDD_ATCS_MGR_DLG };
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.74.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp
new file mode 100644
index 00000000..98640667
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30229-sp_inside_braces_enum.cpp
@@ -0,0 +1 @@
+enum {IDD = IDD_ATCS_MGR_DLG};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30230-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30230-sp_type_func.cpp
index 0d17364f..0d17364f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30230-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30230-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30231-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30231-sp_type_func.cpp
index d7d69cc8..d7d69cc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30231-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30231-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30232-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30232-sp_type_func.cpp
index fe2a3348..fe2a3348 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30232-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30232-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30233-sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30233-sp_type_func.cpp
index fe2a3348..fe2a3348 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30233-sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30233-sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30234-functype_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30234-functype_param.cpp
index 32419616..32419616 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30234-functype_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30234-functype_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30235-functype_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30235-functype_param.cpp
index 9e9f5ecc..9e9f5ecc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30235-functype_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30235-functype_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30240-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30240-align_func_params.cpp
index 923d274b..923d274b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30240-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30240-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30241-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30241-align_func_params.cpp
index 923d274b..923d274b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30241-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30241-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30242-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30242-align_func_params.cpp
index 512233cd..512233cd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30242-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30242-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30243-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30243-align_func_params.cpp
index 82434066..82434066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30243-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30243-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30244-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30244-align_func_params.cpp
index 5efed666..5efed666 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30244-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30244-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30245-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30245-align_func_params.cpp
index a44170a9..a44170a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30245-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30245-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30246-align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30246-align_func_params.cpp
index 9def11e6..9def11e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30246-align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30246-align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30247-Issue_2332.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30247-Issue_2332.cpp
index 0bc9cf8f..0bc9cf8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30247-Issue_2332.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30247-Issue_2332.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30248-Issue_2831.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30248-Issue_2831.cpp
index c099567a..c099567a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30248-Issue_2831.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30248-Issue_2831.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30249-align-330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30249-align-330.cpp
index a92e1545..a92e1545 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30249-align-330.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30249-align-330.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30250-align_fcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30250-align_fcall.cpp
index 055f0029..055f0029 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30250-align_fcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30250-align_fcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30251-align_fcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30251-align_fcall.cpp
index 055f0029..055f0029 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30251-align_fcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30251-align_fcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30253-align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30253-align_left_shift.cpp
index 7c98226d..7c98226d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30253-align_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30253-align_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30254-align_left_shift2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30254-align_left_shift2.cpp
index bfea744c..bfea744c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30254-align_left_shift2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30254-align_left_shift2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30255-align_constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30255-align_constr.cpp
index 380f0c8b..380f0c8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30255-align_constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30255-align_constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30256-func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30256-func_call.cpp
index e3eff88c..e3eff88c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30256-func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30256-func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30257-func_call_chain.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30257-func_call_chain.cpp
index 7e2f3931..7e2f3931 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30257-func_call_chain.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30257-func_call_chain.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30258-casts.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30258-casts.cpp
index d8a496fb..d8a496fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30258-casts.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30258-casts.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp
index 7b63b639..7b63b639 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30259-sp_after_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30260-var_def_gap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30260-var_def_gap.cpp
index 7333d292..7333d292 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30260-var_def_gap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30260-var_def_gap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30261-align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30261-align_var_def_thresh.cpp
index 8512377e..8512377e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30261-align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30261-align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30262-align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30262-align_var_def_thresh.cpp
index 4996a3d3..4996a3d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30262-align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30262-align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30263-align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30263-align_var_def_thresh.cpp
index 1e10f370..1e10f370 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30263-align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30263-align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30264-Issue_2668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30264-Issue_2668.cpp
index da8e118f..da8e118f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30264-Issue_2668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30264-Issue_2668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30265-long_br_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30265-long_br_cmt.cpp
index 8ebdcec9..8ebdcec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30265-long_br_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30265-long_br_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30266-Issue_2921.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30266-Issue_2921.cpp
index 53e3c495..53e3c495 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30266-Issue_2921.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30266-Issue_2921.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30267-Issue_2930.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30267-Issue_2930.cpp
index 00cff53b..00cff53b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30267-Issue_2930.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30267-Issue_2930.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30268-Issue_3018.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30268-Issue_3018.cpp
index ddbb473e..ddbb473e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30268-Issue_3018.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30268-Issue_3018.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30270-const_throw.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30270-const_throw.cpp
index 44f0ca68..44f0ca68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30270-const_throw.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30270-const_throw.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30271-sp_throw_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30271-sp_throw_paren.cpp
index 21ce9291..21ce9291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30271-sp_throw_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30271-sp_throw_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30272-sp_throw_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30272-sp_throw_paren.cpp
index ea851aff..ea851aff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30272-sp_throw_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30272-sp_throw_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp
index ee0d705b..ee0d705b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30273-sp_cparen_oparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp
index 93cc7f86..93cc7f86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30274-sp_cparen_oparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30275-bug_1321.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30275-bug_1321.cpp
index 5e708c11..5e708c11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30275-bug_1321.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30275-bug_1321.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30278-bug_1439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30278-bug_1439.cpp
index d560522b..d560522b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30278-bug_1439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30278-bug_1439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp
index c8b92481..c8b92481 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30279-indent-inside-ternary-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30280-sf557.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30280-sf557.cpp
index 287bc9c1..287bc9c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30280-sf557.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30280-sf557.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30281-Issue_2478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30281-Issue_2478.cpp
index 40674590..40674590 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30281-Issue_2478.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30281-Issue_2478.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30282-Issue_2703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30282-Issue_2703.cpp
index ec4554e9..ec4554e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30282-Issue_2703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30283-Issue_3321.h
new file mode 100644
index 00000000..9444d24c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30283-Issue_3321.h
@@ -0,0 +1,8 @@
+auto l1 = []() {
+ };
+auto l2 = [&]() {
+ };
+auto l3 = []() noexcept {
+ };
+auto l4 = [&]() noexcept {
+ };
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30290-align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30290-align_left_shift.cpp
index 8591a642..8591a642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30290-align_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30290-align_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30291-indent_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30291-indent_shift.cpp
index bc1ae2e5..bc1ae2e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30291-indent_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30291-indent_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30292-eigen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30292-eigen.cpp
index aa43434a..aa43434a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30292-eigen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30292-eigen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30293-pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30293-pos_shift.cpp
index d4a8f1ed..d4a8f1ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30293-pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30293-pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30294-pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30294-pos_shift.cpp
index badc9798..badc9798 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30294-pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30294-pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30295-pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30295-pos_shift.cpp
index efb19263..efb19263 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30295-pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30295-pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30300-enum_shr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30300-enum_shr.cpp
index 26e0d08e..26e0d08e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30300-enum_shr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30300-enum_shr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30301-enum_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30301-enum_class.h
index 7ad5e9ea..7ad5e9ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30301-enum_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30301-enum_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30302-bug_1315.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30302-bug_1315.cpp
index 584f9a00..584f9a00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30302-bug_1315.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30302-bug_1315.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30303-Issue_2902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30303-Issue_2902.cpp
index ae10d5a9..ae10d5a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30303-Issue_2902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30303-Issue_2902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30310-braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30310-braced_init_list.cpp
index 116462c2..116462c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30310-braced_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30310-braced_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30311-uniform_initialization.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30311-uniform_initialization.cpp
index 64da585d..64da585d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30311-uniform_initialization.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30311-uniform_initialization.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30312-return_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30312-return_init_list.cpp
index ef91c528..ef91c528 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30312-return_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30312-return_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30313-sp_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30313-sp_brace_brace.cpp
index 2ae91737..2ae91737 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30313-sp_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30313-sp_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30314-sp_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30314-sp_brace_brace.cpp
index b7ca9839..b7ca9839 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30314-sp_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30314-sp_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30315-return_braced_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30315-return_braced_init.cpp
index cf86baeb..cf86baeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30315-return_braced_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30315-return_braced_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30316-Issue_2428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30316-Issue_2428.cpp
index b2a0a139..b2a0a139 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30316-Issue_2428.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30316-Issue_2428.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp
index 3c22d790..3c22d790 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30317-braced_init_template_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30318-Issue_2949.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30318-Issue_2949.cpp
index d37d7ac3..d37d7ac3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30318-Issue_2949.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30318-Issue_2949.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30319-Issue_2886.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30319-Issue_2886.cpp
index 0474c710..0474c710 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30319-Issue_2886.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30320-returns.cpp
new file mode 100644
index 00000000..d1ac08c0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30320-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return(x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/ x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return(x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return /**/ x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return(3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/ 6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30321-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30321-returns.cpp
new file mode 100644
index 00000000..1abe1e54
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30321-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return (x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/ x; }
+
+#define case1(x) return x
+#define case2(x) return (x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return /**/ x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return (2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/ 6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30322-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30322-returns.cpp
new file mode 100644
index 00000000..a61b0fcf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30322-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return{x}; }
+#define foo6(x) { return /**/ x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return{x}
+#define case6(x) return /**/ x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return{5};
+ case 6:
+ return /**/ 6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30323-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30323-returns.cpp
new file mode 100644
index 00000000..b12cd7eb
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30323-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return {x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/ x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return {x}
+#define case5(x) return {x}
+#define case6(x) return /**/ x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return {4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/ 6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30324-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30324-returns.cpp
new file mode 100644
index 00000000..fede22db
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30324-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return (x); }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/ (x); }
+
+#define case1(x) return (x)
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return /**/ (x)
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return (1);
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/ (6);
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30325-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30325-returns.cpp
new file mode 100644
index 00000000..d797f9c7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30325-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return x; }
+#define foo3(x) { return x; }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/ x; }
+
+#define case1(x) return x
+#define case2(x) return x
+#define case3(x) return x
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return /**/ x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return 2;
+ case 3:
+ return 3;
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/ 6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30326-indent_off_after_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30326-indent_off_after_return.cpp
index 6cd6d8e4..6cd6d8e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30326-indent_off_after_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30326-indent_off_after_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30327-indent_off_after_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30327-indent_off_after_return.cpp
index 6cd6d8e4..6cd6d8e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30327-indent_off_after_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30327-indent_off_after_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30328-call_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30328-call_brace_init_lst.cpp
index b75c35b1..b75c35b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30328-call_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30328-call_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30329-call_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30329-call_brace_init_lst.cpp
index 83837910..83837910 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30329-call_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30329-call_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30330-Issue_3080.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30330-Issue_3080.cpp
index 75c6072b..75c6072b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30330-Issue_3080.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30330-Issue_3080.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp
index 15cc6e3a..15cc6e3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30400-attribute_specifier_seqs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30401-Issue_2570.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30401-Issue_2570.cpp
index 44373e77..44373e77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30401-Issue_2570.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30401-Issue_2570.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30701-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30701-function-def.cpp
index 89261c8e..89261c8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30701-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30701-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30702-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30702-function-def.cpp
index c1fb4ed4..c1fb4ed4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30702-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30702-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30703-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30703-function-def.cpp
index c604152d..c604152d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30703-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30703-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30705-func_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30705-func_param.cpp
index 8bdb0ce8..8bdb0ce8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30705-func_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30705-func_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30706-bug_1020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30706-bug_1020.cpp
index f0e9e60d..f0e9e60d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30706-bug_1020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30706-bug_1020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30711-semicolons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30711-semicolons.cpp
index de28deef..de28deef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30711-semicolons.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30711-semicolons.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30712-bug_1158.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30712-bug_1158.cpp
index 2a9ba76d..2a9ba76d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30712-bug_1158.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30712-bug_1158.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp
index 890f2eba..890f2eba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30713-fix_for_relational_operators.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30714-Issue_1733.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30714-Issue_1733.cpp
index 10be5586..10be5586 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30714-Issue_1733.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30714-Issue_1733.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30715-Issue_2942.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30715-Issue_2942.cpp
index dbecc7f4..dbecc7f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30715-Issue_2942.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30715-Issue_2942.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30720-custom-open-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30720-custom-open-2.cpp
index 4d05944a..4d05944a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30720-custom-open-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30720-custom-open-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30721-Issue_2386.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30721-Issue_2386.cpp
index ac0b1dd4..ac0b1dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30721-Issue_2386.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30721-Issue_2386.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30730-qt-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30730-qt-1.cpp
index 5d0273e2..5d0273e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30730-qt-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30730-qt-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30731-qt-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30731-qt-1.cpp
index 55b2459b..55b2459b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30731-qt-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30731-qt-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30732-Issue_2734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30732-Issue_2734.cpp
index 27dfdc70..27dfdc70 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30732-Issue_2734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30732-Issue_2734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30740-sef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30740-sef.cpp
index 8730ba15..8730ba15 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30740-sef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30740-sef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30741-al.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30741-al.cpp
index 1c911bf2..1c911bf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30741-al.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30741-al.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30742-delete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30742-delete.cpp
index c33aa682..c33aa682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30742-delete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30742-delete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30745-Issue_2170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30745-Issue_2170.cpp
index f1edafd8..f1edafd8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30745-Issue_2170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30745-Issue_2170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30746-DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30746-DefaultAndDelete.cpp
index 7dff7dd5..7dff7dd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30746-DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30746-DefaultAndDelete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30747-DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30747-DefaultAndDelete.cpp
index 30d315a7..30d315a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30747-DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30747-DefaultAndDelete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30748-DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30748-DefaultAndDelete.cpp
index 9b55a964..9b55a964 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30748-DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30748-DefaultAndDelete.cpp
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
new file mode 100644
index 00000000..5ba33b05
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30750-lambda.cpp
@@ -0,0 +1,89 @@
+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
new file mode 100644
index 00000000..13d35a5a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30751-lambda.cpp
@@ -0,0 +1,72 @@
+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.73.0/tests/expected/cpp/30752-lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30752-lambda.cpp
index 84ca8b21..84ca8b21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30752-lambda.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30752-lambda.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30753-lambda2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30753-lambda2.cpp
index 2bcfff9f..2bcfff9f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30753-lambda2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30753-lambda2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30754-bug_i_682.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30754-bug_i_682.h
index 51c58e23..51c58e23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30754-bug_i_682.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30754-bug_i_682.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30755-bug_i_938.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30755-bug_i_938.h
index b13997a6..b13997a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30755-bug_i_938.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30755-bug_i_938.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30756-bug_1296.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30756-bug_1296.cpp
index 482045df..482045df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30756-bug_1296.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30756-bug_1296.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30757-Issue_3054.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30757-Issue_3054.cpp
index 53edc388..53edc388 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30757-Issue_3054.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30757-Issue_3054.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30758-Issue_3054-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30758-Issue_3054-2.cpp
index e4c1c8da..e4c1c8da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30758-Issue_3054-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30758-Issue_3054-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30761-out-668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30761-out-668.cpp
index 8829c0ce..8829c0ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30761-out-668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30761-out-668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30762-out-668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30762-out-668.cpp
index 0dac74c3..0dac74c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30762-out-668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30762-out-668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30763-Issue_2166.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30763-Issue_2166.cpp
index d9ac55c7..d9ac55c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30763-Issue_2166.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30763-Issue_2166.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30764-Issue_2591.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30764-Issue_2591.cpp
index 01ed232e..01ed232e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30764-Issue_2591.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30764-Issue_2591.cpp
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
new file mode 100644
index 00000000..6f8c8e55
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30765-lambda.cpp
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 00000000..6f8c8e55
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30766-lambda.cpp
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 00000000..6f8c8e55
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30767-lambda.cpp
@@ -0,0 +1,88 @@
+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.73.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp
index e25d0496..e25d0496 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30768-sp_cpp_lambda_fparen.cpp
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
new file mode 100644
index 00000000..25319dcc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30770-lambda.cpp
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 00000000..1f091e6d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30771-lambda.cpp
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 00000000..a5e5f3ee
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30772-lambda.cpp
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 00000000..3e628450
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30773-lambda.cpp
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 00000000..3e628450
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30774-lambda.cpp
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 00000000..d86e0d59
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30775-lambda.cpp
@@ -0,0 +1,88 @@
+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.73.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp
index e0c1985d..e0c1985d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30776-sp_cpp_lambda_fparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp
index f882a211..f882a211 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30777-sp_cpp_lambda_fparen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp
index c740c4bd..c740c4bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30780-lambda_in_one_liner.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30781-lambda_brace_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30781-lambda_brace_list.cpp
index 8626f5af..8626f5af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30781-lambda_brace_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30781-lambda_brace_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30790-Issue_2795.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30790-Issue_2795.cpp
index 6cb7e112..6cb7e112 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30790-Issue_2795.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30791-Issue_3203.cpp
new file mode 100644
index 00000000..519d29dd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30791-Issue_3203.cpp
@@ -0,0 +1,14 @@
+#include <vector>
+
+class A
+{
+public:
+ int a;
+ int b;
+
+ std::vector<int*> v =
+ {
+ &a,
+ &b
+ };
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30800-align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30800-align-star-amp-pos.cpp
index dc988ce1..dc988ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30800-align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30800-align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30801-align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30801-align-star-amp-pos.cpp
index c23b0d4a..c23b0d4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30801-align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30801-align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30802-align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30802-align-star-amp-pos.cpp
index cf2bff2d..cf2bff2d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30802-align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30802-align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30803-bug_1403.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30803-bug_1403.cpp
index 209c0173..209c0173 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30803-bug_1403.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30803-bug_1403.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30805-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30805-ptr-star.cpp
index fcefa84f..fcefa84f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30805-ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30806-ptr-star.cpp
new file mode 100644
index 00000000..76659df9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30806-ptr-star.cpp
@@ -0,0 +1,70 @@
+int dx = m_ClipBox.GetWidth() * GetZoom();
+
+m_ClipBox.m_Pos.y = PaintClipBox.y * GetZoom();
+
+int *i;
+char *i;
+
+int MyFunc(std::string &s, char *) {
+ char *c = const_cast<char *>(s.c_str());
+}
+
+int YerFunc(std::string &s, char **) {
+ char **c;
+ int a = b[0] * c;
+}
+
+int *X(int *i, int *);
+
+int *i = &a;
+int *i = *b;
+int *i = &*c;
+
+int *Aclass::X(int *i, int *);
+
+class Aclass {
+int *X(int *i, int *);
+}
+extern "C" {
+int foo1(int *a);
+int foo2(sometype *a);
+}
+int bar1(int *a);
+int bar2(sometype *a);
+
+struct X
+{
+ int *a; // 3:5
+
+ int f()
+ {
+ return *b; // 7:8
+ }
+ int g()
+ {
+ return *c; // 11:8
+ }
+};
+
+int *const i;
+int *static i;
+
+static auto Func1(Model *model) -> Color *;
+static auto Func1(Model *model) -> Color *{
+ return nullptr;
+}
+
+auto Func2(Model *model) -> Color *const;
+auto Func2(Model *model) -> Color *const {
+ return nullptr;
+}
+
+auto Func3(Model *model) -> Color **;
+auto Func3(Model *model) -> Color **{
+ return nullptr;
+}
+
+auto Func4(Model *model) -> Color **const;
+auto Func4(Model *model) -> Color **const {
+ return nullptr;
+}
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.74.0/tests/expected/cpp/30807-ptr-star.cpp
new file mode 100644
index 00000000..55478e3f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30807-ptr-star.cpp
@@ -0,0 +1,70 @@
+int dx = m_ClipBox.GetWidth() * GetZoom();
+
+m_ClipBox.m_Pos.y = PaintClipBox.y * GetZoom();
+
+int *i;
+char *i;
+
+int MyFunc(std::string& s, char*) {
+ char *c = const_cast<char*>(s.c_str());
+}
+
+int YerFunc(std::string& s, char**) {
+ char **c;
+ int a = b[0] * c;
+}
+
+int* X(int *i, int*);
+
+int *i = &a;
+int *i = *b;
+int *i = &*c;
+
+int* Aclass::X(int *i, int*);
+
+class Aclass {
+int* X(int *i, int*);
+}
+extern "C" {
+int foo1(int *a);
+int foo2(sometype *a);
+}
+int bar1(int *a);
+int bar2(sometype *a);
+
+struct X
+{
+ int *a; // 3:5
+
+ int f()
+ {
+ return *b; // 7:8
+ }
+ int g()
+ {
+ return *c; // 11:8
+ }
+};
+
+int* const i;
+int* static i;
+
+static auto Func1(Model *model) -> Color*;
+static auto Func1(Model *model) -> Color* {
+ return nullptr;
+}
+
+auto Func2(Model *model) -> Color* const;
+auto Func2(Model *model) -> Color* const {
+ return nullptr;
+}
+
+auto Func3(Model *model) -> Color**;
+auto Func3(Model *model) -> Color** {
+ return nullptr;
+}
+
+auto Func4(Model *model) -> Color** const;
+auto Func4(Model *model) -> Color** const {
+ return nullptr;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30808-ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30808-ptr-star.cpp
index 68cb8151..68cb8151 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30808-ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30808-ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30809-bug_1289.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30809-bug_1289.cpp
index 42663477..42663477 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30809-bug_1289.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30810-ptr-star.cpp
new file mode 100644
index 00000000..fa88b0bc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30810-ptr-star.cpp
@@ -0,0 +1,76 @@
+int dx = m_ClipBox.GetWidth() * GetZoom();
+
+m_ClipBox.m_Pos.y = PaintClipBox.y * GetZoom();
+
+int *i;
+char *i;
+
+int MyFunc(std::string& s, char *)
+{
+ char *c = const_cast<char *>(s.c_str());
+}
+
+int YerFunc(std::string& s, char **)
+{
+ char **c;
+ int a = b[0] * c;
+}
+
+int *X(int *i, int *);
+
+int *i = &a;
+int *i = *b;
+int *i = &*c;
+
+int *Aclass::X(int *i, int *);
+
+class Aclass {
+ int *X(int *i, int *);
+}
+extern "C" {
+int foo1(int *a);
+int foo2(sometype *a);
+}
+int bar1(int *a);
+int bar2(sometype *a);
+
+struct X
+{
+ int *a; // 3:5
+
+ int f()
+ {
+ return (*b); // 7:8
+ }
+ int g()
+ {
+ return (*c); // 11:8
+ }
+};
+
+int *const i;
+int *static i;
+
+static auto Func1(Model *model) -> Color *;
+static auto Func1(Model *model) -> Color *
+{
+ return(nullptr);
+}
+
+auto Func2(Model *model) -> Color *const;
+auto Func2(Model *model) -> Color *const
+{
+ return(nullptr);
+}
+
+auto Func3(Model *model) -> Color **;
+auto Func3(Model *model) -> Color **
+{
+ return(nullptr);
+}
+
+auto Func4(Model *model) -> Color **const;
+auto Func4(Model *model) -> Color **const
+{
+ return(nullptr);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30811-misc3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30811-misc3.cpp
new file mode 100644
index 00000000..9ca06c3c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30811-misc3.cpp
@@ -0,0 +1,21 @@
+// When constructing an object there should not be any space between the & and the variable name:
+
+MyClass my1(foo, &bar);
+MyClass my2(foo, bar);
+MyClass my3(foo, bar + 3);
+MyClass my4(42);
+MyClass my5(foo(), bar);
+MyClass my6(int foo, int& bar);
+MyClass my7(const int foo, int& bar);
+
+
+//When using references inside of casts there is also an additional space after the &:
+
+MyClass& myInst = static_cast<MyClass&>(otherInst);
+
+
+// When using the qt-specific signals and slots the pointer star is separated from the type with a space:
+
+connect(&mapper, SIGNAL(mapped(QWidget*)), this, SLOT(onSomeEvent(QWidget*)));
+
+extern int select(int __nfds, fd_set*__restrict __readfds, fd_set*__restrict __writefds, fd_set*__restrict __exceptfds, struct timeval*__restrict __timeout);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30812-misc4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30812-misc4.cpp
index 5ddaffb0..5ddaffb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30812-misc4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30812-misc4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30813-misc5.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30813-misc5.cpp
index e8ffaf27..e8ffaf27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30813-misc5.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30813-misc5.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30814-misc6.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30814-misc6.cpp
index 95cc0383..95cc0383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30814-misc6.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30814-misc6.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30815-cmt-reflow.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30815-cmt-reflow.cpp
index 8bd50283..8bd50283 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30815-cmt-reflow.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30815-cmt-reflow.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30816-for_long.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30816-for_long.cpp
index 5483d4c8..5483d4c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30816-for_long.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30816-for_long.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp
index 9acbac58..9acbac58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30817-cmt-cpp-cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30818-bug_1169.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30818-bug_1169.cpp
index b1138a57..b1138a57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30818-bug_1169.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30818-bug_1169.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30819-bug_1170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30819-bug_1170.cpp
index 18e029cb..18e029cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30819-bug_1170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30819-bug_1170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30820-pp-define-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30820-pp-define-indent.cpp
index 0d7892a2..0d7892a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30820-pp-define-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30820-pp-define-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30821-pp_indent_case.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30821-pp_indent_case.cpp
index 70b1b9c7..70b1b9c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30821-pp_indent_case.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30821-pp_indent_case.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 4900fa34..4900fa34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30823-pp_indent_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30823-pp_indent_func_def.cpp
index b01c6bbe..b01c6bbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30823-pp_indent_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30823-pp_indent_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30824-pp_indent_extern.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30824-pp_indent_extern.cpp
index 995db611..995db611 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30824-pp_indent_extern.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30824-pp_indent_extern.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30825-Issue_1966.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30825-Issue_1966.cpp
index 12a8084b..12a8084b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30825-Issue_1966.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30825-Issue_1966.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30826-Issue_2319.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30826-Issue_2319.cpp
index 8c0ae3e9..8c0ae3e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30826-Issue_2319.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30826-Issue_2319.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30827-Issue_1167.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30827-Issue_1167.cpp
index 6410326c..6410326c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30827-Issue_1167.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30827-Issue_1167.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30828-bug_1691.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30828-bug_1691.cpp
index e93f7f74..e93f7f74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30828-bug_1691.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30828-bug_1691.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30829-Issue_2726.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30829-Issue_2726.cpp
index bb7f1d4b..bb7f1d4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30829-Issue_2726.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30829-Issue_2726.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30830-kw_subst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30830-kw_subst.cpp
index 47084a7e..47084a7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30830-kw_subst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30830-kw_subst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30831-kw_subst2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30831-kw_subst2.cpp
index b5e58eac..b5e58eac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30831-kw_subst2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30831-kw_subst2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30832-kw_subst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30832-kw_subst.cpp
index 47084a7e..47084a7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30832-kw_subst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30832-kw_subst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30840-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30840-nl_func_type_name.cpp
index a4302001..a4302001 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30840-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30840-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30841-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30841-nl_func_type_name.cpp
index 5997a5c3..5997a5c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30841-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30841-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30842-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30842-nl_func_type_name.cpp
index a826af48..a826af48 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30842-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30842-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30843-nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30843-nl_func_type_name.cpp
index b1ead857..b1ead857 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30843-nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30843-nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30844-Issue_2771.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30844-Issue_2771.cpp
index ab7c285f..ab7c285f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30844-Issue_2771.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30844-Issue_2771.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30845-deref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30845-deref.cpp
index 9705b51f..9705b51f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30845-deref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30846-Issue_3197.h
new file mode 100644
index 00000000..76331aa3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30846-Issue_3197.h
@@ -0,0 +1,4 @@
+vec_ & operator+=(vec_ &, const vec_ &);
+
+
+int xyz(int a, int b);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc
index 9cc04a18..9cc04a18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30850-sp_cmt_cpp_start.cc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30852-Issue_2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30852-Issue_2138.cpp
index 3a8fa83c..3a8fa83c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30852-Issue_2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30852-Issue_2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30853-noexcept.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30853-noexcept.cpp
index 60f2edd4..60f2edd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30853-noexcept.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30853-noexcept.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30854-Issue_1703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30854-Issue_1703.cpp
index af32d661..af32d661 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30854-Issue_1703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30854-Issue_1703.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30855-cpp_move.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30855-cpp_move.cpp
index cec9beb8..cec9beb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30855-cpp_move.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30855-cpp_move.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp
index dc9e4160..dc9e4160 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30856-sp_cmt_cpp_region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp
index 29f75936..29f75936 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30857-sp_cmt_cpp_region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30860-sf574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30860-sf574.cpp
index 58810404..58810404 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30860-sf574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30860-sf574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30870-cmt_insert.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30870-cmt_insert.cpp
index cf5ac204..cf5ac204 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30870-cmt_insert.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30870-cmt_insert.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30871-cmt_insert.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30871-cmt_insert.cpp
index a169795a..a169795a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30871-cmt_insert.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30871-cmt_insert.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30872-Issue_2752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30872-Issue_2752.cpp
index b305b50f..b305b50f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30872-Issue_2752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30872-Issue_2752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30880-bug_1758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30880-bug_1758.cpp
index b0f35107..b0f35107 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30880-bug_1758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30880-bug_1758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30881-bug_1758-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30881-bug_1758-f.cpp
index 24bb563b..24bb563b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30881-bug_1758-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30881-bug_1758-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30900-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30900-region.cpp
index 27823ca6..27823ca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30900-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30900-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30901-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30901-region.cpp
index b7bebae8..b7bebae8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30901-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30901-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30902-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30902-region.cpp
index 39b20ea6..39b20ea6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30902-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30902-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30903-region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30903-region.cpp
index d6e3403a..d6e3403a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30903-region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30903-region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30907-Issue_1813.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30907-Issue_1813.cpp
index d5a3cc71..d5a3cc71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30907-Issue_1813.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30907-Issue_1813.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30908-Issue_1813-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30908-Issue_1813-2.cpp
index 310de82f..310de82f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30908-Issue_1813-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30908-Issue_1813-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30909-Issue_1813-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30909-Issue_1813-3.cpp
index 08c8405d..08c8405d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30909-Issue_1813-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30909-Issue_1813-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30910-indent_namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30910-indent_namespace.h
index d569a3ca..d569a3ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30910-indent_namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30910-indent_namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30911-indent_namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30911-indent_namespace.h
index 6f80dc3b..6f80dc3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30911-indent_namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30911-indent_namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30912-long_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30912-long_namespace.cpp
index 80af6e83..80af6e83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30912-long_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30912-long_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30913-indent_namespace2.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30913-indent_namespace2.h
index 196b2322..196b2322 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30913-indent_namespace2.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30913-indent_namespace2.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30914-indent_namespace_single_indent.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30914-indent_namespace_single_indent.h
index 24a9b935..24a9b935 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30914-indent_namespace_single_indent.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30914-indent_namespace_single_indent.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30915-bug_1235.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30915-bug_1235.cpp
index b9ff78a1..b9ff78a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30915-bug_1235.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30915-bug_1235.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30916-Issue_1737.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30916-Issue_1737.cpp
index 06b0866b..06b0866b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30916-Issue_1737.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30916-Issue_1737.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30917-Issue_2345-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30917-Issue_2345-3.cpp
index 787ce29b..787ce29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30917-Issue_2345-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30917-Issue_2345-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30918-Issue_2345-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30918-Issue_2345-4.cpp
index f82d757d..f82d757d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30918-Issue_2345-4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30918-Issue_2345-4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30919-Issue_2387.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30919-Issue_2387.cpp
index 526278d6..526278d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30919-Issue_2387.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30919-Issue_2387.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30920-indent-off.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30920-indent-off.cpp
index f9eccdb8..f9eccdb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30920-indent-off.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30920-indent-off.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30921-variadic-template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30921-variadic-template.h
index f159e700..f159e700 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30921-variadic-template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/30922-variadic-template.h
new file mode 100644
index 00000000..0a1bd443
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30922-variadic-template.h
@@ -0,0 +1,10 @@
+template<int __i, int... _Indexes, typename _IdxHolder, typename ...
+ _Elements>
+struct __index_holder_impl<__i, __index_holder<_Indexes...>,
+ _IdxHolder, _Elements ...>
+{
+ typedef typename __index_holder_impl<__i + 1,
+ __index_holder<_Indexes...,
+ __i>,
+ _Elements ...>::type type;
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30923-sf.2886991.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30923-sf.2886991.cpp
index 61dc7c21..61dc7c21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30923-sf.2886991.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30923-sf.2886991.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30924-sf.2886991.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30924-sf.2886991.cpp
index ce5e0b93..ce5e0b93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30924-sf.2886991.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30924-sf.2886991.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30925-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30925-function-def.cpp
index 2d6df544..2d6df544 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30925-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30925-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30926-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30926-function-def.cpp
index 78b23a14..78b23a14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30926-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30926-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30927-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30927-function-def.cpp
index bceb00f6..bceb00f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30927-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30927-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30928-function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30928-function-def.cpp
index b14ecb11..b14ecb11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30928-function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30928-function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30929-bug_1324.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30929-bug_1324.cpp
index 1aca5762..1aca5762 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30929-bug_1324.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30929-bug_1324.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30930-indent_var_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30930-indent_var_def.cpp
index 5b3ee4e2..5b3ee4e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30930-indent_var_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30930-indent_var_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30931-indent_var_def_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30931-indent_var_def_cont.cpp
index c505389f..c505389f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30931-indent_var_def_cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30931-indent_var_def_cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30932-indent_var_def_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30932-indent_var_def_cont.cpp
index 70b7304e..70b7304e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30932-indent_var_def_cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30932-indent_var_def_cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp
index 8a775135..8a775135 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30933-indent_paren_after_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp
index 6af21978..6af21978 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30934-indent_paren_after_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30935-indent-misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30935-indent-misc.cpp
index ad8de7b0..ad8de7b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30935-indent-misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30935-indent-misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30936-indent_braces_no.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30936-indent_braces_no.h
index 725b0402..725b0402 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30936-indent_braces_no.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30936-indent_braces_no.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30937-indent_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30937-indent_param.cpp
index 31569ec1..31569ec1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30937-indent_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30937-indent_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30938-indent_switch_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30938-indent_switch_pp.cpp
index dd910c56..dd910c56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30938-indent_switch_pp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30938-indent_switch_pp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp
index a1453862..a1453862 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30939-indent_paren_after_func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30940-case-brace-remove.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30940-case-brace-remove.cpp
index cd163570..cd163570 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30940-case-brace-remove.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30940-case-brace-remove.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30941-Issue_2150.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30941-Issue_2150.cpp
index 1e4d6bf5..1e4d6bf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30941-Issue_2150.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30941-Issue_2150.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30942-Issue_1692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30942-Issue_1692.cpp
index 89de1d6a..89de1d6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30942-Issue_1692.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30942-Issue_1692.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30943-Issue_2735.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30943-Issue_2735.cpp
index 3e292425..3e292425 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30943-Issue_2735.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30943-Issue_2735.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30945-sf.3266678.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30945-sf.3266678.cpp
index 810b5105..810b5105 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30945-sf.3266678.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30945-sf.3266678.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30946-sf.3315874.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30946-sf.3315874.h
index 05161496..05161496 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30946-sf.3315874.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30946-sf.3315874.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30947-bug_1689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30947-bug_1689.cpp
index 40d34d61..40d34d61 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30947-bug_1689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30947-bug_1689.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30948-sp_before_byref_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30948-sp_before_byref_func.cpp
index 4abfe954..4abfe954 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30948-sp_before_byref_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30948-sp_before_byref_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30949-Issue_2757.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30949-Issue_2757.cpp
index ba83c29e..ba83c29e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30949-Issue_2757.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30949-Issue_2757.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp
index 943d303b..943d303b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30950-sp_before_tr_emb_cmt_input.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp
index c7e25f1c..c7e25f1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30951-sp_before_tr_emb_cmt_input.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp
index ad0e38d5..ad0e38d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30952-sp_before_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30953-constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30953-constr_colon.cpp
index 6c0706e5..6c0706e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30953-constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30953-constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30954-Issue_2305.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30954-Issue_2305.cpp
index 7458b913..7458b913 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30954-Issue_2305.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30954-Issue_2305.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30955-indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30955-indent_ctor_init.cpp
index 55982328..55982328 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30955-indent_ctor_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30955-indent_ctor_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30956-indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30956-indent_ctor_init.cpp
index 29a146a9..29a146a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30956-indent_ctor_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30956-indent_ctor_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30957-class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30957-class-init.cpp
index faa28873..faa28873 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30957-class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30957-class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp
index 8ff2405f..8ff2405f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30958-nl_for_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp
index 382d2815..382d2815 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30959-nl_for_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30960-Issue_2151.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30960-Issue_2151.cpp
index d0ee05d2..d0ee05d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30960-Issue_2151.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30960-Issue_2151.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30961-Issue_2232.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30961-Issue_2232.cpp
index 7867820b..7867820b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30961-Issue_2232.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30961-Issue_2232.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp
index cf3325f0..cf3325f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30962-nl_assign_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30963-Issue_2907.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30963-Issue_2907.cpp
index c0192c4d..c0192c4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30963-Issue_2907.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30963-Issue_2907.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30964-Issue_2823.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30964-Issue_2823.cpp
index c633398f..c633398f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30964-Issue_2823.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30964-Issue_2823.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30970-Issue_2219.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30970-Issue_2219.cpp
index e08cb889..e08cb889 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30970-Issue_2219.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30970-Issue_2219.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30971-Issue_2224.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30971-Issue_2224.cpp
index 0c454905..0c454905 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30971-Issue_2224.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30971-Issue_2224.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30972-Issue_2229.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30972-Issue_2229.cpp
index 0c44ed6a..0c44ed6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30972-Issue_2229.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30972-Issue_2229.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30973-Issue_2236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30973-Issue_2236.cpp
index 7f7f01f5..7f7f01f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30973-Issue_2236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30973-Issue_2236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30974-using-alias-in-define.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30974-using-alias-in-define.cpp
index 1b4153d8..1b4153d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/30974-using-alias-in-define.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/30974-using-alias-in-define.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31000-digraph.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31000-digraph.cpp
index e985dae6..e985dae6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31000-digraph.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31000-digraph.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31001-digraph.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31001-digraph.cpp
index 641390a6..641390a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31001-digraph.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/31050-pos_assign.cpp
new file mode 100644
index 00000000..af55296b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31050-pos_assign.cpp
@@ -0,0 +1,7 @@
+static const unsigned char radiooff_light_bits[] =
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10,
+ 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x0c, 0x06,
+ 0xf0, 0x01
+};
+
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.74.0/tests/expected/cpp/31051-pos_assign.cpp
new file mode 100644
index 00000000..af55296b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31051-pos_assign.cpp
@@ -0,0 +1,7 @@
+static const unsigned char radiooff_light_bits[] =
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10,
+ 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x0c, 0x06,
+ 0xf0, 0x01
+};
+
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.74.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp
new file mode 100644
index 00000000..fdf9067a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31101-nl_before_brace_open_test.cpp
@@ -0,0 +1,33 @@
+int foo1() {
+ int i; if (true) { i=2; }
+}
+
+namespace { int foo1() {
+ int i; if (true) { i=2; }
+ }
+}
+
+class bar {
+int foo1() {
+ int i; i = 1; if (true) { i=2; }
+}
+int foo2() {
+ int i; i = 1; if (true) { i=2; }
+}
+}
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static const kjs_double_t NaN_Bytes = {{0x7f, 0xf8, 0, 0, 0, 0, 0, 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+static struct LanguageForEncoding {
+ const char *index; int data;
+} const language_for_encoding[] = { {"iso 8859-1", 13}, {"iso 8859-15", 13} }
+
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.74.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp
new file mode 100644
index 00000000..59342e57
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31102-nl_before_brace_open_test.cpp
@@ -0,0 +1,50 @@
+int foo1()
+{
+ int i; if (true)
+ { i=2; }
+}
+
+namespace
+{ int foo1()
+ {
+ int i; if (true)
+ { i=2; }
+ }
+}
+
+class bar
+{
+int foo1()
+{
+ int i; i = 1; if (true)
+ { i=2; }
+}
+int foo2()
+{
+ int i; i = 1; if (true)
+ { i=2; }
+}
+}
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+static const kjs_double_t NaN_Bytes =
+{
+ {0x7f, 0xf8, 0, 0, 0, 0, 0, 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+static struct LanguageForEncoding
+{
+ const char *index; int data;
+} const language_for_encoding[] =
+{
+ {"iso 8859-1", 13},
+ {"iso 8859-15", 13} }
+
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.74.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp
new file mode 100644
index 00000000..5efbf20e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31103-nl_before_brace_open_test.cpp
@@ -0,0 +1,32 @@
+int foo1() { int i; if (true) { i=2; }}
+
+namespace { int foo1() { int i; if (true) { i=2; }}}
+
+class bar
+{
+int foo1() { int i; i = 1; if (true) { i=2; }}
+int foo2() { int i; i = 1; if (true) { i=2; }}
+}
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+static const kjs_double_t NaN_Bytes =
+{
+ {0x7f, 0xf8, 0, 0, 0, 0, 0, 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+static struct LanguageForEncoding
+{
+ const char *index; int data;
+} const language_for_encoding[] =
+{
+ {"iso 8859-1", 13},
+ {"iso 8859-15", 13} }
+
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.74.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp
new file mode 100644
index 00000000..a1b93406
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31104-nl_before_brace_open_test.cpp
@@ -0,0 +1,33 @@
+int foo1() { int i; if (true) { i=2; }}
+
+namespace
+{ int foo1() { int i; if (true) { i=2; }}}
+
+class bar
+{
+int foo1() { int i; i = 1; if (true) { i=2; }}
+int foo2() { int i; i = 1; if (true) { i=2; }}
+}
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+static const kjs_double_t NaN_Bytes =
+{
+ {0x7f, 0xf8, 0, 0, 0, 0, 0, 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+static struct LanguageForEncoding
+{
+ const char *index; int data;
+} const language_for_encoding[] =
+{
+ {"iso 8859-1", 13},
+ {"iso 8859-15", 13} }
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31562-sf562.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31562-sf562.cpp
index 15ee8e79..15ee8e79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31562-sf562.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31562-sf562.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31567-sf567.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31567-sf567.cpp
index 6d96731d..6d96731d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31567-sf567.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31567-sf567.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31568-Issue_2368.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31568-Issue_2368.cpp
index 82b8c59c..82b8c59c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31568-Issue_2368.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31568-Issue_2368.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31583-sf583.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31583-sf583.cpp
index 34fc0c21..34fc0c21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31583-sf583.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31583-sf583.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31593-sf593.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31593-sf593.cpp
index 2d4499e6..2d4499e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31593-sf593.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31593-sf593.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31594-issue_672.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31594-issue_672.cpp
index 499f3168..499f3168 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31594-issue_672.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31594-issue_672.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31595-issue_1778.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31595-issue_1778.cpp
index 4eea46e0..4eea46e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31595-issue_1778.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31595-issue_1778.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31596-issue_1782.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31596-issue_1782.cpp
index 664ead7f..664ead7f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31596-issue_1782.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31596-issue_1782.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31597-issue_1804.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31597-issue_1804.cpp
index c98ecdef..c98ecdef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31597-issue_1804.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31597-issue_1804.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31598-Issue_1753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31598-Issue_1753.cpp
index 9f7da399..9f7da399 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31598-Issue_1753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/31599-parameter-packs.cpp
new file mode 100644
index 00000000..4961aa2b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31599-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args && ...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args && ...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31600-parameter-packs.cpp
new file mode 100644
index 00000000..5d1cd8e8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31600-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B) ...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X) ...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args && ...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args && ...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31601-parameter-packs.cpp
new file mode 100644
index 00000000..0394fe8b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31601-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B )... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X )...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31602-parameter-packs.cpp
new file mode 100644
index 00000000..15d0a382
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31602-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof ...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof ...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof ...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31603-parameter-packs.cpp
new file mode 100644
index 00000000..3a810b8a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31603-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31604-parameter-packs.cpp
new file mode 100644
index 00000000..2a180b34
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31604-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A ..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args ...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args && ...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args ...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args && ...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31605-parameter-packs.cpp
new file mode 100644
index 00000000..a08af3cf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31605-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename... Args>
+void call1r(R (*fp)(Args && ...));
+
+template<class R, typename... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename... Args>
+struct invoke1r : invoke<R (*)(Args && ...)>
+{
+};
+
+template < typename... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename... Args >
+void call2v( R ( *fp ) ( Args... ) );
+
+template < class R, typename... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename... Args >
+struct invoke2v : invoke < R ( * ) ( Args... ) >
+{
+};
+
+template < class R, typename... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31606-parameter-packs.cpp
new file mode 100644
index 00000000..a73e2c43
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31606-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int ... B>
+struct foo1 : foo1<A ..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int ... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args ...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args* ...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args && ...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args ...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args* ...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args && ...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31607-parameter-packs.cpp
new file mode 100644
index 00000000..153fc615
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31607-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A ..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args ...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args* ...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args && ...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args ...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args* ...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args && ...)>
+{
+};
+
+template < typename ... A, int... B >
+struct foo2 : foo2 < A..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31608-parameter-packs.cpp
new file mode 100644
index 00000000..13ba49db
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31608-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof... (A)+B)...>
+{
+ foo1() {
+ int x = sizeof... (A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof... (X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31609-parameter-packs.cpp
new file mode 100644
index 00000000..e00841b4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31609-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ...( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ...( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ...( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31610-Issue_2085.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31610-Issue_2085.cpp
index 581f4db4..581f4db4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31610-Issue_2085.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/31611-parameter-packs.cpp
new file mode 100644
index 00000000..4e89022d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31611-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31612-parameter-packs.cpp
new file mode 100644
index 00000000..4e89022d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31612-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31613-parameter-packs.cpp
new file mode 100644
index 00000000..4e89022d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31613-parameter-packs.cpp
@@ -0,0 +1,77 @@
+template<typename ... A, int... B>
+struct foo1 : foo1<A..., (sizeof...(A)+B)...>
+{
+ foo1() {
+ int x = sizeof...(A);
+ }
+};
+
+template<int... X> int bar1()
+{
+ auto s = sizeof...(X);
+ chomp(X)...;
+ return X+...;
+}
+
+template<class R, typename ... Args>
+void call1v(R (*fp)(Args...));
+
+template<class R, typename ... Args>
+void call1p(R (*fp)(Args*...));
+
+template<class R, typename ... Args>
+void call1r(R (*fp)(Args&&...));
+
+template<class R, typename ... Args>
+struct invoke1v : invoke<R (*)(Args...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1p : invoke<R (*)(Args*...)>
+{
+};
+
+template<class R, typename ... Args>
+struct invoke1r : invoke<R (*)(Args&&...)>
+{
+};
+
+template < typename ... A, int ... B >
+struct foo2 : foo2 < A ..., ( sizeof ... ( A ) + B ) ... >
+{
+ foo2() {
+ int x = sizeof ... ( A );
+ }
+};
+
+template < int ... X > int bar2()
+{
+ auto s = sizeof ... ( X );
+ chomp( X ) ...;
+ return X + ...;
+}
+
+template < class R, typename ... Args >
+void call2v( R ( *fp ) ( Args ... ) );
+
+template < class R, typename ... Args >
+void call2p( R ( *fp ) ( Args * ... ) );
+
+template < class R, typename ... Args >
+void call2r( R ( *fp ) ( Args && ... ) );
+
+template < class R, typename ... Args >
+struct invoke2v : invoke < R ( * ) ( Args ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2p : invoke < R ( * ) ( Args * ... ) >
+{
+};
+
+template < class R, typename ... Args >
+struct invoke2r : invoke < R ( * ) ( Args && ... ) >
+{
+};
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.74.0/tests/expected/cpp/31614-Issue_3309.cpp
new file mode 100644
index 00000000..d6dd1dac
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31614-Issue_3309.cpp
@@ -0,0 +1 @@
+template<typename ... ARGS> void test(ARGS&&... args) {}
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.74.0/tests/expected/cpp/31615-Issue_3309.cpp
new file mode 100644
index 00000000..84ee58aa
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31615-Issue_3309.cpp
@@ -0,0 +1 @@
+template<typename ... ARGS> void test(ARGS&&... args) {}
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.74.0/tests/expected/cpp/31616-Issue_3309.cpp
new file mode 100644
index 00000000..c269ddb0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31616-Issue_3309.cpp
@@ -0,0 +1 @@
+template<typename ...ARGS> void test(ARGS&&... args) {}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31620-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31620-sp_after_type.cpp
index 460c0dc2..460c0dc2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31620-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31620-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31621-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31621-sp_after_type.cpp
index b1ffd02b..b1ffd02b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31621-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31621-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31622-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31622-sp_after_type.cpp
index a924423a..a924423a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31622-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31622-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31623-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31623-sp_after_type.cpp
index 5d923c27..5d923c27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31623-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31623-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31624-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31624-sp_after_type.cpp
index b66aba0c..b66aba0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31624-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31624-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31625-sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31625-sp_after_type.cpp
index add7b57e..add7b57e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31625-sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31625-sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31626-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31626-issue_1916.cpp
index 56ce6f4c..56ce6f4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31626-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31626-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31627-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31627-issue_1916.cpp
index f84334a4..f84334a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31627-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31627-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31628-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31628-issue_1916.cpp
index df2af994..df2af994 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31628-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31628-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31629-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31629-issue_1916.cpp
index 913f1e28..913f1e28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31629-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31629-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31630-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31630-issue_1916.cpp
index df2af994..df2af994 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31630-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31630-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31631-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31631-issue_1916.cpp
index 913f1e28..913f1e28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31631-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31631-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31632-issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31632-issue_1916.cpp
index 292b6837..292b6837 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31632-issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31632-issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31633-sp_after_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31633-sp_after_decltype.cpp
index 6a62e6f2..6a62e6f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31633-sp_after_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31633-sp_after_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31634-sp_after_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31634-sp_after_decltype.cpp
index c48543be..c48543be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31634-sp_after_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31634-sp_after_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31635-sp_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31635-sp_decltype.cpp
index 84b157f1..84b157f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31635-sp_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31635-sp_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31636-Issue_1923.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31636-Issue_1923.cpp
index 8c3ebe66..8c3ebe66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31636-Issue_1923.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31636-Issue_1923.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31660-issue_1919.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31660-issue_1919.cpp
index 187065d6..187065d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31660-issue_1919.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/31661-Issue_3097.cpp
new file mode 100644
index 00000000..ede644ad
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31661-Issue_3097.cpp
@@ -0,0 +1,19 @@
+void foo()
+{
+ for( unsigned p = 0; p < np;
+ ++p )
+ {
+ double* o = bar[p];
+ }
+
+ int x = 42;
+}
+
+void bar()
+{
+ // hello
+ int x = 42;
+ if( x ) foo;
+
+ type::value_t y = 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp
index 03615082..03615082 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31700-toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp
index f67cb76b..f67cb76b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31701-toggle_processing_cmt2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp
index adf1b8be..adf1b8be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31702-toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp
index e806e89e..e806e89e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31703-toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp
index 8350740b..8350740b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31710-string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp
index 56f16799..56f16799 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31711-string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31720-bit-colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31720-bit-colon.cpp
index b8e7c4db..b8e7c4db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31720-bit-colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31720-bit-colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31721-Issue_2689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31721-Issue_2689.cpp
index e2b43674..e2b43674 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31721-Issue_2689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31721-Issue_2689.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31730-ms-style-ref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31730-ms-style-ref.cpp
index 826d4e90..826d4e90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31730-ms-style-ref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31730-ms-style-ref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31740-I2102.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31740-I2102.cpp
index d8cf883a..d8cf883a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/31740-I2102.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/31740-I2102.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp
index 99d403ef..99d403ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32000-sp_skip_vbrace_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32001-issue_547_for_each.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32001-issue_547_for_each.cpp
index cfbe7963..cfbe7963 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32001-issue_547_for_each.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32001-issue_547_for_each.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32002-proto-wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32002-proto-wrap.cpp
index 35e8bea3..35e8bea3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32002-proto-wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32002-proto-wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32003-issue_633_typename.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32003-issue_633_typename.cpp
index 33b947f1..33b947f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32003-issue_633_typename.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32003-issue_633_typename.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32004-issue_624_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32004-issue_624_angle.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32004-issue_624_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32004-issue_624_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32005-issue_633_typename.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32005-issue_633_typename.cpp
index 33b947f1..33b947f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32005-issue_633_typename.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32005-issue_633_typename.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32006-bug_i_687.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32006-bug_i_687.cpp
index 387eaa06..387eaa06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32006-bug_i_687.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32006-bug_i_687.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32007-Issue_3052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32007-Issue_3052.cpp
index cb468be3..cb468be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32007-Issue_3052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32007-Issue_3052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32008-Issue_3034.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32008-Issue_3034.cpp
index 1a110ee8..1a110ee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32008-Issue_3034.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32008-Issue_3034.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32100-cpp17.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32100-cpp17.cpp
index cfccba03..cfccba03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32100-cpp17.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32100-cpp17.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32105-I2103.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32105-I2103.cpp
index ba6386dd..ba6386dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32105-I2103.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32105-I2103.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32115-2185.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32115-2185.cpp
index 6f874926..6f874926 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/32115-2185.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/32115-2185.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33000-tab-0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33000-tab-0.cpp
index d9ff0418..d9ff0418 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33000-tab-0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33000-tab-0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33001-tab-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33001-tab-1.cpp
index 85d8abe2..85d8abe2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33001-tab-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33001-tab-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp
index 32ff32d3..32ff32d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33002-cmt_convert_tab_to_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp
index db09e6fc..db09e6fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33003-cmt_convert_tab_to_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33004-DoxygenComments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33004-DoxygenComments.cpp
index df0b9680..df0b9680 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33004-DoxygenComments.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33004-DoxygenComments.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33005-DoxygenComments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33005-DoxygenComments.cpp
index 533214f2..533214f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33005-DoxygenComments.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33005-DoxygenComments.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp
index 8350740b..8350740b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33006-string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33007-NewLine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33007-NewLine.cpp
index 9c7f1ee9..9c7f1ee9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33007-NewLine.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33007-NewLine.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33008-NewLine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33008-NewLine.cpp
index b3cc1bed..b3cc1bed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33008-NewLine.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33008-NewLine.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33009-NewLine0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33009-NewLine0.cpp
index b5a714fa..b5a714fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33009-NewLine0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33009-NewLine0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33010-Q_EMIT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33010-Q_EMIT.cpp
index d3ef9396..d3ef9396 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33010-Q_EMIT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33010-Q_EMIT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33011-static.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33011-static.h
index 8121fef1..8121fef1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33011-static.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33011-static.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp
index faf00903..faf00903 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33012-Q_SIGNAL_SLOT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33013-Q_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33013-Q_2.cpp
index 7d0bb88a..7d0bb88a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33013-Q_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33013-Q_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33014-DB.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33014-DB.cpp
index 1b8f4bc8..1b8f4bc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33014-DB.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33014-DB.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33015-Q_FOREACH.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33015-Q_FOREACH.cpp
index 02fd849d..02fd849d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33015-Q_FOREACH.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33015-Q_FOREACH.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33016-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33016-indent.cpp
index 22d04a78..22d04a78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33016-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33016-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33017-bug_1160.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33017-bug_1160.cpp
index 8dc7a9d1..8dc7a9d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33017-bug_1160.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33017-bug_1160.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33019-bug_657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33019-bug_657.cpp
index 3b5bb42a..3b5bb42a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33019-bug_657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33019-bug_657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33020-bug_662.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33020-bug_662.cpp
index 48b612ae..48b612ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33020-bug_662.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33020-bug_662.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33021-bug_633.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33021-bug_633.cpp
index 5b672b47..5b672b47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33021-bug_633.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33021-bug_633.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33022-bug_634.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33022-bug_634.cpp
index febbf7b3..febbf7b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33022-bug_634.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33022-bug_634.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33023-bug_651.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33023-bug_651.cpp
index f0236016..f0236016 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33023-bug_651.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33023-bug_651.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33024-bug_653.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33024-bug_653.cpp
index 1bf853d6..1bf853d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33024-bug_653.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33024-bug_653.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33025-bug_654.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33025-bug_654.cpp
index 497e3372..497e3372 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33025-bug_654.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33025-bug_654.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33026-bug_631.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33026-bug_631.cpp
index e110d383..e110d383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33026-bug_631.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33026-bug_631.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33027-bug_664.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33027-bug_664.cpp
index 6fa5beea..6fa5beea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33027-bug_664.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33027-bug_664.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33028-braces_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33028-braces_empty.cpp
index 8e46ab7c..8e46ab7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33028-braces_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33028-braces_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33029-cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33029-cast.cpp
index 179c98c8..179c98c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33029-cast.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33029-cast.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33030-Q_FOREVER.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33030-Q_FOREVER.cpp
index 5dad4fa9..5dad4fa9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33030-Q_FOREVER.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33030-Q_FOREVER.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33031-bug_612.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33031-bug_612.cpp
index 4388ac75..4388ac75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33031-bug_612.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33031-bug_612.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33032-bug_670.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33032-bug_670.cpp
index 0ede02f2..0ede02f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33032-bug_670.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33032-bug_670.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33033-bug_670.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33033-bug_670.h
index cc6d46e3..cc6d46e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33033-bug_670.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33033-bug_670.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33034-bug_671.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33034-bug_671.h
index 5ef3b5d9..5ef3b5d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33034-bug_671.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33034-bug_671.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33035-patch_32.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33035-patch_32.cpp
index 8b414f00..8b414f00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33035-patch_32.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33035-patch_32.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33036-bug_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33036-bug_663.cpp
index 7583d548..7583d548 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33036-bug_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33036-bug_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33037-func_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33037-func_class.cpp
index ea271c11..ea271c11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33037-func_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33037-func_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33038-func_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33038-func_class.h
index 8b3ca218..8b3ca218 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33038-func_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33038-func_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp
index 707c1c38..707c1c38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33039-mod_remove_empty_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33040-bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33040-bug_i_411.cpp
index 5a3f09aa..5a3f09aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33040-bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33040-bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33041-bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33041-bug_i_411.cpp
index 4e89d68d..4e89d68d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33041-bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33041-bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33042-bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33042-bug_i_411.cpp
index 574f12ba..574f12ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33042-bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33042-bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 0f96e53c..0f96e53c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33044-bug_i_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33044-bug_i_481.cpp
index e8470648..e8470648 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33044-bug_i_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33044-bug_i_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33045-bug_i_width.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33045-bug_i_width.cpp
index 08f7888e..08f7888e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33045-bug_i_width.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33045-bug_i_width.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33046-bug_i_409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33046-bug_i_409.cpp
index 6946a562..6946a562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33046-bug_i_409.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33046-bug_i_409.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33047-bug_i_409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33047-bug_i_409.cpp
index 7bfdfd83..7bfdfd83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33047-bug_i_409.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33047-bug_i_409.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33048-bug_i_405.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33048-bug_i_405.cpp
index eda9b0dd..eda9b0dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33048-bug_i_405.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33048-bug_i_405.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33049-pp-pragma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33049-pp-pragma.cpp
index 2c013b08..2c013b08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33049-pp-pragma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33049-pp-pragma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33050-issue_523.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33050-issue_523.cpp
index d203e398..d203e398 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33050-issue_523.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33050-issue_523.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33051-bug_i_503.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33051-bug_i_503.cpp
index 31ca41a8..31ca41a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33051-bug_i_503.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33051-bug_i_503.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33052-bug_i_512.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33052-bug_i_512.cpp
index 9b93cdf2..9b93cdf2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33052-bug_i_512.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33052-bug_i_512.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33053-for_auto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33053-for_auto.cpp
index 073556c9..073556c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33053-for_auto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33053-for_auto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33054-bug_i_825.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33054-bug_i_825.cpp
index 242c4811..242c4811 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33054-bug_i_825.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33054-bug_i_825.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33056-bug_33056.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33056-bug_33056.cpp
index 1339ede1..1339ede1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33056-bug_33056.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33056-bug_33056.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33057-bug_1349.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33057-bug_1349.cpp
index fcc2e567..fcc2e567 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33057-bug_1349.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/33058-Issue_3164.cpp
new file mode 100644
index 00000000..a1e426b0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33058-Issue_3164.cpp
@@ -0,0 +1,3 @@
+#include <cassert>
+#include <rt>
+#include <cass>
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp
index eb949c45..eb949c45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33059-mod_remove_empty_return-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33060-if_constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33060-if_constexpr.cpp
index 032f74ec..032f74ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33060-if_constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33060-if_constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index b544f2bf..b544f2bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 1973042c..1973042c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 7a66eeec..7a66eeec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 2781fb26..2781fb26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33069-Issue_2195.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33069-Issue_2195.cpp
index fe3ec459..fe3ec459 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33069-Issue_2195.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33069-Issue_2195.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33070-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33070-multi_line.cpp
index dcea4c00..dcea4c00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33070-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33070-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33071-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33071-multi_line.cpp
index 0f8503fc..0f8503fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33071-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33071-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33072-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33072-multi_line.cpp
index add93503..add93503 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33072-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33072-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33073-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33073-multi_line.cpp
index c0016ff6..c0016ff6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33073-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33073-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33074-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33074-multi_line.cpp
index c8f32960..c8f32960 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33074-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33074-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33075-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33075-multi_line.cpp
index 66963f4e..66963f4e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33075-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33075-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33076-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33076-multi_line.cpp
index 9d105267..9d105267 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33076-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33076-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33077-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33077-multi_line.cpp
index d7cbafc8..d7cbafc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33077-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33077-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33078-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33078-multi_line.cpp
index 01fe4d10..01fe4d10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33078-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33078-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33079-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33079-multi_line.cpp
index 6a6490ab..6a6490ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33079-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33079-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33080-multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33080-multi_line.cpp
index 8f44ce91..8f44ce91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33080-multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33080-multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33081-bug_i_552.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33081-bug_i_552.cpp
index 5a0704de..5a0704de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33081-bug_i_552.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33081-bug_i_552.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33082-namespace_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33082-namespace_namespace.cpp
index cf6f921e..cf6f921e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33082-namespace_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33082-namespace_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33083-bug_i_359.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33083-bug_i_359.cpp
index 8081c1f9..8081c1f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33083-bug_i_359.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33083-bug_i_359.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33084-op_sym_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33084-op_sym_empty.cpp
index 3557e513..3557e513 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33084-op_sym_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33084-op_sym_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33085-bug_i_323.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33085-bug_i_323.cpp
index 6f622f6e..6f622f6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33085-bug_i_323.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33085-bug_i_323.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33086-bug_i_568.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33086-bug_i_568.cpp
index 2e1a00d7..2e1a00d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33086-bug_i_568.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33086-bug_i_568.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33087-bug_i_596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33087-bug_i_596.cpp
index db3644a2..db3644a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33087-bug_i_596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33087-bug_i_596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33088-bug_i_197.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33088-bug_i_197.cpp
index e86698fd..e86698fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33088-bug_i_197.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33088-bug_i_197.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33089-bug_643.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33089-bug_643.cpp
index 55e3e309..55e3e309 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33089-bug_643.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33089-bug_643.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33090-gh555.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33090-gh555.cpp
index 32147190..32147190 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33090-gh555.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33090-gh555.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33091-squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33091-squeeze_ifdef.cpp
index 7311c71e..7311c71e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33091-squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33091-squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33092-squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33092-squeeze_ifdef.cpp
index 94b20d2e..94b20d2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33092-squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33092-squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33093-sp_angle_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33093-sp_angle_paren.cpp
index 7ed4f34e..7ed4f34e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33093-sp_angle_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33093-sp_angle_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33094-sp_angle_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33094-sp_angle_paren.cpp
index c20305c3..c20305c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33094-sp_angle_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33094-sp_angle_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33095-bug_i_322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33095-bug_i_322.cpp
index 3904ec27..3904ec27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33095-bug_i_322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33095-bug_i_322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33096-squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33096-squeeze_ifdef.cpp
index df3d90ab..df3d90ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33096-squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33096-squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33097-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33097-enum_comma.h
index bb93f4a9..bb93f4a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33097-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33097-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33098-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33098-enum_comma.h
index 3ec29719..3ec29719 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33098-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33098-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33099-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33099-enum_comma.h
index 01a89059..01a89059 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33099-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33099-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33100-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33100-enum_comma.h
index 903a6849..903a6849 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33100-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33100-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33101-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33101-enum_comma.h
index 53c1a99e..53c1a99e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33101-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33101-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33102-enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33102-enum_comma.h
index 6c11f2b3..6c11f2b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33102-enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33102-enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33103-bug_858.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33103-bug_858.cpp
index 1085f7db..1085f7db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33103-bug_858.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33103-bug_858.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33104-bug_858.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33104-bug_858.cpp
index c5ac560e..c5ac560e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33104-bug_858.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33104-bug_858.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33105-bug_1001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33105-bug_1001.cpp
index d6104cd5..d6104cd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33105-bug_1001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33105-bug_1001.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33106-pos_bool_in_template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33106-pos_bool_in_template.h
index f5fdb04e..f5fdb04e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33106-pos_bool_in_template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33106-pos_bool_in_template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33107-Issue_2688.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33107-Issue_2688.cpp
index ac97ff3a..ac97ff3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33107-Issue_2688.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33107-Issue_2688.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33108-Issue_2045.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33108-Issue_2045.cpp
index a1670ffc..a1670ffc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33108-Issue_2045.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/33109-Issue_3205.cpp
new file mode 100644
index 00000000..99767289
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33109-Issue_3205.cpp
@@ -0,0 +1 @@
+vec_& operator+=(vec_&, const vec_&);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33110-enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33110-enum.cpp
index 3872557e..3872557e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33110-enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33110-enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33120-Issue_2149.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33120-Issue_2149.cpp
index 1266bd7b..1266bd7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33120-Issue_2149.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33120-Issue_2149.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33150-bug_i_753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33150-bug_i_753.cpp
index 9aa764a4..9aa764a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33150-bug_i_753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33150-bug_i_753.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33151-bug_i_752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33151-bug_i_752.cpp
index da8fe9f5..da8fe9f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33151-bug_i_752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33151-bug_i_752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33152-bug_1004.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33152-bug_1004.cpp
index f072a583..f072a583 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33152-bug_1004.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33152-bug_1004.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33160-bug_1112.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33160-bug_1112.cpp
index da95fcb6..da95fcb6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33160-bug_1112.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33160-bug_1112.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33161-byref-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33161-byref-3.cpp
index 8c51bf46..8c51bf46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33161-byref-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33161-byref-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33180-pp_multi_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33180-pp_multi_comment.cpp
index bfe1e1d1..bfe1e1d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33180-pp_multi_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33180-pp_multi_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33181-Issue_2759.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33181-Issue_2759.cpp
index cbe9c4a5..cbe9c4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33181-Issue_2759.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33181-Issue_2759.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33182-Issue_2794.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33182-Issue_2794.cpp
index 16de515b..16de515b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33182-Issue_2794.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33182-Issue_2794.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33200-first_len_minimum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33200-first_len_minimum.cpp
index c33d9e03..c33d9e03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33200-first_len_minimum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33200-first_len_minimum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp
index 3b1bea1c..3b1bea1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33201-indent_ctor_members_twice.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33202-initlist_leading_commas.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33202-initlist_leading_commas.cpp
index a3bc4a2a..a3bc4a2a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33202-initlist_leading_commas.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33202-initlist_leading_commas.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33203-Issue_2574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33203-Issue_2574.cpp
index bd88347d..bd88347d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33203-Issue_2574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33203-Issue_2574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33204-Issue_2582.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33204-Issue_2582.cpp
index adf9bfe9..adf9bfe9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33204-Issue_2582.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/33205-Issue_3198.cpp
new file mode 100644
index 00000000..8dd234b7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33205-Issue_3198.cpp
@@ -0,0 +1,4 @@
+enum class Flags : std::int64_t
+{
+ MyFlag
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33210-templates4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33210-templates4.cpp
index 10b96e4a..10b96e4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33210-templates4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33210-templates4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33211-pp_multi_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33211-pp_multi_comment.cpp
index 5690e3a6..5690e3a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33211-pp_multi_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33211-pp_multi_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33212-pp-define-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33212-pp-define-indent.cpp
index 78dc4c98..78dc4c98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33212-pp-define-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33212-pp-define-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33213-disable_macro.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33213-disable_macro.cpp
index 7e64f416..7e64f416 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33213-disable_macro.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33213-disable_macro.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33214-Issue_2742.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33214-Issue_2742.cpp
index 66d12fec..66d12fec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33214-Issue_2742.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33214-Issue_2742.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33215-Issue_3055.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33215-Issue_3055.cpp
index d23a0d56..d23a0d56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33215-Issue_3055.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33215-Issue_3055.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33216-Issue_3055-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33216-Issue_3055-a.cpp
index 21a5c35c..21a5c35c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33216-Issue_3055-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33216-Issue_3055-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33217-Issue_3113.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33217-Issue_3113.cpp
index 63090f4a..63090f4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/33217-Issue_3113.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/33217-Issue_3113.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34001-nl_before_after.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34001-nl_before_after.h
index 8cdc7273..8cdc7273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34001-nl_before_after.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34001-nl_before_after.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34002-bug_i_793.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34002-bug_i_793.cpp
index b6b6a7ab..b6b6a7ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34002-bug_i_793.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34002-bug_i_793.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp
index cd1083ee..cd1083ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34003-nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp
index c2f8dc36..c2f8dc36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34004-nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp
index 738f3bf6..738f3bf6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34005-nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34006-bug_i_575.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34006-bug_i_575.cpp
index 4c25fb75..4c25fb75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34006-bug_i_575.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34006-bug_i_575.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34007-bug_i_928.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34007-bug_i_928.cpp
index 78b214bd..78b214bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34007-bug_i_928.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34007-bug_i_928.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34100-bug_i_525.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34100-bug_i_525.cpp
index b810afe0..b810afe0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34100-bug_i_525.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34100-bug_i_525.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34101-bug_i_646.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34101-bug_i_646.cpp
index f89b6416..f89b6416 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34101-bug_i_646.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34101-bug_i_646.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34105-bug_i_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34105-bug_i_663.cpp
index 2a473bc7..2a473bc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34105-bug_i_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34105-bug_i_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34108-bug_i_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34108-bug_i_666.cpp
index 212a8656..212a8656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34108-bug_i_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34108-bug_i_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34112-bug_i_889.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34112-bug_i_889.cpp
index 5b803a0e..5b803a0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34112-bug_i_889.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34112-bug_i_889.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34113-bug_902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34113-bug_902.cpp
index ada480c0..ada480c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34113-bug_902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34113-bug_902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34114-bug_902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34114-bug_902.cpp
index af6bdb44..af6bdb44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34114-bug_902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34114-bug_902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp
index ff76cb2b..ff76cb2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34115-nl_before_func_body_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34116-issue_2000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34116-issue_2000.cpp
index f4f2c2bf..f4f2c2bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34116-issue_2000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34116-issue_2000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34117-extern_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34117-extern_func.cpp
index 4de29e3c..4de29e3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34117-extern_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34117-extern_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34118-Issue_2163.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34118-Issue_2163.cpp
index afd04eb0..afd04eb0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34118-Issue_2163.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34118-Issue_2163.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34120-bug_i_999.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34120-bug_i_999.cpp
index 2a5d64a4..2a5d64a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34120-bug_i_999.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34120-bug_i_999.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34121-bug_1717.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34121-bug_1717.cpp
index 4116871f..4116871f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34121-bug_1717.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34121-bug_1717.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34122-Issue_2440.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34122-Issue_2440.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34122-Issue_2440.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34122-Issue_2440.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34123-Issue_2440_nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34123-Issue_2440_nl.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34123-Issue_2440_nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34123-Issue_2440_nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34130-bug_i_1000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34130-bug_i_1000.cpp
index 6e1e7a0e..6e1e7a0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34130-bug_i_1000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34130-bug_i_1000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34131-bug_i_1000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34131-bug_i_1000.cpp
index 149353e7..149353e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34131-bug_i_1000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34131-bug_i_1000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34132-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34132-new_op.cpp
index 15386247..15386247 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34132-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34132-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34133-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34133-new_op.cpp
index ce690c94..ce690c94 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34133-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34133-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34134-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34134-new_op.cpp
index 67dfa187..67dfa187 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34134-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34134-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34135-new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34135-new_op.cpp
index 044cd859..044cd859 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34135-new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34135-new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp
index 0a6635d0..0a6635d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34136-sp_balance_nested_parens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34140-bug_1027.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34140-bug_1027.cpp
index 5ccafd2b..5ccafd2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34140-bug_1027.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34140-bug_1027.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34141-bug_1005.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34141-bug_1005.cpp
index 01a457d0..01a457d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34141-bug_1005.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34141-bug_1005.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34142-I1112-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34142-I1112-1.cpp
index df27d1d6..df27d1d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34142-I1112-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34142-I1112-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34143-I1112-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34143-I1112-2.cpp
index 28a4489d..28a4489d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34143-I1112-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34143-I1112-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34144-I1112-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34144-I1112-3.cpp
index c95a6c40..c95a6c40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34144-I1112-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34144-I1112-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34145-i683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34145-i683.cpp
index 255c6336..255c6336 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34145-i683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34145-i683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34146-bug_1002.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34146-bug_1002.cpp
index 0d72c80a..0d72c80a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34146-bug_1002.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34146-bug_1002.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34147-bug_1002.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34147-bug_1002.cpp
index 02b85396..02b85396 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34147-bug_1002.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34147-bug_1002.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34148-bug_1139.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34148-bug_1139.cpp
index d6d8a484..d6d8a484 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34148-bug_1139.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34148-bug_1139.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34149-bug_1139.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34149-bug_1139.cpp
index dd0a10dc..dd0a10dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34149-bug_1139.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34149-bug_1139.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34150-bug_1032.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34150-bug_1032.cpp
index 80078efe..80078efe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34150-bug_1032.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34150-bug_1032.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34151-bug_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34151-bug_666.cpp
index 212a8656..212a8656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34151-bug_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34151-bug_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34152-bug_1068.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34152-bug_1068.cpp
index 74fbc8e7..74fbc8e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34152-bug_1068.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34152-bug_1068.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34153-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34153-type_brace_init_lst.cpp
index 356a7713..356a7713 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34153-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34153-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34154-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34154-type_brace_init_lst.cpp
index adc09173..adc09173 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34154-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34154-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34155-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34155-type_brace_init_lst.cpp
index 7d62eafb..7d62eafb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34155-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34155-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34156-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34156-type_brace_init_lst.cpp
index 6519b4b1..6519b4b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34156-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34156-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34157-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34157-type_brace_init_lst.cpp
index 6751c0fa..6751c0fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34157-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34157-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34158-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34158-type_brace_init_lst.cpp
index d5dcfdeb..d5dcfdeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34158-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34158-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34159-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34159-type_brace_init_lst.cpp
index 0b9bf31c..0b9bf31c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34159-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34159-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34160-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34160-type_brace_init_lst.cpp
index 01c89132..01c89132 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34160-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34160-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34161-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34161-type_brace_init_lst.cpp
index cc79678f..cc79678f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34161-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34161-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34162-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34162-type_brace_init_lst.cpp
index 2d5dc62c..2d5dc62c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34162-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34162-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34163-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34163-type_brace_init_lst.cpp
index 9be7507a..9be7507a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34163-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34163-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34164-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34164-type_brace_init_lst.cpp
index 68565614..68565614 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34164-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34164-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34165-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34165-type_brace_init_lst.cpp
index 92fc0b0b..92fc0b0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34165-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34165-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34166-type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34166-type_brace_init_lst.cpp
index d7dfa908..d7dfa908 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34166-type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34166-type_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34168-Issue_2910.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34168-Issue_2910.cpp
index 82c2bec9..82c2bec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34168-Issue_2910.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34168-Issue_2910.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34169-init-list-call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34169-init-list-call.cpp
index 95449eb1..95449eb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34169-init-list-call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34169-init-list-call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34170-i1082.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34170-i1082.cpp
index 06680c0e..06680c0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34170-i1082.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34170-i1082.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34171-i1181.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34171-i1181.cpp
index 1a959d34..1a959d34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34171-i1181.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34171-i1181.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34172-i1165.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34172-i1165.cpp
index c3123b59..c3123b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34172-i1165.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34172-i1165.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34173-i1464.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34173-i1464.cpp
index e4005841..e4005841 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34173-i1464.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34173-i1464.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34174-i1466.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34174-i1466.cpp
index 912488b3..912488b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34174-i1466.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34174-i1466.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34175-i1509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34175-i1509.cpp
index 419807fd..419807fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34175-i1509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34175-i1509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp
index b9a75cf6..b9a75cf6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34176-i1509_bug_1112_correction.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34177-sp_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34177-sp_func_call_paren.cpp
index 580e9bae..580e9bae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34177-sp_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34178-Issue_3237.cpp
new file mode 100644
index 00000000..23b565a9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34178-Issue_3237.cpp
@@ -0,0 +1,4 @@
+void f()
+{
+ CPoint pt( aaa * bbb );
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34180-bug_1402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34180-bug_1402.cpp
index 09714c41..09714c41 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34180-bug_1402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34180-bug_1402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34190-bug_1003.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34190-bug_1003.cpp
index 7495b93d..7495b93d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34190-bug_1003.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34190-bug_1003.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34191-comment-align-multiline.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34191-comment-align-multiline.cpp
index db501481..db501481 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34191-comment-align-multiline.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34191-comment-align-multiline.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34192-i1207.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34192-i1207.cpp
index e02da8c9..e02da8c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34192-i1207.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34192-i1207.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34193-i1218.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34193-i1218.cpp
index d4d05106..d4d05106 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34193-i1218.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34193-i1218.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34194-sp_arith_additive.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34194-sp_arith_additive.cpp
index 5ecb2ec8..5ecb2ec8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34194-sp_arith_additive.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34194-sp_arith_additive.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34195-sp_arith_additive.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34195-sp_arith_additive.cpp
index f419a3ed..f419a3ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34195-sp_arith_additive.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34195-sp_arith_additive.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34196-Issue_1460.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34196-Issue_1460.h
index 63787999..63787999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34196-Issue_1460.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34196-Issue_1460.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34197-bug_1161.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34197-bug_1161.cpp
index 34740f5a..34740f5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34197-bug_1161.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34197-bug_1161.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34198-bug_1249.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34198-bug_1249.cpp
index 65637efe..65637efe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34198-bug_1249.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34198-bug_1249.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34199-not_lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34199-not_lambda.cpp
index a9c65439..a9c65439 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34199-not_lambda.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34199-not_lambda.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34200-i1536.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34200-i1536.cpp
index 0eb7fc69..0eb7fc69 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34200-i1536.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34200-i1536.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34201-i1565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34201-i1565.cpp
index d0bef508..d0bef508 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34201-i1565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34201-i1565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34202-i1617.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34202-i1617.cpp
index 98ede13b..98ede13b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34202-i1617.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34203-i1516.cpp
new file mode 100644
index 00000000..d0612a2b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34203-i1516.cpp
@@ -0,0 +1,23 @@
+void myClass::foo() {
+ int bar;
+ std::string str;
+
+
+ DbConfig::configuredDatabase()->apply(db);
+
+ std::string str2;
+
+ std::string str2;
+
+
+ f();
+ DbConfig::configuredDatabase()->apply(db);
+
+ int bar;
+ std::string str;
+
+ std::string str2;
+
+
+ f();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp
index e8790dbd..e8790dbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34204-func_param_indent_leading_comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34205-bug_1395.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34205-bug_1395.cpp
index 16e2fbba..16e2fbba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34205-bug_1395.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34205-bug_1395.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34206-for_loop_head.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34206-for_loop_head.cpp
index 6cea550d..6cea550d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34206-for_loop_head.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34206-for_loop_head.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34207-for_loop_head.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34207-for_loop_head.cpp
index 2aa9bdc0..2aa9bdc0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34207-for_loop_head.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34207-for_loop_head.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34208-conversion_operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34208-conversion_operator.cpp
index 27b52dac..27b52dac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34208-conversion_operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34209-lambda_selfcalling.cpp
new file mode 100644
index 00000000..8f0c819e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34209-lambda_selfcalling.cpp
@@ -0,0 +1,10 @@
+void f(){
+ int i = 0;
+ const auto j = [](int k){
+ return k+2;
+ } (i);
+
+ const auto l = ([](int k){
+ return k+2;
+ }) (i);
+} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34210-override_virtual.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34210-override_virtual.cpp
index 537454b1..537454b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34210-override_virtual.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34210-override_virtual.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34211-anonymous_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34211-anonymous_enum.cpp
index ef237a6e..ef237a6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34211-anonymous_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34211-anonymous_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34250-bug_1607.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34250-bug_1607.cpp
index 9e4e47d3..9e4e47d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34250-bug_1607.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34250-bug_1607.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34251-bug_1649.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34251-bug_1649.cpp
index 4b352c79..4b352c79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34251-bug_1649.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34251-bug_1649.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34252-issue_2001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34252-issue_2001.cpp
index 39b9446d..39b9446d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34252-issue_2001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34252-issue_2001.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34253-friends.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34253-friends.cpp
index 58fd649a..58fd649a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34253-friends.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34253-friends.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34254-issue_1985.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34254-issue_1985.cpp
index ef9fc90a..ef9fc90a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34254-issue_1985.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34254-issue_1985.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp
index 7005d86c..7005d86c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34255-eat_blanks_after_codewidth.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34256-Issue_2836.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34256-Issue_2836.cpp
index 4d2a648f..4d2a648f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34256-Issue_2836.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34280-UNI-29935.cpp
new file mode 100644
index 00000000..28d0b66d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34280-UNI-29935.cpp
@@ -0,0 +1,6 @@
+void Foo1(BarType & x, void BarFunc());
+
+void Bar()
+{
+ void BarFunc2(BarType & x);
+}
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.74.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp
new file mode 100644
index 00000000..19c4b962
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34290-brace_brace_init_lst.cpp
@@ -0,0 +1,22 @@
+int main()
+{
+ int a0[][] = { { 1 } };
+ unknown_type b0 = { { 2 } };
+ auto c0 = unknown_type { { 3 } };
+ auto d0 = func( { { 3 } } );
+ auto e0 = func( unknown_type { { 3 } } );
+
+ int a1[][] = { {1} };
+ unknown_type b1 = { {2} };
+ auto c1 = unknown_type { {3} };
+ auto d1 = func({ {3} });
+ auto e1 = func(unknown_type { {3} });
+
+ int a2[][] = { {1} };
+ unknown_type b2 = { {2} };
+ auto c2 = unknown_type { {3} };
+ auto d2 = func({ {3} });
+ auto e2 = func(unknown_type { {3} });
+
+ return 1;
+}
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.74.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp
new file mode 100644
index 00000000..aed91c1b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34291-brace_brace_init_lst.cpp
@@ -0,0 +1,22 @@
+int main()
+{
+ int a0[][] = { { 1 } };
+ unknown_type b0 = { { 2 } };
+ auto c0 = unknown_type{ { 3 } };
+ auto d0 = func( { { 3 } } );
+ auto e0 = func( unknown_type{ { 3 } } );
+
+ int a1[][] = { {1} };
+ unknown_type b1 = { {2} };
+ auto c1 = unknown_type{ {3} };
+ auto d1 = func({ {3} });
+ auto e1 = func(unknown_type{ {3} });
+
+ int a2[][] = { {1} };
+ unknown_type b2 = { {2} };
+ auto c2 = unknown_type{ {3} };
+ auto d2 = func({ {3} });
+ auto e2 = func(unknown_type{ {3} });
+
+ return 1;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp
index cc0ac847..cc0ac847 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34292-brace_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp
index c47119ab..c47119ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34293-brace_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp
new file mode 100644
index 00000000..afe3a0ec
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34294-brace_brace_init_lst.cpp
@@ -0,0 +1,22 @@
+int main()
+{
+ int a0[][] = { { 1 } };
+ unknown_type b0 = { { 2 } };
+ auto c0 = unknown_type { { 3 } };
+ auto d0 = func( { { 3 } } );
+ auto e0 = func( unknown_type { { 3 } } );
+
+ int a1[][] = { { 1} };
+ unknown_type b1 = { { 2} };
+ auto c1 = unknown_type{ { 3} };
+ auto d1 = func({ { 3} });
+ auto e1 = func(unknown_type{ { 3} });
+
+ int a2[][] = { { 1} };
+ unknown_type b2 = { { 2} };
+ auto c2 = unknown_type{ { 3} };
+ auto d2 = func({ { 3} });
+ auto e2 = func(unknown_type{ { 3} });
+
+ return 1;
+}
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.74.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp
new file mode 100644
index 00000000..9b8ea3c5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34295-brace_brace_init_lst.cpp
@@ -0,0 +1,22 @@
+int main()
+{
+ int a0[][] = {{1 } };
+ unknown_type b0 = {{2 } };
+ auto c0 = unknown_type {{3 } };
+ auto d0 = func( {{3 } } );
+ auto e0 = func( unknown_type {{3 } } );
+
+ int a1[][] = {{1} };
+ unknown_type b1 = {{2} };
+ auto c1 = unknown_type{{3} };
+ auto d1 = func({{3} });
+ auto e1 = func(unknown_type{{3} });
+
+ int a2[][] = {{1} };
+ unknown_type b2 = {{2} };
+ auto c2 = unknown_type{{3} };
+ auto d2 = func({{3} });
+ auto e2 = func(unknown_type{{3} });
+
+ return 1;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34296-i1768.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34296-i1768.cpp
index 94327d9c..94327d9c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34296-i1768.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34296-i1768.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34297-align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34297-align-assign-mixed.cpp
index d8082600..d8082600 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34297-align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34297-align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34298-align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34298-align-assign-mixed.cpp
index 4f8dadde..4f8dadde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34298-align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34298-align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34299-align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34299-align-assign-mixed.cpp
index ddae789b..ddae789b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34299-align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34299-align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34300-bug_1236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34300-bug_1236.cpp
index 8acaaed2..8acaaed2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34300-bug_1236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34300-bug_1236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp
index 05aaf7c8..05aaf7c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34301-nl_fdef_brace_cond-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp
index 8a35c775..8a35c775 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34302-nl_fdef_brace_cond-r.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp
index e498a669..e498a669 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34303-nl_fdef_brace_cond-fr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp
index 078e070a..078e070a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34304-nl_fdef_brace_cond-rf.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34305-issue_2124-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34305-issue_2124-1.cpp
index bad0ea55..bad0ea55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34305-issue_2124-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34305-issue_2124-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34306-issue_2124-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34306-issue_2124-2.cpp
index bad0ea55..bad0ea55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34306-issue_2124-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34306-issue_2124-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34307-2203.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34307-2203.cpp
index 70a1f31a..70a1f31a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34307-2203.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34307-2203.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34308-enum_comment_wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34308-enum_comment_wrap.cpp
index 736e6718..736e6718 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34308-enum_comment_wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34308-enum_comment_wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34309-issue_2209-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34309-issue_2209-1.cpp
index 82ff67c6..82ff67c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34309-issue_2209-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34309-issue_2209-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34310-issue_2209-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34310-issue_2209-2.cpp
index 26c579d3..26c579d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34310-issue_2209-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34310-issue_2209-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34311-Issue_2250.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34311-Issue_2250.cpp
index 9268c2e3..9268c2e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34311-Issue_2250.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34311-Issue_2250.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34312-Issue_2101.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34312-Issue_2101.cpp
index 3e07c686..3e07c686 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34312-Issue_2101.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34312-Issue_2101.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34313-Issue_2437.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34313-Issue_2437.cpp
index 77a273ef..77a273ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34313-Issue_2437.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34313-Issue_2437.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34314-Issue_2604.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34314-Issue_2604.cpp
index eb87fc8a..eb87fc8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34314-Issue_2604.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34314-Issue_2604.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp
index c4f1a119..c4f1a119 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34315-align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp
index 1bbde49b..1bbde49b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34316-align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp
index e0d3488a..e0d3488a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34317-align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34318-align_assign_func_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34318-align_assign_func_proto.cpp
index 1c003058..1c003058 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34318-align_assign_func_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34318-align_assign_func_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp
index 8a9df8b4..8a9df8b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34319-align_func_proto_thresh2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp
index 432a9e3e..432a9e3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34320-align_func_proto_thresh2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34321-bug_2285.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34321-bug_2285.cpp
index a456e9be..a456e9be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34321-bug_2285.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34321-bug_2285.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34322-issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34322-issue_2623.cpp
index a9566447..a9566447 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34322-issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34322-issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34323-issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34323-issue_2623.cpp
index 72fd90e8..72fd90e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34323-issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34323-issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34324-issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34324-issue_2623.cpp
index 61961fa1..61961fa1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34324-issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34324-issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34325-Issue_3025.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34325-Issue_3025.cpp
index 9e64526e..9e64526e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34325-Issue_3025.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34325-Issue_3025.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34326-Issue_3040.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34326-Issue_3040.cpp
index f9e69333..f9e69333 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34326-Issue_3040.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34326-Issue_3040.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34327-Issue_3044.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34327-Issue_3044.cpp
index 799fd0a1..799fd0a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34327-Issue_3044.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34327-Issue_3044.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34328-Issue_3048.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34328-Issue_3048.cpp
index fb6b0d38..fb6b0d38 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34328-Issue_3048.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34328-Issue_3048.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp
index d46f2655..d46f2655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34330-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp
index d46f2655..d46f2655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34331-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp
index d46f2655..d46f2655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34332-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp
index ef73253e..ef73253e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34333-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp
index ef73253e..ef73253e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34334-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp
index ef73253e..ef73253e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34335-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp
index c228ce46..c228ce46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34336-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp
index c228ce46..c228ce46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34337-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp
index c228ce46..c228ce46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34338-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp
index 7188f0d0..7188f0d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34339-Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp
index 7188f0d0..7188f0d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34340-Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp
index 7188f0d0..7188f0d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34341-Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp
index 0e475aa4..0e475aa4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34350-indent_comma_brace_glob.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp
index 59b5b996..59b5b996 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/34351-indent_comma_brace_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp
new file mode 100644
index 00000000..032a0dfc
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34360-nl_before_struct_struct.cpp
@@ -0,0 +1,17 @@
+#include <string>
+
+
+struct Foo
+{
+ std::string name;
+ int value;
+};
+
+
+struct Bar
+{
+ Foo* parent;
+ int modifier;
+};
+
+void baz( Foo*, Bar* );
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.74.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp
new file mode 100644
index 00000000..02ce38f1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34361-nl_before_struct_scoped_enum.cpp
@@ -0,0 +1,9 @@
+int main();
+
+enum struct Baz
+{
+ Abc = 4
+ , Def = 1
+};
+
+Baz decide( Baz, Baz ) noexcept;
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.74.0/tests/expected/cpp/34500-sp_before_case_colon.cpp
new file mode 100644
index 00000000..54507d64
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34500-sp_before_case_colon.cpp
@@ -0,0 +1,12 @@
+int foo(abc_t d)
+{
+ switch (d)
+ {
+ case A:
+ return 0;
+ case B:
+ return 1;
+ case C:
+ return 2;
+ }
+}
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.74.0/tests/expected/cpp/34501-sp_endif_cmt.cpp
new file mode 100644
index 00000000..9e5b2db8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34501-sp_endif_cmt.cpp
@@ -0,0 +1,11 @@
+#if _MSC_VER < 1300
+#define __func__ "???"
+#else /* comment 1 */
+#define __func__ __FUNCTION__
+#endif /* comment 2 */
+
+#if _MSC_VER < 1300
+#define __func__ "???"
+#else // comment 1
+#define __func__ __FUNCTION__
+#endif // comment 2
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.74.0/tests/expected/cpp/34502-sp_enum_assign.cpp
new file mode 100644
index 00000000..62a271a3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34502-sp_enum_assign.cpp
@@ -0,0 +1,6 @@
+typedef enum
+{
+ A = 0,
+ B = 1 << 0,
+ C = 1 << 1
+};
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.74.0/tests/expected/cpp/34503-sp_enum_assign.cpp
new file mode 100644
index 00000000..2ebab438
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34503-sp_enum_assign.cpp
@@ -0,0 +1,6 @@
+typedef enum
+{
+ A = 0,
+ B = 1 << 0,
+ C = 1 << 1
+};
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.74.0/tests/expected/cpp/34504-issue_574-i.cpp
new file mode 100644
index 00000000..3366cc79
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34504-issue_574-i.cpp
@@ -0,0 +1,5 @@
+class A
+{
+ void check(int strList = 13);
+};
+int A = 5;
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.74.0/tests/expected/cpp/34505-Issue_3220.cpp
new file mode 100644
index 00000000..fae042d7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34505-Issue_3220.cpp
@@ -0,0 +1,6 @@
+int * b;
+auto Func2(Model * model) -> Color * * const;
+auto Func2(Model * model) -> Color * * const {
+ return nullptr;
+}
+int * Funcf(Model * model, int * *);
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.74.0/tests/expected/cpp/34506-Issue_3220.cpp
new file mode 100644
index 00000000..ba42b013
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34506-Issue_3220.cpp
@@ -0,0 +1,6 @@
+int * b;
+auto Func2(Model * model) -> Color * * const;
+auto Func2(Model * model) -> Color * * const {
+ return nullptr;
+}
+int * Funcf(Model * model, int * *);
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.74.0/tests/expected/cpp/34507-Issue_3220.cpp
new file mode 100644
index 00000000..f9f684b8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34507-Issue_3220.cpp
@@ -0,0 +1,6 @@
+int*b;
+auto Func2(Model*model) -> Color**const;
+auto Func2(Model*model) -> Color**const {
+ return nullptr;
+}
+int*Funcf(Model*model, int**);
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.74.0/tests/expected/cpp/34508-Issue_3220.cpp
new file mode 100644
index 00000000..aba03416
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34508-Issue_3220.cpp
@@ -0,0 +1,6 @@
+int* b;
+auto Func2(Model* model) -> Color * * const;
+auto Func2(Model* model) -> Color * * const {
+ return nullptr;
+}
+int * Funcf(Model* model, int* *);
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.74.0/tests/expected/cpp/34509-byref-2.cpp
new file mode 100644
index 00000000..ab1b3a6e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34509-byref-2.cpp
@@ -0,0 +1,8 @@
+int & aa(int &x,int &b);
+// sp_before_byref_func, sp_after_byref_func, sp_before_byref, sp_after_byref, sp_before_byref, sp_after_byref
+int aa(int &x,int &)
+// sp_before_byref, sp_after_byref, sp_before_unnamed_byref
+{
+ b = aa(x,b);
+ c = aa(& y,&d); // sp_addr
+}
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.74.0/tests/expected/cpp/34510-byref-2.cpp
new file mode 100644
index 00000000..0ef61cde
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34510-byref-2.cpp
@@ -0,0 +1,8 @@
+int & aa(int & x,int & b);
+// sp_before_byref_func, sp_after_byref_func, sp_before_byref, sp_after_byref, sp_before_byref, sp_after_byref
+int aa(int & x,int &)
+// sp_before_byref, sp_after_byref, sp_before_unnamed_byref
+{
+ b = aa(x,b);
+ c = aa(& y,&d); // sp_addr
+}
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.74.0/tests/expected/cpp/34511-byref-2.cpp
new file mode 100644
index 00000000..db510335
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34511-byref-2.cpp
@@ -0,0 +1,8 @@
+int & aa(int & x,int & b);
+// sp_before_byref_func, sp_after_byref_func, sp_before_byref, sp_after_byref, sp_before_byref, sp_after_byref
+int aa(int & x,int &)
+// sp_before_byref, sp_after_byref, sp_before_unnamed_byref
+{
+ b = aa(x,b);
+ c = aa(& y,& d); // sp_addr
+}
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.74.0/tests/expected/cpp/34512-byref-2.cpp
new file mode 100644
index 00000000..099e3c2b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34512-byref-2.cpp
@@ -0,0 +1,8 @@
+int&aa(int&x,int&b);
+// sp_before_byref_func, sp_after_byref_func, sp_before_byref, sp_after_byref, sp_before_byref, sp_after_byref
+int aa(int&x,int&)
+// sp_before_byref, sp_after_byref, sp_before_unnamed_byref
+{
+ b = aa(x,b);
+ c = aa(&y,&d); // sp_addr
+}
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.74.0/tests/expected/cpp/34513-sp_cond_question.cpp
new file mode 100644
index 00000000..5f5a9e14
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34513-sp_cond_question.cpp
@@ -0,0 +1,6 @@
+//example file
+int b;
+int t;
+int f;
+int a = b?t:f;
+int a = b? :f;
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.74.0/tests/expected/cpp/34514-sp_cond_question.cpp
new file mode 100644
index 00000000..cec6c827
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34514-sp_cond_question.cpp
@@ -0,0 +1,6 @@
+//example file
+int b;
+int t;
+int f;
+int a = b ? t : f;
+int a = b ? : f;
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.74.0/tests/expected/cpp/34515-sp_cond_question.cpp
new file mode 100644
index 00000000..39997b4a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34515-sp_cond_question.cpp
@@ -0,0 +1,6 @@
+//example file
+int b;
+int t;
+int f;
+int a = b ? t : f;
+int a = b ? : f;
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.74.0/tests/expected/cpp/34516-sp_cond_question.cpp
new file mode 100644
index 00000000..c7d79ab9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34516-sp_cond_question.cpp
@@ -0,0 +1,6 @@
+//example file
+int b;
+int t;
+int f;
+int a = b?t:f;
+int a = b?:f;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34517-semi.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34517-semi.cpp
new file mode 100644
index 00000000..6c42948f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34517-semi.cpp
@@ -0,0 +1,11 @@
+for ( i = 1 ; i < 10 ; i++)
+{
+ a = i ;
+}
+for ( ; ; )
+{
+ a = i ; b = j ;
+ a = i ; /* comment */
+ a = i ; // comment
+}
+if (p == b) ;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34518-semi.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34518-semi.cpp
new file mode 100644
index 00000000..7c8a711e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34518-semi.cpp
@@ -0,0 +1,11 @@
+for ( i = 1 ; i < 10 ; i++)
+{
+ a = i ;
+}
+for ( ; ; )
+{
+ a = i ; b = j;
+ a = i ; /* comment */
+ a = i ; // comment
+}
+if (p == b) ;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34519-semi.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34519-semi.cpp
new file mode 100644
index 00000000..56af135e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34519-semi.cpp
@@ -0,0 +1,11 @@
+for ( i = 1;i < 10;i++)
+{
+ a = i;
+}
+for (;;)
+{
+ a = i;b = j;
+ a = i; /* comment */
+ a = i; // comment
+}
+if (p == b);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_paren_comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34520-comma.cpp
index e9b0c428..e9b0c428 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_paren_comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34521-comma.cpp
new file mode 100644
index 00000000..e101145a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34521-comma.cpp
@@ -0,0 +1,2 @@
+a( , 1);
+typedef SLIST_HEAD( , foo) foo_list_t;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34522-comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34522-comma.cpp
new file mode 100644
index 00000000..bc8ebd4f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34522-comma.cpp
@@ -0,0 +1,2 @@
+a(,1);
+typedef SLIST_HEAD(,foo) foo_list_t;
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.74.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp
new file mode 100644
index 00000000..1b0b4088
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34523-gcc_case_ellipsis.cpp
@@ -0,0 +1,15 @@
+void f(int i)
+{
+ switch(i)
+ {
+ case 1 ... 2:
+ {
+ break;
+ }
+ case 3 ... 5:
+ break;
+
+ default:
+ break
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1002.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34524-bug_1002.cpp
index 713018e4..713018e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1002.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34525-sp_paren_brace.cpp
new file mode 100644
index 00000000..febfb72d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34525-sp_paren_brace.cpp
@@ -0,0 +1,18 @@
+void *stopper_for_apply = (int[]) {0};
+// ^ here
+
+template<typename T, typename U>
+auto add(T t, U u) -> decltype(t + u) {
+// ^ here
+ return t + u;
+}
+
+void f()noexcept() {
+// ^ here
+}
+
+#define FOO5(x) for(;;) (!(x)) { *(volatile int*)0 = 1; }
+// ^ here
+
+(struct foo) {...}
+// ^ here
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.74.0/tests/expected/cpp/34526-sp_paren_brace.cpp
new file mode 100644
index 00000000..4ac73f87
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34526-sp_paren_brace.cpp
@@ -0,0 +1,18 @@
+void *stopper_for_apply = (int[]) {0};
+// ^ here
+
+template<typename T, typename U>
+auto add(T t, U u) -> decltype(t + u) {
+// ^ here
+ return t + u;
+}
+
+void f()noexcept() {
+// ^ here
+}
+
+#define FOO5(x) for(;;) (!(x)) { *(volatile int*)0 = 1; }
+// ^ here
+
+(struct foo) {...}
+// ^ here
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.74.0/tests/expected/cpp/34527-sp_paren_brace.cpp
new file mode 100644
index 00000000..aa65f644
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34527-sp_paren_brace.cpp
@@ -0,0 +1,18 @@
+void *stopper_for_apply = (int[]){0};
+// ^ here
+
+template<typename T, typename U>
+auto add(T t, U u) -> decltype(t + u){
+// ^ here
+ return t + u;
+}
+
+void f()noexcept(){
+// ^ here
+}
+
+#define FOO5(x) for(;;) (!(x)){ *(volatile int*)0 = 1; }
+// ^ here
+
+(struct foo){...}
+// ^ here
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.74.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp
new file mode 100644
index 00000000..946409b2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34528-cmt_trailing_single_line_c_to_cpp.cpp
@@ -0,0 +1,34 @@
+int main(int argc, char **argv){
+
+ // C-style comments on same line with actual code
+ // ----------------------------------------------
+
+ int a = 5; // Trailing, single-line C-style comment
+
+ int b = /* Single-line C-style comment in the middle */ 5;
+
+ /* Single-line C-style comment at beginning of line */ int c = 5;
+
+ int d = 5; /* Trailing
+ Multi-line
+ C-style
+ comment */
+
+# define A_MACRO \
+ do { \
+ if (true) { \
+ int e = 5; /* Trailing single-line C-style comment inside macro*/ \
+ } \
+ } while (0)
+
+
+ // C-style comments with no actual code on the same line
+ // -----------------------------------------------------
+
+ // Single-line C-style comment.
+
+ /* Multi-line
+ * C-style
+ * comment.
+ * */
+}
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.74.0/tests/expected/cpp/34529-type_brace_init_lst.cpp
new file mode 100644
index 00000000..cc79678f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34529-type_brace_init_lst.cpp
@@ -0,0 +1,87 @@
+// Uncrustify does not process the intention of an using alias,
+// unknown_kw will therefore no be parsed as known keyword
+using unknown_kw = int;
+
+int main()
+{
+ // 'int' is a known c++ keyword
+ auto a0 = int { 1 };
+ auto b0 = unknown_kw { 2 };
+ auto c0 = ::unknown_kw { 3 };
+ auto d0 = (int) unknown_kw { 4 };
+ auto e0 = (int) ::unknown_kw { 5 };
+ auto f0 = static_cast<int>(unknown_kw { 6 });
+ auto g0 = static_cast<int>(::unknown_kw { 7 });
+
+ auto a1 = int{ 1 };
+ auto b1 = unknown_kw{ 2 };
+ auto c1 = ::unknown_kw{ 3 };
+ auto d1 = (int) unknown_kw{ 4 };
+ auto e1 = (int) ::unknown_kw{ 5 };
+ auto f1 = static_cast<int>(unknown_kw{ 6 });
+ auto g1 = static_cast<int>(::unknown_kw{ 7 });
+
+
+
+ auto a2 = int
+
+ { 1 };
+ auto b2 = unknown_kw
+
+ { 2 };
+ auto c2 = ::unknown_kw
+
+ { 3 };
+ auto d2 = (int) unknown_kw
+
+ { 4 };
+ auto e2 = (int) ::unknown_kw
+
+ { 5 };
+ auto f2 = static_cast<int>(unknown_kw
+
+ { 6 });
+ auto g2 = static_cast<int>(::unknown_kw
+
+ { 7 });
+
+
+
+ auto a1 = int{
+
+ 1
+
+ };
+ auto b1 = unknown_kw{
+
+ 2
+
+ };
+ auto c1 = ::unknown_kw {
+
+ 3
+
+ };
+ auto d1 = (int) unknown_kw {
+
+ 4
+
+ };
+ auto e1 = (int) ::unknown_kw {
+
+ 5
+
+ };
+ auto f1 = static_cast<int>(unknown_kw {
+
+ 6
+
+ });
+ auto g1 = static_cast<int>(::unknown_kw {
+
+ 7
+
+ });
+
+ return 1;
+} \ No newline at end of file
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.74.0/tests/expected/cpp/34530-type_brace_init_lst.cpp
new file mode 100644
index 00000000..b99238b8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34530-type_brace_init_lst.cpp
@@ -0,0 +1,87 @@
+// Uncrustify does not process the intention of an using alias,
+// unknown_kw will therefore no be parsed as known keyword
+using unknown_kw = int;
+
+int main()
+{
+ // 'int' is a known c++ keyword
+ auto a0 = int { 1};
+ auto b0 = unknown_kw { 2};
+ auto c0 = ::unknown_kw { 3};
+ auto d0 = (int) unknown_kw { 4};
+ auto e0 = (int) ::unknown_kw { 5};
+ auto f0 = static_cast<int>(unknown_kw { 6});
+ auto g0 = static_cast<int>(::unknown_kw { 7});
+
+ auto a1 = int{ 1};
+ auto b1 = unknown_kw{ 2};
+ auto c1 = ::unknown_kw{ 3};
+ auto d1 = (int) unknown_kw{ 4};
+ auto e1 = (int) ::unknown_kw{ 5};
+ auto f1 = static_cast<int>(unknown_kw{ 6});
+ auto g1 = static_cast<int>(::unknown_kw{ 7});
+
+
+
+ auto a2 = int
+
+ { 1};
+ auto b2 = unknown_kw
+
+ { 2};
+ auto c2 = ::unknown_kw
+
+ { 3};
+ auto d2 = (int) unknown_kw
+
+ { 4};
+ auto e2 = (int) ::unknown_kw
+
+ { 5};
+ auto f2 = static_cast<int>(unknown_kw
+
+ { 6});
+ auto g2 = static_cast<int>(::unknown_kw
+
+ { 7});
+
+
+
+ auto a1 = int{
+
+ 1
+
+ };
+ auto b1 = unknown_kw{
+
+ 2
+
+ };
+ auto c1 = ::unknown_kw {
+
+ 3
+
+ };
+ auto d1 = (int) unknown_kw {
+
+ 4
+
+ };
+ auto e1 = (int) ::unknown_kw {
+
+ 5
+
+ };
+ auto f1 = static_cast<int>(unknown_kw {
+
+ 6
+
+ });
+ auto g1 = static_cast<int>(::unknown_kw {
+
+ 7
+
+ });
+
+ return 1;
+} \ No newline at end of file
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.74.0/tests/expected/cpp/34531-type_brace_init_lst.cpp
new file mode 100644
index 00000000..cc79678f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34531-type_brace_init_lst.cpp
@@ -0,0 +1,87 @@
+// Uncrustify does not process the intention of an using alias,
+// unknown_kw will therefore no be parsed as known keyword
+using unknown_kw = int;
+
+int main()
+{
+ // 'int' is a known c++ keyword
+ auto a0 = int { 1 };
+ auto b0 = unknown_kw { 2 };
+ auto c0 = ::unknown_kw { 3 };
+ auto d0 = (int) unknown_kw { 4 };
+ auto e0 = (int) ::unknown_kw { 5 };
+ auto f0 = static_cast<int>(unknown_kw { 6 });
+ auto g0 = static_cast<int>(::unknown_kw { 7 });
+
+ auto a1 = int{ 1 };
+ auto b1 = unknown_kw{ 2 };
+ auto c1 = ::unknown_kw{ 3 };
+ auto d1 = (int) unknown_kw{ 4 };
+ auto e1 = (int) ::unknown_kw{ 5 };
+ auto f1 = static_cast<int>(unknown_kw{ 6 });
+ auto g1 = static_cast<int>(::unknown_kw{ 7 });
+
+
+
+ auto a2 = int
+
+ { 1 };
+ auto b2 = unknown_kw
+
+ { 2 };
+ auto c2 = ::unknown_kw
+
+ { 3 };
+ auto d2 = (int) unknown_kw
+
+ { 4 };
+ auto e2 = (int) ::unknown_kw
+
+ { 5 };
+ auto f2 = static_cast<int>(unknown_kw
+
+ { 6 });
+ auto g2 = static_cast<int>(::unknown_kw
+
+ { 7 });
+
+
+
+ auto a1 = int{
+
+ 1
+
+ };
+ auto b1 = unknown_kw{
+
+ 2
+
+ };
+ auto c1 = ::unknown_kw {
+
+ 3
+
+ };
+ auto d1 = (int) unknown_kw {
+
+ 4
+
+ };
+ auto e1 = (int) ::unknown_kw {
+
+ 5
+
+ };
+ auto f1 = static_cast<int>(unknown_kw {
+
+ 6
+
+ });
+ auto g1 = static_cast<int>(::unknown_kw {
+
+ 7
+
+ });
+
+ return 1;
+} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/type_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34532-type_brace_init_lst.cpp
index 53e74de2..53e74de2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/type_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/34533-templates.cpp
new file mode 100644
index 00000000..5f3d6f90
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34533-templates.cpp
@@ -0,0 +1,188 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f < T > ()
+
+class MyClass
+{
+public:
+ std::map < int, bool > someData;
+ std::map < int, std::list < bool > > otherData;
+};
+
+void foo()
+{
+ List < byte > bob = new List < byte > ();
+
+}
+
+A < B > foo;
+A < B,C > bar;
+A < B* > baz;
+A < B < C > > bay;
+
+void asd(void)
+{
+ A < B > foo;
+ A < B,C > bar;
+ A < B* > baz;
+ A < B < C > > bay;
+ if (a<b && b>c)
+ {
+ a = b<c>0;
+ }
+ if (a < bar() > c)
+ {
+ }
+ a<up_lim() ? do_hi() : do_low;
+ a[ a < b > c] = d;
+}
+
+template< typename T > class MyClass
+{
+
+}
+
+template< typename T >
+class MyClass
+{
+}
+
+template< typename A, typename B, typename C > class MyClass : myvar(0),
+ myvar2(0)
+{
+
+}
+
+template< typename A, typename B, typename C > class MyClass
+ : myvar(0),
+ myvar2(0)
+{
+
+}
+
+
+static int max_value()
+{
+ return (std :: numeric_limits < int >:: max ) ();
+}
+
+template< class Config_ >
+priority_queue < Config_ > :: ~priority_queue () {
+
+}
+
+template< class T >
+T test(T a) {
+ return a;
+}
+
+int main() {
+ int k;
+ int j;
+ h g < int >;
+ k=test < int > (j);
+ return 0;
+}
+
+template< typename T, template< typename, unsigned int, unsigned int > class ConcreteStorageClass >
+class RotationMatrix
+ : public StaticBaseMatrix < T, 3, 3, ConcreteStorageClass >
+{
+
+public:
+
+ RotationMatrix()
+ : StaticBaseMatrix < T, 3, 3, ConcreteStorageClass > ()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass < T, 3, 3 >& other)
+ {
+ // do something
+ }
+
+};
+
+int main()
+{
+ MyClass < double, 3, 3, MyStorage > foo;
+}
+
+template< typename CharT, int N, typename Traits >
+inline std::basic_ostream < CharT,Traits >& FWStreamOut(std::basic_ostream < CharT,Traits >& os,
+ const W::S < CharT,N,Traits >& s)
+{
+ return operator << < CharT, N, Traits, char, std::char_traits < char > > ( os, s );
+}
+
+struct foo {
+ type1 < int& > bar;
+};
+struct foo {
+ type1 < int const > bar;
+};
+
+
+template< int i > void f();
+template< int i > void g() {
+ f < i - 1 > ();
+ f < i > ();
+ f < i + 1 > ();
+ f < bar() > ();
+}
+void h() {
+ g < 42 > ();
+}
+
+#include <vector>
+std::vector < int > A(2);
+std::vector < int > B;
+std::vector < int > C(2);
+std::vector < int > D;
+
+template< class T > struct X { template< class U > void operator ()(U); };
+
+template< class T > class Y { template< class V > void f(V); };
+
+void (* foobar)(void) = NULL;
+std::vector < void (*)(void) > functions;
+
+#define MACRO( a ) a
+template< typename = int > class X;
+MACRO ( void f( X < >& x ) );
+void g( X < >& x );
+
+#include <vector>
+typedef std::vector < std::vector < int > > Table; // OK
+typedef std::vector < std::vector < bool > > Flags; // Error
+
+void func(List < B > = default_val1);
+void func(List < List < B > > = default_val2);
+
+BLAH < (3.14>=42) > blah;
+bool X = j < 3 > >1;
+
+void foo()
+{
+ A < (X>Y) > a;
+ a = static_cast < List < B > >(ld);
+}
+
+template< int i > class X { /* ... */ };
+X<1>2>x1; // Syntax error.
+X < (1>2) > x2; // Okay.
+
+template< class T > class Y { /* ... */ };
+Y < X < 1 > > x3; // Okay, same as "Y<X<1> > x3;".
+Y < X < (6 >> 1) > > x4;
+
+
+template< typename T >
+int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34534-templates.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34534-templates.cpp
new file mode 100644
index 00000000..9e3f463d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34534-templates.cpp
@@ -0,0 +1,188 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f < T > ()
+
+class MyClass
+{
+public:
+ std::map < int, bool > someData;
+ std::map < int, std::list < bool > > otherData;
+};
+
+void foo()
+{
+ List < byte > bob = new List < byte > ();
+
+}
+
+A < B > foo;
+A < B,C > bar;
+A < B* > baz;
+A < B < C > > bay;
+
+void asd(void)
+{
+ A < B > foo;
+ A < B,C > bar;
+ A < B* > baz;
+ A < B < C > > bay;
+ if (a<b && b>c)
+ {
+ a = b<c>0;
+ }
+ if (a < bar() > c)
+ {
+ }
+ a<up_lim() ? do_hi() : do_low;
+ a[ a < b > c] = d;
+}
+
+template< typename T > class MyClass
+{
+
+}
+
+template< typename T >
+class MyClass
+{
+}
+
+template< typename A, typename B, typename C > class MyClass : myvar(0),
+ myvar2(0)
+{
+
+}
+
+template< typename A, typename B, typename C > class MyClass
+ : myvar(0),
+ myvar2(0)
+{
+
+}
+
+
+static int max_value()
+{
+ return (std :: numeric_limits < int >:: max ) ();
+}
+
+template< class Config_ >
+priority_queue < Config_ > :: ~priority_queue () {
+
+}
+
+template< class T >
+T test(T a) {
+ return a;
+}
+
+int main() {
+ int k;
+ int j;
+ h g < int >;
+ k=test < int >(j);
+ return 0;
+}
+
+template< typename T, template< typename, unsigned int, unsigned int > class ConcreteStorageClass >
+class RotationMatrix
+ : public StaticBaseMatrix < T, 3, 3, ConcreteStorageClass >
+{
+
+public:
+
+ RotationMatrix()
+ : StaticBaseMatrix < T, 3, 3, ConcreteStorageClass > ()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass < T, 3, 3 >& other)
+ {
+ // do something
+ }
+
+};
+
+int main()
+{
+ MyClass < double, 3, 3, MyStorage > foo;
+}
+
+template< typename CharT, int N, typename Traits >
+inline std::basic_ostream < CharT,Traits >& FWStreamOut(std::basic_ostream < CharT,Traits >& os,
+ const W::S < CharT,N,Traits >& s)
+{
+ return operator << < CharT, N, Traits, char, std::char_traits < char > >( os, s );
+}
+
+struct foo {
+ type1 < int& > bar;
+};
+struct foo {
+ type1 < int const > bar;
+};
+
+
+template< int i > void f();
+template< int i > void g() {
+ f < i - 1 > ();
+ f < i > ();
+ f < i + 1 > ();
+ f < bar() > ();
+}
+void h() {
+ g < 42 > ();
+}
+
+#include <vector>
+std::vector < int > A(2);
+std::vector < int > B;
+std::vector < int > C(2);
+std::vector < int > D;
+
+template< class T > struct X { template< class U > void operator ()(U); };
+
+template< class T > class Y { template< class V > void f(V); };
+
+void (* foobar)(void) = NULL;
+std::vector < void (*)(void) > functions;
+
+#define MACRO( a ) a
+template< typename = int > class X;
+MACRO ( void f( X < >& x ) );
+void g( X < >& x );
+
+#include <vector>
+typedef std::vector < std::vector < int > > Table; // OK
+typedef std::vector < std::vector < bool > > Flags; // Error
+
+void func(List < B > = default_val1);
+void func(List < List < B > > = default_val2);
+
+BLAH < (3.14>=42) > blah;
+bool X = j < 3 > >1;
+
+void foo()
+{
+ A < (X>Y) > a;
+ a = static_cast < List < B > >(ld);
+}
+
+template< int i > class X { /* ... */ };
+X<1>2>x1; // Syntax error.
+X < (1>2) > x2; // Okay.
+
+template< class T > class Y { /* ... */ };
+Y < X < 1 > > x3; // Okay, same as "Y<X<1> > x3;".
+Y < X < (6 >> 1) > > x4;
+
+
+template< typename T >
+int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
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.74.0/tests/expected/cpp/34535-sp_after_angle.cpp
new file mode 100644
index 00000000..18788919
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34535-sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template < typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE(foo < int> )
+
+int bar(foo <int > );
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.74.0/tests/expected/cpp/34536-sp_after_angle.cpp
new file mode 100644
index 00000000..8764578e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/34536-sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template<typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE(foo<int>)
+
+int bar(foo<int>);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/39000-UNI-64325.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/39000-UNI-64325.cpp
index c4005d7c..c4005d7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/39000-UNI-64325.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/39000-UNI-64325.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60001-UNI-2650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60001-UNI-2650.cpp
index b9ced773..b9ced773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60001-UNI-2650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60001-UNI-2650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60002-UNI-16283.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60002-UNI-16283.cpp
index 7f042642..7f042642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60002-UNI-16283.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60002-UNI-16283.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60003-UNI-1288.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60003-UNI-1288.cpp
index aece270a..aece270a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60003-UNI-1288.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/60006-UNI-2049.cpp
new file mode 100644
index 00000000..7e47d927
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60006-UNI-2049.cpp
@@ -0,0 +1,8 @@
+// Pointer mark should be formatted (WINAPI* SetXX)
+typedef DWORD (WINAPI* SetDllDirectory) (LPCSTR);
+// Pointer mark should be formatted (EXCEPTION_POINTERS* pExt)
+static LONG WINAPI CustomUnhandledExceptionFilter(EXCEPTION_POINTERS* pExInfo)
+{
+ if (EXCEPTION_BREAKPOINT == pExInfo->ExceptionRecord->ExceptionCode) // Breakpoint. Don't treat this as a normal crash.
+ return EXCEPTION_CONTINUE_SEARCH;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60017-UNI-2683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60017-UNI-2683.cpp
index 734e3999..734e3999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60017-UNI-2683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60017-UNI-2683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60022-UNI-18439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60022-UNI-18439.cpp
index 8d467c67..8d467c67 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60022-UNI-18439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60022-UNI-18439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60025-UNI-19894.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60025-UNI-19894.cpp
index 2d7e481e..2d7e481e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60025-UNI-19894.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60025-UNI-19894.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60027-UNI-21506.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60027-UNI-21506.cpp
index a8c5f2df..a8c5f2df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60027-UNI-21506.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60027-UNI-21506.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60028-UNI-21509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60028-UNI-21509.cpp
index bde48ee7..bde48ee7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60028-UNI-21509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60028-UNI-21509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60029-UNI-21510.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60029-UNI-21510.cpp
index ea406fbe..ea406fbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60029-UNI-21510.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60029-UNI-21510.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60030-UNI-21727.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60030-UNI-21727.cpp
index 991d2631..991d2631 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60030-UNI-21727.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60030-UNI-21727.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60031-UNI-21728.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60031-UNI-21728.cpp
index 658fba68..658fba68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60031-UNI-21728.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60031-UNI-21728.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60032-UNI-21729.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60032-UNI-21729.cpp
index 4b8d1d59..4b8d1d59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60032-UNI-21729.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60032-UNI-21729.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60036-UNI-2680.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60036-UNI-2680.cpp
index b6aa5bd7..b6aa5bd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60036-UNI-2680.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60036-UNI-2680.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60038-UNI-30088.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60038-UNI-30088.cpp
index 1fd5c1fe..1fd5c1fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60038-UNI-30088.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60038-UNI-30088.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60039-UNI-30628.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60039-UNI-30628.cpp
index ffa60026..ffa60026 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60039-UNI-30628.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60039-UNI-30628.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60042-UNI-18777.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60042-UNI-18777.cpp
index 0f177fdc..0f177fdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60042-UNI-18777.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60042-UNI-18777.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60043-i2033.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60043-i2033.cpp
index fd27cf6d..fd27cf6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60043-i2033.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60043-i2033.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60044-i2116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60044-i2116.cpp
index af664cd9..af664cd9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60044-i2116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60044-i2116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp
index 364b2a6b..364b2a6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60045-align_asterisk_after_type_cast.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp
index c0c066b8..c0c066b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60046-align_continuation_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60047-align_default_after_override.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60047-align_default_after_override.cpp
index 43db090f..43db090f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60047-align_default_after_override.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60047-align_default_after_override.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60048-bug_2322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60048-bug_2322.cpp
index 50454903..50454903 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60048-bug_2322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60048-bug_2322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60049-bug_2402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60049-bug_2402.cpp
index e483fdc9..e483fdc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60049-bug_2402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60049-bug_2402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index a344480b..a344480b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60051-bug_2371.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60051-bug_2371.cpp
index f17cec62..f17cec62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60051-bug_2371.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60051-bug_2371.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60052-bug_2433_1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60052-bug_2433_1.cpp
index d011d5a1..d011d5a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60052-bug_2433_1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60052-bug_2433_1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60053-bug_2433_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60053-bug_2433_2.cpp
index 600efc82..600efc82 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60053-bug_2433_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60053-bug_2433_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp
index ed92e698..ed92e698 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60054-interface-keyword-in-cpp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60055-issue_3116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60055-issue_3116.cpp
index 44ec3a5f..44ec3a5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60055-issue_3116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60055-issue_3116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60056-issue_3116-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60056-issue_3116-2.cpp
index dded453c..dded453c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/60056-issue_3116-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cpp/60057-issue_3116.cpp
new file mode 100644
index 00000000..991c46bd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60057-issue_3116.cpp
@@ -0,0 +1,233 @@
+// Singular with various newline formats
+auto f = [] -> void {
+ return;
+ };
+
+auto f = [] -> void {
+ return;
+ }();
+
+auto f = [] -> void
+ {
+ return;
+ }();
+
+auto f =
+ [] -> void {
+ return;
+ };
+
+auto f =
+ [] -> void
+ {
+ return;
+ };
+
+auto f
+ = [] -> void {
+ int i = 0;
+ return;
+ };
+
+auto f
+ = []
+ {
+ int i = 0;
+ return;
+ };
+
+// Nested lambda
+auto f = [] {
+ auto g = [] {
+ auto h = [] {
+ return;
+ };
+ return;
+ };
+ return;
+ };
+
+auto f = [] {
+ auto g = []
+ {
+ auto h = [] {
+ return;
+ };
+ return;
+ };
+ return;
+ };
+
+auto f = []
+ {
+ auto g = [] {
+ auto h = []
+ {
+ return;
+ };
+ return;
+ };
+ return;
+ };
+
+// Nested lambda within functions
+Func(
+ [] {
+ return;
+ },
+ [] {
+ return;
+ }
+);
+
+Func([] {
+ return;
+ },
+ [] {
+ return;
+ }
+);
+
+Func([] {
+ return;
+ },
+ [] {
+ return;
+ }
+)();
+
+Func([] {
+ return;
+ },
+ [] {
+ return;
+ })();
+
+Func([] {
+ return;
+ },
+ [] {
+ return;
+ });
+
+A(
+ B([] (const std::string &s) -> bool {
+ s = "hello";
+ return true;
+ }), 1
+);
+
+A(
+ B(
+ [] (const std::string &s) -> bool {
+ s = "hello";
+ return true;
+ }
+ ), 1
+);
+
+// Inside scope
+{
+ std::thread([](const char *c) {
+ std::cout << c << std::endl;
+ }).detach();
+
+ std::thread(
+ [](const char *c) {
+ std::cout << c << std::endl;
+ }
+ ).detach();
+
+ auto f = [&](int a) {
+ return b;
+ };
+
+ auto f = [&](int a)
+ {
+ return b;
+ };
+}
+
+Func(std::count_if(v.begin(), v.end(), [&](const auto &a) {
+ return a == 3;
+ }));
+
+Func(
+ std::count_if(v.begin(), v.end(), [&](const auto &a)
+ {
+ return a == 3;
+ }));
+
+Func(
+ std::count_if(v.begin(), v.end(), [&](const auto &a) {
+ return a == 3;
+ }));
+
+Func(
+ std::count_if(v.begin(), v.end(), [&](const auto &a) {
+ return a == 3;
+ })
+);
+
+// Test case from issue #3116
+const auto compare = [] (const auto i, const auto j)
+ {
+ return i >= j;
+ };
+
+std::sort(
+ vector.begin(),
+ vector.end(),
+ [] (const auto i, const auto j)
+ {
+ return i >= j;
+ }
+);
+
+// Test case from issue #3116
+if(isWidgetOfCurrentRow)
+{
+ it = std::find_if(
+ reloaded.begin(),
+ reloaded.end(),
+ [&rowGuid](const auto& device)
+ {
+ return (device.thingGUID == rowGuid && !device.isWidget);
+ }
+ );
+}
+else
+{
+ it = std::find_if(
+ reloaded.begin(),
+ reloaded.end(),
+ [&rowGuid](const auto& device)
+ {
+ return device.thingGUID == rowGuid;
+ }
+ );
+}
+
+// Test case from issue 1296 and some variants
+obj->Func([&](int a)
+ {
+ return b;
+ });
+
+obj->Func([] -> int
+ {
+ return b;
+ });
+
+obj->Func([]
+ {
+ return b;
+ }
+);
+
+obj->Func(
+ Func([]
+ {
+ return b;
+ })
+);
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.74.0/tests/expected/cpp/60058-issue_3330.cpp
new file mode 100644
index 00000000..37062480
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60058-issue_3330.cpp
@@ -0,0 +1,9 @@
+class Spaceship
+{
+public:
+ Spaceship():shields(100)
+ {
+ }
+
+ int shields;
+};
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.74.0/tests/expected/cpp/60059-indent_ctor_init.cpp
new file mode 100644
index 00000000..f1b32d0e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60059-indent_ctor_init.cpp
@@ -0,0 +1,18 @@
+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.74.0/tests/expected/cpp/60060-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60060-returns.cpp
new file mode 100644
index 00000000..21013963
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60060-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return /**/x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60061-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60061-returns.cpp
new file mode 100644
index 00000000..bd199ba8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60061-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return /**/x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60062-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60062-returns.cpp
new file mode 100644
index 00000000..1085bd72
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60062-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return/**/x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return/**/x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return/**/6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60063-returns.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60063-returns.cpp
new file mode 100644
index 00000000..bd199ba8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60063-returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return /**/x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return /**/x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return /**/6;
+ default:
+ return;
+ }
+}
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.74.0/tests/expected/cpp/60064-issue_3368.cpp
new file mode 100644
index 00000000..2158086c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60064-issue_3368.cpp
@@ -0,0 +1,10 @@
+class Spaceship
+{
+public:
+ template<class T>
+ Spaceship<T>():shields(100)
+ {
+ }
+
+ int shields;
+};
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.74.0/tests/expected/cpp/60065-issue_3378.cpp
new file mode 100644
index 00000000..8da9261d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cpp/60065-issue_3378.cpp
@@ -0,0 +1,28 @@
+class Foo
+{
+public:
+ int bar()
+ {
+one:
+ two:
+ three:
+ four:
+ five:
+ six:
+ seven:
+ eight:
+ nine:
+ ten:
+ eleven:
+ twelve:
+ thirteen:
+ fourteen:
+ fifteen:
+ sixteen:
+ seventeen:
+ eighteen:
+ nineteen:
+ twenty:
+ return 0;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10000-simple.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10000-simple.cs
index 36cedfa2..36cedfa2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10000-simple.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10000-simple.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10001-getset.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10001-getset.cs
index 756170b6..756170b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10001-getset.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10001-getset.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10002-simple.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10002-simple.cs
index f8344b26..f8344b26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10002-simple.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10002-simple.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10003-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10003-region.cs
index 2ada63e7..2ada63e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10003-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10003-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10010-var-member.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10010-var-member.cs
index 0da0b9f5..0da0b9f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10010-var-member.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10010-var-member.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10011-strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10011-strings.cs
index 6794e762..6794e762 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10011-strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10011-strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10012-621_this-spacing.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10012-621_this-spacing.cs
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10012-621_this-spacing.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10012-621_this-spacing.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10013-625_where-constraints.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10013-625_where-constraints.cs
index 123109b0..123109b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10013-625_where-constraints.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10013-625_where-constraints.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs
index 2e6d5a98..2e6d5a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10014-630_bad-new-init-semicolon-removal.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10015-misc-failures.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10015-misc-failures.cs
index e7022083..e7022083 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10015-misc-failures.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10015-misc-failures.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10016-new-constraint-paren-space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10016-new-constraint-paren-space.cs
index a337a447..a337a447 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10016-new-constraint-paren-space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10016-new-constraint-paren-space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 59496772..59496772 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 6e192eec..6e192eec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10020-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10020-region.cs
index b2f57ece..b2f57ece 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10020-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10020-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10021-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10021-region.cs
index 926e467d..926e467d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10021-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10021-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10022-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10022-region.cs
index 9628d4fd..9628d4fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10022-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10022-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10023-region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10023-region.cs
index e21c467c..e21c467c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10023-region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10023-region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10027-oneline_property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10027-oneline_property.cs
index e4470be2..e4470be2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10027-oneline_property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10027-oneline_property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10028-ifcolalign.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10028-ifcolalign.cs
index 13df0440..13df0440 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10028-ifcolalign.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10028-ifcolalign.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10029-when.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10029-when.cs
index 4480f618..4480f618 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10029-when.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10029-when.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10030-sort_using.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10030-sort_using.cs
index 99e802c1..99e802c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10030-sort_using.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10030-sort_using.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10031-bug_i_935.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10031-bug_i_935.cs
index c45eb79d..c45eb79d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10031-bug_i_935.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10031-bug_i_935.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10032-sort_using_categ.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10032-sort_using_categ.cs
index ec997fc9..ec997fc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10032-sort_using_categ.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10032-sort_using_categ.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10033-objc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10033-objc.mm
index 07ede276..07ede276 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10033-objc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10033-objc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10034-asm.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10034-asm.h.mm
index 84a5efa8..84a5efa8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10034-asm.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10034-asm.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10035-definesalign.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10035-definesalign.h.mm
index 9ad29954..9ad29954 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10035-definesalign.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10035-definesalign.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10036-inttypes.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10036-inttypes.h.mm
index 4ac13417..4ac13417 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10036-inttypes.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10036-inttypes.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10039-615_nested-usings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10039-615_nested-usings.cs
index d46108bd..d46108bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10039-615_nested-usings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10039-615_nested-usings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10040-tcf.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10040-tcf.cs
index 009f269e..009f269e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10040-tcf.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10040-tcf.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10041-gs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10041-gs.cs
index ba9f873e..ba9f873e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10041-gs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10041-gs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10042-exception-filters.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10042-exception-filters.cs
index d638d9a8..d638d9a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10042-exception-filters.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10042-exception-filters.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10044-ifcomment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10044-ifcomment.cs
index 2c3ab0fc..2c3ab0fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10044-ifcomment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10044-ifcomment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10045-UNI-1288.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10045-UNI-1288.cs
index 03d60f5b..03d60f5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10045-UNI-1288.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10045-UNI-1288.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10046-UNI-1333.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10046-UNI-1333.mm
index de887ad0..de887ad0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10046-UNI-1333.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10046-UNI-1333.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10050-generics.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10050-generics.cs
index 74e49ecd..74e49ecd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10050-generics.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10050-generics.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10051-UNI-1338.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10051-UNI-1338.cs
index 3f3d9d06..3f3d9d06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10051-UNI-1338.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10051-UNI-1338.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10055-UNI-1345.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10055-UNI-1345.cs
index 13f61127..13f61127 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10055-UNI-1345.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10055-UNI-1345.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10060-unsafe.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10060-unsafe.cs
index fdfdd67b..fdfdd67b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10060-unsafe.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10060-unsafe.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10065-UNI-1975.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10065-UNI-1975.cs
index 1d2f2659..1d2f2659 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10065-UNI-1975.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10065-UNI-1975.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10066-UNI-1977.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10066-UNI-1977.cs
index 94b929c4..94b929c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10066-UNI-1977.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10066-UNI-1977.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10067-UNI-1978.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10067-UNI-1978.cs
index 5f55cb2f..5f55cb2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10067-UNI-1978.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10067-UNI-1978.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10070-utf16le.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10070-utf16le.cs
index c017f6c3..c017f6c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10070-utf16le.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10070-utf16le.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10071-utf16be.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10071-utf16be.cs
index d9f54e37..d9f54e37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10071-utf16be.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10071-utf16be.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10072-utf16le_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10072-utf16le_no_bom.cs
index c017f6c3..c017f6c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10072-utf16le_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10072-utf16le_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10073-utf16be_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10073-utf16be_no_bom.cs
index d9f54e37..d9f54e37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10073-utf16be_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10073-utf16be_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10074-UNI-2020.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10074-UNI-2020.cs
index 854a3655..854a3655 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10074-UNI-2020.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10074-UNI-2020.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10075-UNI-2021.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10075-UNI-2021.cs
index b0ec0414..b0ec0414 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10075-UNI-2021.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10075-UNI-2021.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10076-UNI-1343.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10076-UNI-1343.cs
index 076e338d..076e338d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10076-UNI-1343.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10076-UNI-1343.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10077-UNI-1919.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10077-UNI-1919.cs
index cc8e8420..cc8e8420 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10077-UNI-1919.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10077-UNI-1919.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10078-UNI-3484.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10078-UNI-3484.cs
index d7e4f26a..d7e4f26a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10078-UNI-3484.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10078-UNI-3484.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10080-property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10080-property.cs
index 98d3c21c..98d3c21c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10080-property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10080-property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10090-string_multi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10090-string_multi.cs
index 7d006dce..7d006dce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10090-string_multi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10090-string_multi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10100-bug_600.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10100-bug_600.cs
index 54c24643..54c24643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10100-bug_600.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10100-bug_600.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10101-sf607.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10101-sf607.cs
index 3207e6c5..3207e6c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10101-sf607.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10101-sf607.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10102-pp-ignore.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10102-pp-ignore.mm
index f26232c9..f26232c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10102-pp-ignore.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10102-pp-ignore.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10103-UNI-2506.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10103-UNI-2506.cs
index 8cd07962..8cd07962 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10103-UNI-2506.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10103-UNI-2506.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10104-UNI-2505.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10104-UNI-2505.cs
index a17e6a5e..a17e6a5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10104-UNI-2505.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10104-UNI-2505.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10110-mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10110-mdarray_space.cs
index 8c328f5e..8c328f5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10110-mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10110-mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10111-mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10111-mdarray_space.cs
index 56aa58ce..56aa58ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10111-mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10111-mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10112-mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10112-mdarray_space.cs
index ab877b8e..ab877b8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10112-mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10112-mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10119-preserveTabs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10119-preserveTabs.cs
index c9583dcd..c9583dcd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10119-preserveTabs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10119-preserveTabs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10120-cmt_backslash_eol.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10120-cmt_backslash_eol.cs
index e56aec25..e56aec25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10120-cmt_backslash_eol.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10120-cmt_backslash_eol.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10130-sp_between_new_paren.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10130-sp_between_new_paren.cs
index fd706ffa..fd706ffa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10130-sp_between_new_paren.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10130-sp_between_new_paren.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10140-remove_semi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10140-remove_semi.cs
index 3ee1926e..3ee1926e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10140-remove_semi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10140-remove_semi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10150-operator-null-conditional.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10150-operator-null-conditional.cs
index 61ac6d74..61ac6d74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10150-operator-null-conditional.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10150-operator-null-conditional.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs
index 416e6afc..416e6afc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10151-operator_null-coalescing-assignment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10160-delegate.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10160-delegate.cs
index 6296ad80..6296ad80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10160-delegate.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10160-delegate.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10161-delegate.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10161-delegate.cs
index 152fba2b..152fba2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10161-delegate.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10161-delegate.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10200-logger.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10200-logger.cs
index defede8a..defede8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10200-logger.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10200-logger.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10300-1822.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10300-1822.cs
index 92b5fd5b..92b5fd5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10300-1822.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10300-1822.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10628-sf628.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10628-sf628.cs
index 54d3c52c..54d3c52c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/10628-sf628.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/10628-sf628.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11011-620_getset-brace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11011-620_getset-brace.cs
index d4652c5f..d4652c5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11011-620_getset-brace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11011-620_getset-brace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11030-argtypes.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11030-argtypes.mm
index 1afeb694..1afeb694 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11030-argtypes.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11030-argtypes.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11031-casting.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11031-casting.mm
index c73d6ef8..c73d6ef8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11031-casting.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11031-casting.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11032-newlines.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11032-newlines.mm
index 49a15913..49a15913 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11032-newlines.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11032-newlines.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11072-UNI-2007.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11072-UNI-2007.cs
index 29e53f26..29e53f26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11072-UNI-2007.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11072-UNI-2007.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11073-UNI-2008.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11073-UNI-2008.cs
index a4de3475..a4de3475 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/11073-UNI-2008.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/11073-UNI-2008.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12001-bug_620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12001-bug_620.cs
index 56e9b8bc..56e9b8bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12001-bug_620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12001-bug_620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12002-nullable_prop.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12002-nullable_prop.cs
index 21c4f7b0..21c4f7b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12002-nullable_prop.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12002-nullable_prop.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs
index 3dab10f6..3dab10f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12003-fncall_as_ctor_in_attr.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12004-verbatim_strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12004-verbatim_strings.cs
index 73fa1bf0..73fa1bf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12004-verbatim_strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12004-verbatim_strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12005-bug_1591.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12005-bug_1591.cs
index ac62df9e..ac62df9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12005-bug_1591.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12005-bug_1591.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12101-bug_i_679.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12101-bug_i_679.cs
index 199ad7e6..199ad7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12101-bug_i_679.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12101-bug_i_679.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs
index e6e0eede..e6e0eede 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12102-mod_full_brace_nl_block_rem_mlcond.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs
index 8ecd4051..8ecd4051 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12103-mod_full_brace_nl_block_rem_mlcond.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12104-bug_1637.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12104-bug_1637.cs
index 9ffe19e7..9ffe19e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12104-bug_1637.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12104-bug_1637.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12105-bug_1650.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12105-bug_1650.cs
index 869a9d0f..869a9d0f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12105-bug_1650.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12105-bug_1650.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12106-UNI-40685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12106-UNI-40685.cs
index 9b70920e..9b70920e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12106-UNI-40685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12106-UNI-40685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs
index 6bcd9201..6bcd9201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12107-mod_full_paren_if_bool.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12108-Issue_2705.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12108-Issue_2705.cs
index 08619bb1..08619bb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/12108-Issue_2705.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/cs/12200-comma.cs
new file mode 100644
index 00000000..34ccfdd8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12200-comma.cs
@@ -0,0 +1 @@
+int[ , , ] x;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12201-comma.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12201-comma.cs
new file mode 100644
index 00000000..794410f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12201-comma.cs
@@ -0,0 +1 @@
+int[ , , ] x;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12202-comma.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12202-comma.cs
new file mode 100644
index 00000000..29ab2c3e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/12202-comma.cs
@@ -0,0 +1 @@
+int[,,] x;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/19000-UNI-58354.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/19000-UNI-58354.cs
index 6c77de40..6c77de40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/19000-UNI-58354.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/19000-UNI-58354.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/20010-UNI-32658.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20010-UNI-32658.cs
index 145da65f..145da65f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/20010-UNI-32658.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20010-UNI-32658.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/20011-bug_1620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20011-bug_1620.cs
index 3b837292..3b837292 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/20011-bug_1620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/20011-bug_1620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60004-UNI-2684.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60004-UNI-2684.cs
index ff0b31f1..ff0b31f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60004-UNI-2684.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60004-UNI-2684.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60005-UNI-2685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60005-UNI-2685.cs
index ec671dd4..ec671dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60005-UNI-2685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60005-UNI-2685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60007-UNI-3083.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60007-UNI-3083.cs
index 5209dc72..5209dc72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60007-UNI-3083.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60007-UNI-3083.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60008-UNI-17253.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60008-UNI-17253.cs
index 9021a372..9021a372 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60008-UNI-17253.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60008-UNI-17253.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60009-UNI-9917.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60009-UNI-9917.cs
index 5e352d10..5e352d10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60009-UNI-9917.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60009-UNI-9917.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60011-UNI-11095.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60011-UNI-11095.mm
index 4f88df51..4f88df51 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60011-UNI-11095.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60011-UNI-11095.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60012-UNI-12303.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60012-UNI-12303.cs
index 01be8291..01be8291 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60012-UNI-12303.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60012-UNI-12303.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60013-UNI-13955.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60013-UNI-13955.cs
index 940aa89b..940aa89b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60013-UNI-13955.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60013-UNI-13955.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60015-UNI-14131.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60015-UNI-14131.cs
index 9656bee8..9656bee8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60015-UNI-14131.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60015-UNI-14131.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60016-UNI-11662.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60016-UNI-11662.cs
index 9a49fdba..9a49fdba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60016-UNI-11662.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60016-UNI-11662.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60018-UNI-18777.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60018-UNI-18777.cs
index 198d5be3..198d5be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60018-UNI-18777.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60018-UNI-18777.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60019-UNI-18780.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60019-UNI-18780.cs
index 0eea713e..0eea713e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60019-UNI-18780.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60019-UNI-18780.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60020-UNI-18829.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60020-UNI-18829.cs
index a72ca87b..a72ca87b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60020-UNI-18829.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60020-UNI-18829.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60023-UNI-18437.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60023-UNI-18437.cs
index d8178e73..d8178e73 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60023-UNI-18437.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60023-UNI-18437.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60024-UNI-19644.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60024-UNI-19644.cs
index eb0d4c9c..eb0d4c9c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60024-UNI-19644.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60024-UNI-19644.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60026-UNI-19895.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60026-UNI-19895.cs
index 1fedd580..1fedd580 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60026-UNI-19895.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60026-UNI-19895.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60033-UNI-21730.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60033-UNI-21730.cs
index 6fcb8c16..6fcb8c16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60033-UNI-21730.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60033-UNI-21730.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60036-UNI-11993.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60036-UNI-11993.cs
index bf703537..bf703537 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60036-UNI-11993.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60036-UNI-11993.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60037-UNI-29933.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60037-UNI-29933.cs
index 943cbf35..943cbf35 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60037-UNI-29933.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60037-UNI-29933.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60040-UNI-30498_2.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60040-UNI-30498_2.cs
index 445a7c97..445a7c97 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60040-UNI-30498_2.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60040-UNI-30498_2.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs
index 2fc371c3..2fc371c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60041-squeeze-paren-close-Option.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs
index 4f66d541..4f66d541 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60042-indent-multistring-coulmn1.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60044-UNI-37241.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60044-UNI-37241.cs
index 57d4ffeb..57d4ffeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60044-UNI-37241.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60044-UNI-37241.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60045-add-nl-before-namespace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60045-add-nl-before-namespace.cs
index d9840704..d9840704 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cs/60045-add-nl-before-namespace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/cs/60045-add-nl-before-namespace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40000-HashMap.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40000-HashMap.d
index 74d0614b..74d0614b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40000-HashMap.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40000-HashMap.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40001-imports.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40001-imports.d
index 9f12a88e..9f12a88e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40001-imports.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40001-imports.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40002-volatile.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40002-volatile.d
index 4dbd66dc..4dbd66dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40002-volatile.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40002-volatile.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40003-volatile-1.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40003-volatile-1.d
index 2ef2634d..2ef2634d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40003-volatile-1.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40003-volatile-1.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40004-volatile-2.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40004-volatile-2.d
index bc5a0de4..bc5a0de4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40004-volatile-2.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40004-volatile-2.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40005-volatile-3.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40005-volatile-3.d
index 039f788a..039f788a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40005-volatile-3.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40005-volatile-3.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40006-Lexer.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40006-Lexer.d
index 86e1144a..86e1144a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40006-Lexer.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40006-Lexer.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40007-Lexer.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40007-Lexer.d
index 50f40a49..50f40a49 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40007-Lexer.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/d/40010-template.d
new file mode 100644
index 00000000..eaad2b5d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40010-template.d
@@ -0,0 +1,29 @@
+template Foo (T, U)
+{
+ class Bar { }
+
+ T foo(T t, U u)
+ {
+ }
+
+ T abc;
+
+ typedef T *FooType;
+ typedef Tte **FooType0;
+ typedef int *FooType1;
+ typedef const char FooType2;
+}
+
+alias Foo!(int, char) f;
+f.Bar b;
+f.foo(1, 2);
+f.abc = 3;
+
+to!string(10.0);
+TFoo!int.t x;
+
+class Abc (T)
+{
+ T t;
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40011-template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40011-template.d
index 5c106063..5c106063 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40011-template.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/d/40012-template.d
new file mode 100644
index 00000000..dbe1fb85
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40012-template.d
@@ -0,0 +1,28 @@
+template Foo (T, U)
+{
+ class Bar { }
+
+ T foo(T t, U u) {
+ }
+
+ T abc;
+
+ typedef T* FooType;
+ typedef Tte** FooType0;
+ typedef int* FooType1;
+ typedef const char FooType2;
+}
+
+alias Foo!(int, char) f;
+f.Bar b;
+f.foo(1,2);
+f.abc = 3;
+
+to!string(10.0);
+TFoo!int.t x;
+
+class Abc (T)
+{
+T t;
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40013-template.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40013-template.d
new file mode 100644
index 00000000..ec69b8bf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40013-template.d
@@ -0,0 +1,28 @@
+template Foo(T, U)
+{
+ class Bar { }
+
+ T foo(T t, U u) {
+ }
+
+ T abc;
+
+ typedef T* FooType;
+ typedef Tte** FooType0;
+ typedef int* FooType1;
+ typedef const char FooType2;
+}
+
+alias Foo!(int, char) f;
+f.Bar b;
+f.foo(1,2);
+f.abc = 3;
+
+to!string(10.0);
+TFoo!int.t x;
+
+class Abc(T)
+{
+T t;
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40020-funcfunc.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40020-funcfunc.d
index de673e78..de673e78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40020-funcfunc.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40020-funcfunc.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40021-tst01.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40021-tst01.d
index e19c7c8e..e19c7c8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40021-tst01.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40021-tst01.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40022-tst02.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40022-tst02.d
index aa138a86..aa138a86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40022-tst02.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40022-tst02.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40023-bug-indent.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40023-bug-indent.d
index 6071604d..6071604d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40023-bug-indent.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40023-bug-indent.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40024-tst03.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40024-tst03.d
index 2344510d..2344510d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40024-tst03.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40024-tst03.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40025-tst03.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40025-tst03.d
index 15811ebc..15811ebc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40025-tst03.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40025-tst03.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40026-wysiwyg_strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40026-wysiwyg_strings.d
index cfdec32a..cfdec32a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40026-wysiwyg_strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40026-wysiwyg_strings.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40027-static_if_in_struct.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40027-static_if_in_struct.d
index be936335..be936335 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40027-static_if_in_struct.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40027-static_if_in_struct.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40030-delegate.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40030-delegate.d
index 5f7beceb..5f7beceb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40030-delegate.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40030-delegate.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40035-enum.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40035-enum.d
index 24d0ef63..24d0ef63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40035-enum.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40035-enum.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40040-sort_import.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40040-sort_import.d
index db26c1e4..db26c1e4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40040-sort_import.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40040-sort_import.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40050-strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40050-strings.d
index 4964ad7a..4964ad7a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40050-strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40050-strings.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40051-numbers.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40051-numbers.d
index 72d55727..72d55727 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40051-numbers.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40051-numbers.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40052-numbers.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40052-numbers.d
index 8cf51f29..8cf51f29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40052-numbers.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40052-numbers.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40060-casts.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40060-casts.d
index b1d6b50b..b1d6b50b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40060-casts.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40060-casts.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40061-const.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40061-const.d
index 8277f0c1..8277f0c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40061-const.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40061-const.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40070-d_sp_paren.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40070-d_sp_paren.d
index cc38daae..cc38daae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40070-d_sp_paren.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40070-d_sp_paren.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40080-static_if.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40080-static_if.d
index 0eb3a1a8..0eb3a1a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40080-static_if.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40080-static_if.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40090-square_indent_tab.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40090-square_indent_tab.d
index e9657860..e9657860 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40090-square_indent_tab.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40090-square_indent_tab.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40100-1438.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40100-1438.d
index 66c47d3a..66c47d3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40100-1438.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40100-1438.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40201-invariant.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40201-invariant.d
index 3da6240f..3da6240f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40201-invariant.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40201-invariant.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40300-extern_.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40300-extern_.d
index 40131d6d..40131d6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40300-extern_.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40300-extern_.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40400-vbraces000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40400-vbraces000.d
index 616bb259..616bb259 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40400-vbraces000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40400-vbraces000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40401-vbraces001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40401-vbraces001.d
index 6d7e96f6..6d7e96f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40401-vbraces001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40401-vbraces001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40402-vbraces002.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40402-vbraces002.d
index c966d140..c966d140 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40402-vbraces002.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40402-vbraces002.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40403-template_use.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40403-template_use.d
index 94cdbf6b..94cdbf6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40403-template_use.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40403-template_use.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40500-template_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40500-template_spacing000.d
index 627ca266..627ca266 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40500-template_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40500-template_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40501-template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40501-template_spacing001.d
index dc3242ff..dc3242ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40501-template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40501-template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40502-template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40502-template_spacing001.d
index 3c238a1f..3c238a1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40502-template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40502-template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40503-template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40503-template_spacing001.d
index 010cbe07..010cbe07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40503-template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40503-template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40504-type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40504-type_spacing000.d
index 1e47f131..1e47f131 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40504-type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40504-type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40505-type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40505-type_spacing000.d
index 1e47f131..1e47f131 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40505-type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40505-type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40506-type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40506-type_spacing000.d
index e11e545b..e11e545b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/d/40506-type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/d/40506-type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/ecma/90000-example-1.es b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/ecma/90000-example-1.es
index 45f9b6cb..45f9b6cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/ecma/90000-example-1.es
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/ecma/90000-example-1.es
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80000-assert.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80000-assert.java
index fbc20ba7..fbc20ba7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80000-assert.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80000-assert.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80010-annotation1.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80010-annotation1.java
index 314a0b91..314a0b91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80010-annotation1.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80010-annotation1.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80011-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80011-annotation2.java
index 1acc459f..1acc459f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80011-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80011-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80012-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80012-annotation2.java
index 1acc459f..1acc459f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80012-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80012-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80013-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80013-annotation2.java
index 42f5a1df..42f5a1df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80013-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80013-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80014-annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80014-annotation2.java
index 42f5a1df..42f5a1df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80014-annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80014-annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80020-foreach.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80020-foreach.java
index 69967517..69967517 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80020-foreach.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80020-foreach.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80030-variable_aligns.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80030-variable_aligns.java
index c73b62d3..c73b62d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80030-variable_aligns.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80030-variable_aligns.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80040-try.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80040-try.java
index 78a55849..78a55849 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80040-try.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80040-try.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80050-double_brace.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80050-double_brace.java
index e00246e1..e00246e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80050-double_brace.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80050-double_brace.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80051-double_brace.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80051-double_brace.java
index 66183ada..66183ada 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80051-double_brace.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80051-double_brace.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80060-synchronized.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80060-synchronized.java
index b8b70a6b..b8b70a6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80060-synchronized.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80060-synchronized.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80061-synchronized.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80061-synchronized.java
index 73fc9b1d..73fc9b1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80061-synchronized.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80061-synchronized.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80062-sp_this_paren.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80062-sp_this_paren.java
index 1c189223..1c189223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80062-sp_this_paren.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80062-sp_this_paren.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80063-i1121.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80063-i1121.java
index 18567ec3..18567ec3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80063-i1121.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80063-i1121.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80064-long_cl_cmt.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80064-long_cl_cmt.java
index af7a1c7e..af7a1c7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80064-long_cl_cmt.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80064-long_cl_cmt.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80065-Java8DoubleColon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80065-Java8DoubleColon.java
index ec594909..ec594909 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80065-Java8DoubleColon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80065-Java8DoubleColon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80066-sp_after_for_colon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80066-sp_after_for_colon.java
index 38515aed..38515aed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80066-sp_after_for_colon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80066-sp_after_for_colon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80067-doxy-javadoc-alignment.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80067-doxy-javadoc-alignment.java
index 6b9f748b..6b9f748b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80067-doxy-javadoc-alignment.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/java/80068-nl_before_ignore_after_case.java
new file mode 100644
index 00000000..50bfc274
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80068-nl_before_ignore_after_case.java
@@ -0,0 +1,19 @@
+void func(void)
+{
+ switch (cond)
+ {
+ case CASE_F:
+ synchronized(thingy)
+ {
+ do_a();
+ do_b();
+ }
+ break;
+ }
+
+ synchronized(thingy)
+ {
+ do_a();
+ do_b();
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80100-sf567.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80100-sf567.java
index 9fc644b8..9fc644b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80100-sf567.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80100-sf567.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80200-sp_before_byref.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80200-sp_before_byref.java
index 7927ee89..7927ee89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80200-sp_before_byref.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80200-sp_before_byref.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80201-generics.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80201-generics.java
index 086786c0..086786c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80201-generics.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80201-generics.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80202-generics_wildcard.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80202-generics_wildcard.java
index 358e333b..358e333b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80202-generics_wildcard.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80202-generics_wildcard.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80203-generics_return_type.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80203-generics_return_type.java
index 1f2aa340..1f2aa340 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80203-generics_return_type.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80203-generics_return_type.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80204-cast.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80204-cast.java
index 30d0dcc4..30d0dcc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80204-cast.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80204-cast.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80205-sp_after_angle.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80205-sp_after_angle.java
index bd654485..bd654485 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80205-sp_after_angle.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80205-sp_after_angle.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80206-annotation3.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80206-annotation3.java
index 3d84c04c..3d84c04c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80206-annotation3.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80206-annotation3.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80300-Issue_670.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80300-Issue_670.java
index b0aa2cf0..b0aa2cf0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80300-Issue_670.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80300-Issue_670.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80301-issue_672.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80301-issue_672.java
index 16a077a4..16a077a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80301-issue_672.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80301-issue_672.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80302-Issue_1845.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80302-Issue_1845.java
index 062c89d1..062c89d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80302-Issue_1845.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80302-Issue_1845.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80303-Issue_1122.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80303-Issue_1122.java
index 111ee739..111ee739 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80303-Issue_1122.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80303-Issue_1122.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80304-Issue_1124.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80304-Issue_1124.java
index bca3cb33..bca3cb33 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80304-Issue_1124.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80304-Issue_1124.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80305-Issue_1124.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80305-Issue_1124.java
index 0469fed1..0469fed1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80305-Issue_1124.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80305-Issue_1124.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java
index 19b6df0f..19b6df0f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/java/80306-leading-tabs-for-java-lambda.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10018-delete-space-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10018-delete-space-oc.mm
index 8760241b..8760241b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10018-delete-space-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10018-delete-space-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10019-func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10019-func-param-wrap-oc.mm
index 45601228..45601228 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10019-func-param-wrap-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10019-func-param-wrap-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10020-align-objc-like-xcode.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10020-align-objc-like-xcode.m
index 93066246..93066246 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10020-align-objc-like-xcode.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10020-align-objc-like-xcode.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10021-double-indent-objc-dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10021-double-indent-objc-dict.m
index a93bd81e..a93bd81e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10021-double-indent-objc-dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10021-double-indent-objc-dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10022-indent-objc-block.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10022-indent-objc-block.m
index 4aab0fc0..4aab0fc0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/10022-indent-objc-block.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/10022-indent-objc-block.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50001-Fraction.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50001-Fraction.h
index b1e373c2..b1e373c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50001-Fraction.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50001-Fraction.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50002-Fraction.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50002-Fraction.m
index 4ad6dfc8..4ad6dfc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50002-Fraction.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50002-Fraction.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50003-main.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50003-main.m
index ec082dc1..ec082dc1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50003-main.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50003-main.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50004-string.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50004-string.m
index bbfeb51e..bbfeb51e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50004-string.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50004-string.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50005-Declarations.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50005-Declarations.h
index 3b65c41c..3b65c41c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50005-Declarations.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50005-Declarations.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50006-exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50006-exceptions.m
index 609d2086..609d2086 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50006-exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50006-exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50007-misc.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50007-misc.m
index 4de222a1..4de222a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50007-misc.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50007-misc.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50008-protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50008-protocol.m
index 50c4314a..50c4314a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50008-protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50008-protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50009-literals.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50009-literals.mm
index 4bd99277..4bd99277 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50009-literals.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50009-literals.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50010-return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50010-return_type.m
index 62275a52..62275a52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50010-return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50010-return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50011-return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50011-return_type.m
index 7cc95485..7cc95485 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50011-return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50011-return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50012-return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50012-return_type.m
index 106c5466..106c5466 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50012-return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50012-return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m
index 847e9dca..847e9dca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50014-sp_oc_classname_paren-r.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50015-receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50015-receiver.m
index dd6ee3d6..dd6ee3d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50015-receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50015-receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50016-ternary.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50016-ternary.m
index 42a573f4..42a573f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50016-ternary.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50016-ternary.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50017-ternary.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50017-ternary.m
index d53fc319..d53fc319 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50017-ternary.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50017-ternary.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50018-indent-inside-ternary-operator.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50018-indent-inside-ternary-operator.m
index 0b6e1fa3..0b6e1fa3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50018-indent-inside-ternary-operator.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50018-indent-inside-ternary-operator.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50020-selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50020-selector.m
index c53db6fb..c53db6fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50020-selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50020-selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50021-selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50021-selector.m
index 3442f700..3442f700 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50021-selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50021-selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50022-selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50022-selector.m
index 1d790cc9..1d790cc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50022-selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50022-selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50025-exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50025-exceptions.m
index 609d2086..609d2086 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50025-exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50025-exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50026-exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50026-exceptions.m
index 150de092..150de092 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50026-exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50026-exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50030-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50030-sort_import.m
index e0cfcb88..e0cfcb88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50030-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50030-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50031-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50031-sort_import.m
index e0cfcb88..e0cfcb88 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50031-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50031-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50032-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50032-sort_import.m
index 37b4d643..37b4d643 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50032-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50032-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50033-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50033-sort_import.m
index 7c2ab21f..7c2ab21f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50033-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50033-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50034-sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50034-sort_import.m
index f8a42242..f8a42242 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50034-sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50034-sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50035-sort_import_group.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50035-sort_import_group.m
index 251829df..251829df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50035-sort_import_group.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50035-sort_import_group.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50040-complex_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50040-complex_method.m
index 29467813..29467813 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50040-complex_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50040-complex_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 1f7370d7..1f7370d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50060-oc-split.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50060-oc-split.m
index a7bcd4de..a7bcd4de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50060-oc-split.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50060-oc-split.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50061-bug_167.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50061-bug_167.m
index 28087bb4..28087bb4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50061-bug_167.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50061-bug_167.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50062-issue_2631.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50062-issue_2631.m
index a4404650..a4404650 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50062-issue_2631.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/oc/50070-blocks.m
new file mode 100644
index 00000000..8b77ccda
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50070-blocks.m
@@ -0,0 +1,15 @@
+int *(^ blkReturningPointer)(int) = ^int *(int a) {
+ return a + 1;
+};
+
+void (^ blk2)(int *) = ^(int *b) {
+ *b = 1;
+};
+
+
+int (^oneFrom)(int) = ^(int anInt) {
+ return anInt - 1;
+};
+
+// this should not be flagged as OC_BLOCK_CARET
+int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50071-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50071-blocks.m
new file mode 100644
index 00000000..8b77ccda
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50071-blocks.m
@@ -0,0 +1,15 @@
+int *(^ blkReturningPointer)(int) = ^int *(int a) {
+ return a + 1;
+};
+
+void (^ blk2)(int *) = ^(int *b) {
+ *b = 1;
+};
+
+
+int (^oneFrom)(int) = ^(int anInt) {
+ return anInt - 1;
+};
+
+// this should not be flagged as OC_BLOCK_CARET
+int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50072-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50072-blocks.m
new file mode 100644
index 00000000..8b77ccda
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50072-blocks.m
@@ -0,0 +1,15 @@
+int *(^ blkReturningPointer)(int) = ^int *(int a) {
+ return a + 1;
+};
+
+void (^ blk2)(int *) = ^(int *b) {
+ *b = 1;
+};
+
+
+int (^oneFrom)(int) = ^(int anInt) {
+ return anInt - 1;
+};
+
+// this should not be flagged as OC_BLOCK_CARET
+int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50073-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50073-blocks.m
new file mode 100644
index 00000000..06a9cd78
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50073-blocks.m
@@ -0,0 +1,15 @@
+int *(^ blkReturningPointer)(int) = ^ int *(int a) {
+ return a + 1;
+};
+
+void (^ blk2)(int *) = ^ (int *b) {
+ *b = 1;
+};
+
+
+int (^oneFrom)(int) = ^ (int anInt) {
+ return anInt - 1;
+};
+
+// this should not be flagged as OC_BLOCK_CARET
+int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50074-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50074-blocks.m
new file mode 100644
index 00000000..467387b4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50074-blocks.m
@@ -0,0 +1,15 @@
+int *(^ blkReturningPointer)(int) = ^ int *(int a) {
+ return a + 1;
+};
+
+void (^ blk2)(int *) = ^ (int *b) {
+ *b = 1;
+};
+
+
+int (^oneFrom)(int) = ^ (int anInt) {
+ return anInt - 1;
+};
+
+// this should not be flagged as OC_BLOCK_CARET
+int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50075-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50075-blocks.m
new file mode 100644
index 00000000..8b77ccda
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50075-blocks.m
@@ -0,0 +1,15 @@
+int *(^ blkReturningPointer)(int) = ^int *(int a) {
+ return a + 1;
+};
+
+void (^ blk2)(int *) = ^(int *b) {
+ *b = 1;
+};
+
+
+int (^oneFrom)(int) = ^(int anInt) {
+ return anInt - 1;
+};
+
+// this should not be flagged as OC_BLOCK_CARET
+int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50076-blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50076-blocks.m
new file mode 100644
index 00000000..8b77ccda
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50076-blocks.m
@@ -0,0 +1,15 @@
+int *(^ blkReturningPointer)(int) = ^int *(int a) {
+ return a + 1;
+};
+
+void (^ blk2)(int *) = ^(int *b) {
+ *b = 1;
+};
+
+
+int (^oneFrom)(int) = ^(int anInt) {
+ return anInt - 1;
+};
+
+// this should not be flagged as OC_BLOCK_CARET
+int x = 12 ^ 23;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50077-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50077-more_blocks.m
index 75870d32..75870d32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50077-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50077-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50078-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50078-more_blocks.m
index 91d27d55..91d27d55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50078-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50078-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50079-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50079-more_blocks.m
index f6af5562..f6af5562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50079-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50079-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50080-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50080-more_blocks.m
index 1fbb7c34..1fbb7c34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50080-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50080-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50081-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50081-more_blocks.m
index 1fbb7c34..1fbb7c34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50081-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50081-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50082-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50082-more_blocks.m
index 75870d32..75870d32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50082-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50082-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50083-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50083-more_blocks.m
index f6af5562..f6af5562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50083-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50083-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50084-more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50084-more_blocks.m
index 75870d32..75870d32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50084-more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50084-more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50085-block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50085-block_in_method.m
index 7a91d13e..7a91d13e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50085-block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50085-block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50086-block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50086-block_in_method.m
index c5c9ae6b..c5c9ae6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50086-block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50086-block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m
index af5c2b7b..af5c2b7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50087-indent_oc_inside_msg_sel.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50090-kw.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50090-kw.m
index ef52dd8e..ef52dd8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50090-kw.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50090-kw.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50091-block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50091-block_in_method.m
index 705435d8..705435d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50091-block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50091-block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50095-box.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50095-box.m
index 45b0de1b..45b0de1b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50095-box.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50095-box.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50100-bug_340.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50100-bug_340.m
index ec5135ab..ec5135ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50100-bug_340.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50100-bug_340.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50110-msg_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50110-msg_align.m
index 041148c1..041148c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50110-msg_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50110-msg_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50111-ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50111-ns_enum.m
index 1b960272..1b960272 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50111-ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50111-ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50112-ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50112-ns_enum.m
index 1b960272..1b960272 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50112-ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50112-ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50113-ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50113-ns_enum.m
index 5c30d740..5c30d740 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50113-ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50113-ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50120-gh137.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50120-gh137.m
index ff41543a..ff41543a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50120-gh137.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50120-gh137.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50200-more_blocks_2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50200-more_blocks_2.m
index 8835454f..8835454f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50200-more_blocks_2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50200-more_blocks_2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50201-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50201-blocks_align.m
index 505c9b99..505c9b99 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50201-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50201-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50202-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50202-blocks_align.m
index 439ac716..439ac716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50202-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50202-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50203-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50203-blocks_align.m
index 07bd3cf3..07bd3cf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50203-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50203-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50204-blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50204-blocks_align.m
index a2cefc1f..a2cefc1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50204-blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50204-blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50205-msg_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50205-msg_align.m
index f024b44c..f024b44c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50205-msg_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50205-msg_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50206-issue_2727.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50206-issue_2727.m
index 5639c298..5639c298 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50206-issue_2727.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50206-issue_2727.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50207-issue_3031.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50207-issue_3031.mm
index 75e6f5ea..75e6f5ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50207-issue_3031.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50207-issue_3031.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50300-msg.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50300-msg.m
index 79c1a60a..79c1a60a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50300-msg.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50300-msg.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50400-for.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50400-for.m
index 35c34bce..35c34bce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50400-for.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50400-for.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50410-oc_cond_colon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50410-oc_cond_colon.m
index 8059a3c6..8059a3c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50410-oc_cond_colon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50410-oc_cond_colon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50411-attribute_specifier_seqs.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50411-attribute_specifier_seqs.mm
index 49dfaefa..49dfaefa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50411-attribute_specifier_seqs.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50411-attribute_specifier_seqs.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50500-code_placeholder.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50500-code_placeholder.m
index f6a745ed..f6a745ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50500-code_placeholder.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50500-code_placeholder.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50510-gh293.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50510-gh293.m
index a1dffc49..a1dffc49 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50510-gh293.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50510-gh293.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50511-gh293.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50511-gh293.m
index 6e4c180a..6e4c180a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50511-gh293.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50511-gh293.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50512-sp_oc_catch.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50512-sp_oc_catch.m
index 6040b071..6040b071 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50512-sp_oc_catch.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50512-sp_oc_catch.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50513-sp_oc_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50513-sp_oc_boxed.m
index 916e9330..916e9330 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50513-sp_oc_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50513-sp_oc_boxed.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50514-indent_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50514-indent_boxed.m
index 165ee244..165ee244 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50514-indent_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50514-indent_boxed.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50515-sp_oc_synchronized.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50515-sp_oc_synchronized.m
index ffff5618..ffff5618 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50515-sp_oc_synchronized.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50515-sp_oc_synchronized.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50600-bug_i_477.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50600-bug_i_477.m
index 0e7cbb78..0e7cbb78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50600-bug_i_477.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50600-bug_i_477.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50601-bug_i_408.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50601-bug_i_408.m
index 700d159d..700d159d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50601-bug_i_408.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50601-bug_i_408.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50602-bug_i_125-412.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50602-bug_i_125-412.m
index 4beec2d5..4beec2d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50602-bug_i_125-412.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50602-bug_i_125-412.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50603-gh511.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50603-gh511.m
index 2c86e32d..2c86e32d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50603-gh511.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50603-gh511.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50604-bug_497.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50604-bug_497.m
index 121503b4..121503b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50604-bug_497.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50604-bug_497.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50605-bug_404.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50605-bug_404.m
index 8244ebd3..8244ebd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50605-bug_404.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50605-bug_404.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50606-bug_1366.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50606-bug_1366.m
index f4058b1f..f4058b1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50606-bug_1366.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50606-bug_1366.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m
index 14eaed36..14eaed36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50607-sp_after_oc_msg_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50608-blocks_align2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50608-blocks_align2.m
index b37c1b4b..b37c1b4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50608-blocks_align2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50608-blocks_align2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50609-negative_value.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50609-negative_value.m
index 9aa4dc80..9aa4dc80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50609-negative_value.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50609-negative_value.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50610-nelem.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50610-nelem.m
index d42ce3b6..d42ce3b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50610-nelem.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50610-nelem.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50611-for2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50611-for2.m
index 535bc50b..535bc50b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50611-for2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50611-for2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50612-chunk_ends_type1.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50612-chunk_ends_type1.m
index fb9bb4e1..fb9bb4e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50612-chunk_ends_type1.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50612-chunk_ends_type1.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50613-chunk_ends_type2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50613-chunk_ends_type2.m
index 64efc7e6..64efc7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50613-chunk_ends_type2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50613-chunk_ends_type2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50614-chunk_ends_type3.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50614-chunk_ends_type3.m
index 8f0ae62c..8f0ae62c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50614-chunk_ends_type3.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50614-chunk_ends_type3.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50615-block_literal_protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50615-block_literal_protocol.m
index 35879a0e..35879a0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50615-block_literal_protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50615-block_literal_protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50616-oc_msg_in_pp.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50616-oc_msg_in_pp.m
index 8496973b..8496973b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50616-oc_msg_in_pp.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50616-oc_msg_in_pp.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50617-boxed_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50617-boxed_receiver.m
index e4c247fd..e4c247fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50617-boxed_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50617-boxed_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50618-func_def.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50618-func_def.mm
index 49de2fea..49de2fea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50618-func_def.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50618-func_def.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50619-cast.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50619-cast.m
index 1e588579..1e588579 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50619-cast.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50619-cast.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50620-sp_after_angle.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50620-sp_after_angle.m
index 318071ba..318071ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50620-sp_after_angle.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50620-sp_after_angle.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50621-Fraction.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50621-Fraction.h
index 77403abd..77403abd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50621-Fraction.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50621-Fraction.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c
index f17c10ed..f17c10ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50622-c-cpp-oc-wrapper.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50623-extern-c-attribute.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50623-extern-c-attribute.m
index 1c752682..1c752682 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50623-extern-c-attribute.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50623-extern-c-attribute.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50624-typeof.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50624-typeof.m
index 968aad5a..968aad5a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50624-typeof.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50624-typeof.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m
index f98a27ea..f98a27ea 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50625-sp_inside_braces_oc_dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50626-chunk_ends_type4.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50626-chunk_ends_type4.m
index dd4d55fe..dd4d55fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50626-chunk_ends_type4.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50626-chunk_ends_type4.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50627-method_ends_semicolon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50627-method_ends_semicolon.m
index b1ca36fa..b1ca36fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50627-method_ends_semicolon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50627-method_ends_semicolon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50628-macro-close-brace.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50628-macro-close-brace.m
index 0eb3fa81..0eb3fa81 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50628-macro-close-brace.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50628-macro-close-brace.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50629-pp_bool.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50629-pp_bool.m
index b1bf896c..b1bf896c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50629-pp_bool.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m
new file mode 100644
index 00000000..5c07ea43
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50630-nl_func_call_args_multi_line_ignore_closures.m
@@ -0,0 +1,103 @@
+mapToPtr(^(const LeftAddOn::Props &addOnProps) {
+ FSTheme *const theme = AK::getTheme();
+});
+
+mapToPtr( x, ^ (const Props &addOnProps) {
+ FSTheme *const theme = AK::getTheme();
+});
+
+mapToPtr( ^ (const Props &addOnProps) {
+ FSTheme *const theme = AK::getTheme();
+});
+
+mapToPtr(
+ arg1, ^ ( NSString * ) (const Props &addOnProps) {
+ FSTheme *const theme = AK::getTheme();
+}, arg2
+ );
+
+mapToPtr(arg1, ^ ( NSString *) (const Props &addOnProps) {
+ FSTheme *const theme = AK::getTheme();
+});
+
+mapToPtr( ^() (const Props &addOnProps) {
+ FSTheme *const theme = AK::getTheme();
+}, arg2);
+
+
+
+methodCall(^{
+ variant.action.send(Cmpnt);
+});
+
+methodCall(
+ ^{
+ variant.action.send(Cmpnt);
+}, x);
+
+
+methodCall( x, ^id (Cmpnt *c) {
+ NSLog(@"Something");
+});
+
+methodCall( ^id (Cmpnt *c) {
+ NSLog(@"Something");
+});
+
+methodCall( ^(Cmpnt *c) {
+ NSLog(@"Something");
+});
+
+methodCall(
+ ^ (Cmpnt *c) {
+ NSLog(@"Something");
+}, y);
+
+methodCall(
+ x, ^(Cmpnt *c) {
+ NSLog(@"Something");
+}, y
+ );
+
+
+methodCall(
+ arg1,
+ arg2,
+ arg3
+ );
+
+methodCall(arg1, arg2, arg3);
+
+methodCall(
+ arg1,
+ arg2, {
+ .x = 10,
+}
+ );
+
+methodCall(
+ arg1, {
+ .x = 10,
+},
+ arg2
+ );
+
+methodCall({
+ .x = 10,
+},
+ arg2);
+
+
+outerMethodCall(
+ methodCall(^{
+ // action
+},
+ x)
+ );
+
+outerMethodCall(
+ methodCall(^{
+ variant.action.send(Cmpnt);
+},
+ x)
+ );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50700-cmt_insert.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50700-cmt_insert.m
index ec94c42b..ec94c42b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50700-cmt_insert.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50700-cmt_insert.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50701-cmt_insert2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50701-cmt_insert2.m
index 7a90cc57..7a90cc57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50701-cmt_insert2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50701-cmt_insert2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50800-properties.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50800-properties.m
index fa9ca930..fa9ca930 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50800-properties.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50800-properties.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50801-i1213.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50801-i1213.m
index f47e5964..f47e5964 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50801-i1213.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50801-i1213.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50802-available.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50802-available.m
index 5054043a..5054043a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50802-available.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50802-available.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50803-indent_single_newline.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50803-indent_single_newline.m
index a70184e5..a70184e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50803-indent_single_newline.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50803-indent_single_newline.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50804-issue_2629.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50804-issue_2629.m
index 6d6cbf30..6d6cbf30 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50804-issue_2629.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50804-issue_2629.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50805-issue_2724.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50805-issue_2724.m
index 23241732..23241732 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50805-issue_2724.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50805-issue_2724.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50810-bug_841.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50810-bug_841.m
index 8e8a6713..8e8a6713 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50810-bug_841.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50810-bug_841.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50811-bug_1674.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50811-bug_1674.m
index 7d23b230..7d23b230 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50811-bug_1674.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50811-bug_1674.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50812-bug_1683.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50812-bug_1683.m
index 3ee562c0..3ee562c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50812-bug_1683.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50812-bug_1683.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50813-sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50813-sp_before_oc_proto_list.m
index 65d13399..65d13399 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50813-sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50813-sp_before_oc_proto_list.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50814-sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50814-sp_before_oc_proto_list.m
index be1f49ed..be1f49ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50814-sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50814-sp_before_oc_proto_list.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50815-sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50815-sp_before_oc_proto_list.m
index 1fef0cc4..1fef0cc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50815-sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50815-sp_before_oc_proto_list.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50816-issue_2675.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50816-issue_2675.m
index ccb80f6b..ccb80f6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50816-issue_2675.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50816-issue_2675.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50817-issue_2722.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50817-issue_2722.m
index 8919895a..8919895a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50817-issue_2722.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50817-issue_2722.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50900-1927.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50900-1927.m
index 3ae39e47..3ae39e47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50900-1927.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50900-1927.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50901-Issue_2172.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50901-Issue_2172.m
index efa73591..efa73591 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50901-Issue_2172.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50901-Issue_2172.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50902-Issue_2289.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50902-Issue_2289.m
index 19fe5cdf..19fe5cdf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50902-Issue_2289.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50902-Issue_2289.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50903-Issue_681.oc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50903-Issue_681.oc
index 1e71cdaa..1e71cdaa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50903-Issue_681.oc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50903-Issue_681.oc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50904-double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50904-double_angle_space.m
index 0e6c0c0c..0e6c0c0c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50904-double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50904-double_angle_space.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50905-double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50905-double_angle_space.m
index 9636a38e..9636a38e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50905-double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50905-double_angle_space.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50906-double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/50906-double_angle_space.m
index 5c16c25f..5c16c25f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/oc/50906-double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/oc/51000-sp_cond_ternary_short.m
new file mode 100644
index 00000000..6c1ce050
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51000-sp_cond_ternary_short.m
@@ -0,0 +1 @@
+NSString *str = (otherString ?: @"this is the placeholder");
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.74.0/tests/expected/oc/51001-ns_enum-i.m
new file mode 100644
index 00000000..e5caad06
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51001-ns_enum-i.m
@@ -0,0 +1,2 @@
+typedef NS_ENUM (NSUInteger, MyEnum) {MyValue1, MyValue2, MyValue3};
+typedef NS_OPTIONS(NSUInteger, MyBitmask) {MyBit1, MyBit2, MyBit3};
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.74.0/tests/expected/oc/51002-sp_oc_catch.m
new file mode 100644
index 00000000..391b8df8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51002-sp_oc_catch.m
@@ -0,0 +1,18 @@
+
+- (void) foo:(NSString*) inString
+{
+ @try {
+ }
+ @catch (NSException* const inException) {
+ }
+}
+
+- (void) bar:(NSString*) inString
+{
+ @try {
+ }
+ @catch (NSException* const inException) {
+ }
+ @finally{
+ }
+}
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.74.0/tests/expected/oc/51003-sp_oc_catch.m
new file mode 100644
index 00000000..c214c848
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51003-sp_oc_catch.m
@@ -0,0 +1,18 @@
+
+- (void) foo:(NSString*) inString
+{
+ @try {
+ }
+ @catch(NSException* const inException) {
+ }
+}
+
+- (void) bar:(NSString*) inString
+{
+ @try {
+ }
+ @catch(NSException* const inException) {
+ }
+ @finally{
+ }
+}
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.74.0/tests/expected/oc/51004-block_pointer.m
new file mode 100644
index 00000000..ab51e3d2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/oc/51004-block_pointer.m
@@ -0,0 +1,16 @@
+__block __weak void (^ weak_recurseTreeNodes)(int a);
+void (^ strong_recurseTreeNodes)(int a) = ^(int a) {
+};
+
+the result file:
+Foo^ foo = dynamic_cast<Bar^>(bar);
+Foo* foo = dynamic_cast<Bar*>(bar);
+x = a ^ b;
+int main(Platform::Array<Platform::String^>^ /*args*/)
+{
+}
+
+void (*fun_ptr)(int) = &fun;
+
+typedef void (*foo)(void);
+void (*foo)(void);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60000-functions.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60000-functions.pawn
index 853c70ad..853c70ad 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60000-functions.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60000-functions.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60001-comment.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60001-comment.p
index f63deb62..f63deb62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60001-comment.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60001-comment.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60002-traffic.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60002-traffic.p
index a902e497..a902e497 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60002-traffic.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/pawn/60003-tags.pawn
new file mode 100644
index 00000000..b21f7679
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60003-tags.pawn
@@ -0,0 +1,69 @@
+
+enum token
+{
+ t_type,
+ Rational:t_value,
+ t_word[20],
+}
+
+
+new bool:flag = true; /* "flag" can only hold "true" or "false" */
+const error:success = 0;
+const error:fatal= 1;
+const error:nonfatal = 2;
+error:errno = fatal;
+
+native printf(const format[], { Float, _ }: ...);
+
+new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
+ 1.00 : (float( p_resists[id][RESISTIDX_FIRE] ) / float( RESIST_MAX_VALUE ));
+
+xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
+ floatround( float( j / 20 ) * XP_PER_LEVEL_LT );
+
+
+main()
+{
+ new Float:xpos;
+ new Float:ypos;
+
+ new apple:elstar; /* variable "elstar" with tag "apple" */
+ new orange:valencia; /* variable "valencia" with tag "orange" */
+ new x; /* untagged variable "x" */
+ elstar = valencia; /* tag mismatch */
+ elstar = x; /* tag mismatch */
+ x = valencia; /* ok */
+
+ new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
+ 1.00 : (float( p_resists[id][RESISTIDX_FIRE] ) / float( RESIST_MAX_VALUE ));
+
+ xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
+ floatround( float( j / 20 ) * XP_PER_LEVEL_LT );
+
+ if (apple:valencia < elstar) {
+ valencia = orange:elstar;
+ }
+
+some_label: // target for a goto
+ #pragma rational Float
+
+ new Float:limit = -5.0;
+ new Float:value = -1.0;
+ if (value < limit) {
+ printf("Value %f below limit %f\n", _:value, _:limit);
+ } else {
+ printf("Value above limit\n");
+ }
+ goto some_label;
+}
+
+foo()
+{
+ if (ape) {
+ dofunc(1);
+ } else if (monkey) {
+ dofunc(2);
+ } else {
+ dofunc(3);
+ }
+} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60004-enum.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60004-enum.pawn
new file mode 100644
index 00000000..7dd318f3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60004-enum.pawn
@@ -0,0 +1,91 @@
+
+enum rect { left, top, right, bottom }
+
+enum boot(<<= 1) { a=1, b, c, d }
+
+enum booty(<<= 1)
+{
+ a=1, b, c, d
+}
+
+forward addvector(a[], const b[], size);
+
+enum message {
+ text[40 char],
+ priority
+}
+
+enum token
+{
+ t_type,
+ Rational:t_value,
+ t_word[20],
+}
+
+new bool:flag = true;
+
+increment(&value, incr=1)
+{
+ value += incr;
+}
+
+new msg[message] = { !"My Text", 1 };
+main()
+{
+ new my_rect[rect];
+
+ my_rect[left] = 10;
+ my_rect[right] = 100;
+ my_rect[top] = 10;
+ my_rect[bottom] = 100;
+
+ for (new i = 0; rect:i < rect; i++) {
+ my_rect[rect:i] *= 2;
+ }
+
+ new vect[3] = { 1, 2, 3 };
+ addvector(vect, { 5, 5, 5 }, 3);
+
+ new Float:xpos;
+ new Float:ypos;
+
+ new a = 5;
+ increment(a);
+ increment(a, _);
+ increment(a, 1);
+}
+
+sum(a, b)
+{
+ return a + b;
+}
+
+power(x, y)
+{
+ /* returns x raised to the power of y */
+ assert y >= 0;
+ new r = 1;
+ for (new i = 0; i < y; i++) {
+ r *= x;
+ }
+ return r;
+}
+
+addvector(a[], const b[], size)
+{
+ for (new i = 0; i < size; i++) {
+ a[i] += b[i];
+ }
+}
+
+stock remove_filepath(szFilePath[], szFile[], pMax)
+{
+ new len = strlen(szFilePath);
+
+ while ((--len >= 0) && (szFilePath[len] != '/') &&
+ (szFilePath[len] != '\'')) { }
+
+ copy(szFile, pMax, szFilePath[len + 1]);
+
+ return;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60005-unbraced.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60005-unbraced.p
index 1a22a3af..1a22a3af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60005-unbraced.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60005-unbraced.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60010-str-escape.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60010-str-escape.p
index 3aa54453..3aa54453 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60010-str-escape.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60010-str-escape.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60020-switch-vsemi.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60020-switch-vsemi.sma
index a0c720f7..a0c720f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60020-switch-vsemi.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60020-switch-vsemi.sma
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60030-crusty_ex-1.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60030-crusty_ex-1.sma
index 23e042dd..23e042dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60030-crusty_ex-1.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60030-crusty_ex-1.sma
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60040-preproc.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60040-preproc.pawn
index 6df8101f..6df8101f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60040-preproc.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60040-preproc.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60050-gh419.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60050-gh419.pawn
index 9db7b08f..9db7b08f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/pawn/60050-gh419.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/expected/pawn/60100-Issue_2586.pawn
new file mode 100644
index 00000000..e3eed47c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60100-Issue_2586.pawn
@@ -0,0 +1,5 @@
+static stock const data[][] =
+{
+ {0b00000011001111000010011100000000, 0b00000011001111000010011100000000},
+ {0b00000011001111000010011100000000, 0b00000011001111000010011100000000}
+}; \ No newline at end of file
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.74.0/tests/expected/pawn/60101-Issue_2665.pawn
new file mode 100644
index 00000000..90fcbd07
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/pawn/60101-Issue_2665.pawn
@@ -0,0 +1,3 @@
+static Entrypoint()
+{
+} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02400-mysql.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02400-mysql.sqc
index ec8ad604..ec8ad604 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02400-mysql.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02400-mysql.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02401-sta-select.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02401-sta-select.sqc
index 1142c3b9..1142c3b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02401-sta-select.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02401-sta-select.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02402-issue_527.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02402-issue_527.sqc
index 17ccfa3b..17ccfa3b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/sql/02402-issue_527.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/sql/02402-issue_527.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70000-list.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70000-list.vala
index 1893dcb5..1893dcb5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70000-list.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70000-list.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70001-advanced.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70001-advanced.vala
index ca88a821..ca88a821 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70001-advanced.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70001-advanced.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70010-verbatim_str.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70010-verbatim_str.vala
index fb0824ae..fb0824ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70010-verbatim_str.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70010-verbatim_str.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70011-verbatim_str2.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70011-verbatim_str2.vala
index c607d7b4..c607d7b4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70011-verbatim_str2.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70011-verbatim_str2.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70012-verbatim_str2.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70012-verbatim_str2.vala
index c253b86b..c253b86b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70012-verbatim_str2.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70012-verbatim_str2.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70020-preproc.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70020-preproc.vala
index 9cc1ba1a..9cc1ba1a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70020-preproc.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70020-preproc.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70287-gh287.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70287-gh287.vala
index be39a9db..be39a9db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70287-gh287.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70287-gh287.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70300-Issue_2090.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70300-Issue_2090.vala
index 5b4e1716..5b4e1716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70300-Issue_2090.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70300-Issue_2090.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70301-Issue_2270.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70301-Issue_2270.vala
index 2202627c..2202627c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/vala/70301-Issue_2270.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/vala/70301-Issue_2270.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/fixtest.sh b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/fixtest.sh
index 76fac4bf..76fac4bf 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/fixtest.sh
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/fixtest.sh
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/imported.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/imported.test
index b20f0247..b20f0247 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/imported.test
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/imported.test
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/1225.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/1225.c
index c6533cb1..c6533cb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/1225.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/1225.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue-2278.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue-2278.c
index 1ecfecf5..1ecfecf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue-2278.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue-2278.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2279.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2279.c
index 88c0ae84..88c0ae84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2279.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2279.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2360.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2360.c
index dd4530c7..dd4530c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2360.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2360.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2411.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2411.c
index 40244488..40244488 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2411.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2411.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2640.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2640.c
index ba25bcbe..ba25bcbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2640.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2640.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2845.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_2845.h
index 9f34b1dc..9f34b1dc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/Issue_2845.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/Issue_3169.c
new file mode 100644
index 00000000..bf67ca55
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3169.c
@@ -0,0 +1,30 @@
+#include <stdint.h>
+
+void bar (void)
+{
+
+ int32_t result;
+ const int32_t other
+ = 7;
+}
+
+#define P(bits) \
+ void foo(void) \
+ { \
+ \
+ int##bits##_t result15; \
+ const int##bits##_t other \
+ = 7; \
+ }
+
+#define Q(value) \
+ void baz(void) \
+ { \
+ \
+ int32_t result24; \
+ const int32_t other \
+ = 7; \
+ }
+
+P(32)
+Q(7)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3233.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3233.c
new file mode 100644
index 00000000..5cfdff8f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3233.c
@@ -0,0 +1,8 @@
+#include "config.h"
+
+#include "nautilus-previewer.h"
+
+#define PREVIEWER2_DBUS_IFACE "org.gnome.NautilusPreviewer2"
+#define PREVIEWER_DBUS_PATH "/org/gnome/NautilusPreviewer"
+
+static GDBusProxy * previewer_v2_proxy = NULL;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3269.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3269.c
new file mode 100644
index 00000000..5b7de8e6
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3269.c
@@ -0,0 +1,17 @@
+int main(void)
+{
+ int x = 0;
+
+ while (x < 5)
+ {
+ x++;
+ }
+
+ do
+ {
+ x++;
+ }
+ while (x < 5);
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3272.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3272.h
new file mode 100644
index 00000000..673c5a91
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3272.h
@@ -0,0 +1,11 @@
+//#define INLINE_BUSY_WAIT(ticks) \
+//{ \
+// volatile size_t busy_wait_counter = 0; \
+// while (busy_wait_counter++ < ticks); \
+//}
+
+// #define INLINE_BUSY_WAIT(ticks) \
+// { \
+// volatile size_t busy_wait_counter = 0; \
+// while (busy_wait_counter++ < ticks); \
+// }
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3274.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3274.c
new file mode 100644
index 00000000..f8b9f789
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3274.c
@@ -0,0 +1,5 @@
+#define FOO
+#define BAR()
+
+FOO
+BAR()
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3327.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3327.c
new file mode 100644
index 00000000..883c5436
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3327.c
@@ -0,0 +1,10 @@
+int main(void)
+{
+#if 1
+#pragma GCC warning "This code won't compile"
+#define FOO 1
+#line 7
+#error
+#endif
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3339.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3339.c
new file mode 100644
index 00000000..9f445c1a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3339.c
@@ -0,0 +1,7 @@
+int main(int argc, char **argv)
+{
+ if (argc > 1)
+ return /*status*/0/*success*/;
+ else
+ return /*status*/ 1 /*failure*/;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3342.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3342.c
new file mode 100644
index 00000000..986aab70
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3342.c
@@ -0,0 +1,6 @@
+int main(int argc, char **argv)
+{
+ int x[argc * argc];
+ typedef int x_t[argc * argc];
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3343.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3343.c
new file mode 100644
index 00000000..3c21608b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3343.c
@@ -0,0 +1,10 @@
+int x[] =
+{
+#if 1
+#define X1
+#include "x1.c"
+#else
+#define X2
+#include "x2.c"
+#endif
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3345.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3345.c
new file mode 100644
index 00000000..eec63b28
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3345.c
@@ -0,0 +1,8 @@
+int main(int argc, char **argv)
+{
+ int x = argc * argc;
+ int y[] = { argc * argc };
+ struct { int x; } z = { argc * argc };
+ enum { w = 5 * 5 };
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3351.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3351.c
new file mode 100644
index 00000000..889d731a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3351.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+void foo(unsigned flags, unsigned COMMENT) {
+ /* Discard file comment if any */
+ if ((flags & COMMENT) != 0) {
+ while (getchar() != 0) /* null */ ;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3356.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3356.c
new file mode 100644
index 00000000..de2dba21
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3356.c
@@ -0,0 +1,13 @@
+/* PR middle-end/46360 */
+
+__attribute__((gnu_inline, always_inline)) extern inline char *
+strncpy (char *dest, const char *src, SIZE_TYPE len)
+{
+return __builtin_strncpy (dest, src, len);
+}
+
+void
+foo (char *s)
+{
+strncpy (s, "", 0);
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3362.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3362.c
new file mode 100644
index 00000000..7a8c08f3
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3362.c
@@ -0,0 +1,15 @@
+int main(int argc, char** argv)
+{
+ switch (argc)
+ {
+ case 1:
+ // return the number unchanged
+ return 1;
+ case 2:
+ // fall through
+ case 3:
+ return 5;
+ default:
+ return 10;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3366.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3366.c
new file mode 100644
index 00000000..769c2f94
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3366.c
@@ -0,0 +1,12 @@
+#define __CVTENDIAN1_H
+#define __CVTENDIAN2_H
+
+static int ConvertEndian(void *ptr, int bytes)
+{
+ switch(bytes)
+ {
+ default:
+ break;
+ }
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3370.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3370.c
new file mode 100644
index 00000000..79081331
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3370.c
@@ -0,0 +1,17 @@
+int main(int argc, char** argv)
+{
+switch (argc)
+{
+// If FOO or BAR is defined, treat it specially
+#ifdef FOO
+case FOO:
+return 1;
+#endif
+#ifdef BAR
+case BAR:
+return 2;
+#endif
+default:
+return 100;
+}
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3376.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3376.c
new file mode 100644
index 00000000..084e9c7d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3376.c
@@ -0,0 +1,5 @@
+int *ptr;
+int *(*func1)(void (*param), void (*));
+int *(*func2)(void (*callback)(void), void (*)(void));
+int *(* func3)(void (* callback)(void), void (* )(void));
+int *(* func4)(void (* callback)(void), void (* )(void));
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3377.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3377.c
new file mode 100644
index 00000000..99cb0d84
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/Issue_3377.c
@@ -0,0 +1,9 @@
+int main(void)
+{
+ int i = 0;
+ while (i < 10)
+ i++;
+ for (i = 0; i < 10; i++)
+ continue;
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/add_long_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/add_long_comment.c
index 5900de52..5900de52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/add_long_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/add_long_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-equ.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-equ.c
index 374ccbfb..374ccbfb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-equ.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-equ.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-proto-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto-vars.c
index e1dd71ff..e1dd71ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-proto-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-proto.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto.c
index 64dfce00..64dfce00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-proto.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-proto.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-string.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-string.c
index f652e88f..f652e88f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-string.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-string.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-struct-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-struct-init.c
index 084994ff..084994ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-struct-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-struct-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-typedef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-typedef.c
index ae17eb4d..ae17eb4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-typedef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-typedef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-var.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-var.c
index adbf8a98..adbf8a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align-var.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align-var.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_attr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_attr.c
index 0f4cfee1..0f4cfee1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_attr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/align_func_proto_star_amp.h
new file mode 100644
index 00000000..17a7c5ce
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_func_proto_star_amp.h
@@ -0,0 +1,29 @@
+#ifndef __LIBR_BACKENDS_H
+#define __LIBR_BACKENDS_H
+
+char szPath[512];
+char *pszFilePart;
+int ret;
+double *pd;
+
+INTERNAL_FN libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+INTERNAL_FN void *data_pointer(libr_section *scn, libr_data *data);
+INTERNAL_FN size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+void *data_pointer(libr_section *scn, libr_data *data);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+size_t data_size(libr_section *scn, libr_data *data);
+
+libr_intstatus add_section(libr_file *file_handle, char *resource_name, libr_section **retscn);
+
+void *data_pointer(libr_section *scn, libr_data *data);
+
+size_t data_size(libr_section *scn, libr_data *data);
+
+#endif /* __LIBR_BACKENDS_H */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_keep_extra.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_keep_extra.c
index 2bc0f532..2bc0f532 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_keep_extra.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_keep_extra.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_span_418.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_418.c
index 421b9547..421b9547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_span_418.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_418.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_span_419.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_419.c
index 421b9547..421b9547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_span_419.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_span_419.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_thresh_416.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_416.c
index f4f6606e..f4f6606e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_thresh_416.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_416.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_thresh_417.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_417.c
index c3c881eb..c3c881eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_sf_call_thresh_417.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_sf_call_thresh_417.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_stack.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_stack.c
index 0f88df06..0f88df06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/align_stack.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/align_stack.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/asm.c
index 1fb5015c..1fb5015c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/attribute.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/attribute.c
index babe229f..babe229f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/attribute.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/attribute.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/backslash-newline-lex.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/backslash-newline-lex.c
index 0f20388c..0f20388c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/backslash-newline-lex.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/backslash-newline-lex.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/beautifier-off.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/beautifier-off.c
index 033179cb..033179cb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/beautifier-off.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/beautifier-off.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bits.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bits.c
index 9a12f484..9a12f484 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bits.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bits.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bool-pos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bool-pos.c
index d6887223..d6887223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bool-pos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bool-pos.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/br_cmt.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/br_cmt.c
index 4e57d2de..4e57d2de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/br_cmt.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/br_cmt.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove.c
index c62506e3..c62506e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove2.c
index e5b73723..e5b73723 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove3.c
index 9cde8bbd..9cde8bbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace-remove3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace-remove3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace.c
index 31f3b42b..31f3b42b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-2.c
index a34d73d8..a34d73d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-3.c
index 1f1a2066..1f1a2066 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-4.c
index 385f4a8e..385f4a8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-5.c
index c77cc912..c77cc912 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces.c
index 20733afc..20733afc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/braces.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/braces.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bsnl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bsnl.c
index b2b38b8e..b2b38b8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bsnl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bsnl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1041.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1041.c
index 193c750b..193c750b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1041.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1041.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1196.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1196.c
index 9fdabca6..9fdabca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1196.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1196.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1702.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1702.c
index bf74c8bd..bf74c8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1702.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1702.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1718.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1718.c
index eaddc974..eaddc974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_1718.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_1718.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_2331.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_2331.c
index f30c53d3..f30c53d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_2331.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_2331.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_3156.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_3156.c
index 508a0098..508a0098 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_3156.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_3156.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_489.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_489.c
index e83d351b..e83d351b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_489.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_489.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_671.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_671.c
index 01a3b02b..01a3b02b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_671.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_671.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_222.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_222.c
index 4f0ded31..4f0ded31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_222.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_222.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_771.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_771.c
index c933487d..c933487d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_771.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_771.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_876.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_876.c
index ab2a05db..ab2a05db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bug_i_876.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bug_i_876.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-1.c
index 39050c07..39050c07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-2.c
index 42bed259..42bed259 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-3.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-3.c
index 4f85044a..4f85044a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-3.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-3.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-4.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-4.c
index e01c2c32..e01c2c32 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-4.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-4.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-5.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-5.c
index 626eb7e6..626eb7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-5.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-5.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-6.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-6.c
index 99ebbdda..99ebbdda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-6.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-6.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-7.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-7.c
index a879aa17..a879aa17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-7.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-7.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-8.c
index 8870a663..8870a663 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs-8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs-8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs.c
index d75a4782..d75a4782 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/bugs.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/bugs.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/case-nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case-nl_before_return.c
index 67adaddd..67adaddd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/case-nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case-nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case.c
index ffceda0e..ffceda0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cast_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cast_brace.c
index 7ec7f67a..7ec7f67a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cast_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cast_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/casts.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/casts.c
index f09f5c5e..f09f5c5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/casts.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/casts.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/clang-has_include.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/clang-has_include.h
index d153e70a..d153e70a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/clang-has_include.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/clang-has_include.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt-align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt-align.c
index 658bac4d..658bac4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt-align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt-align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi.c
index 8e01c5fc..8e01c5fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_multi_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi_utf8.c
index 05b01f84..05b01f84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_multi_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_multi_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_nl_end.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_nl_end.c
index 48929d07..48929d07 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_nl_end.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_nl_end.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_reflow.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_reflow.c
index 6c40e11b..6c40e11b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_reflow.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_reflow.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_right_align.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_right_align.c
index b707f0bb..b707f0bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cmt_right_align.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cmt_right_align.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/code_width.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/code_width.c
index 1b2fbbaa..1b2fbbaa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/code_width.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/code_width.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/colon-asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/colon-asm.c
index 5125af19..5125af19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/colon-asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/colon-asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/comment-convert.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-convert.c
index 4282ab0b..4282ab0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/comment-convert.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-convert.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/comment-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-indent.c
index d5295d6e..d5295d6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/comment-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/comment-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cond.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cond.c
index aec2f0a3..aec2f0a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/cond.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/cond.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/custom_types_ssl.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/custom_types_ssl.c
index 0454f81d..0454f81d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/custom_types_ssl.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/custom_types_ssl.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/define-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/define-if-indent.c
index 1ef47273..1ef47273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/define-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/define-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/deref.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/deref.c
index 100464fb..100464fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/deref.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/deref.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/directfb.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/directfb.h
index 3531fa21..3531fa21 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/directfb.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/directfb.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/dos.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/dos.c
index 108c3b1c..108c3b1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/dos.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/double-sparen.c
new file mode 100644
index 00000000..e76c3ea1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/double-sparen.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+int main() {
+ FILE *f;
+ if ((f = fopen("/dev/null", "r")))
+ puts("file is open");
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/doxy-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/doxy-comment.c
index ef0414ac..ef0414ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/doxy-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/doxy-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/else-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/else-if.c
index 06cc37f2..06cc37f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/else-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/else-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/empty-for.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/empty-for.c
index d9fb686a..d9fb686a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/empty-for.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/empty-for.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/endif.c
index fd621299..fd621299 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum-struct-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum-struct-init.c
index 6660e4a4..6660e4a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum-struct-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum-struct-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum_comma_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_comma_ifdef.c
index aa80cf48..aa80cf48 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum_comma_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_comma_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum_gallery.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_gallery.c
index 2be93194..2be93194 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/enum_gallery.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/enum_gallery.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/extern.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/extern.c
index 3bcfcbe5..3bcfcbe5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/extern.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/extern.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent.c
index ff9f812b..ff9f812b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_indent_func_def_col1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent_func_def_col1.c
index 235731c2..235731c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_indent_func_def_col1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_indent_func_def_col1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_type.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_type.c
index d49d381d..d49d381d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/fcn_type.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/fcn_type.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/for-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/for-space.c
index 1064d493..1064d493 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/for-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/forever.c
new file mode 100644
index 00000000..94dc8ce1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/forever.c
@@ -0,0 +1,5 @@
+int main(void)
+{
+ for(; ;)
+ continue;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/freebsd.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/freebsd.c
index c9ef164f..c9ef164f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/freebsd.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/freebsd.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_call_user.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user.c
index 275d8c5e..275d8c5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_call_user.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_call_user2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user2.c
index 38ecb232..38ecb232 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_call_user2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_call_user2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_wrap.c
index 7589d03b..7589d03b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/func_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/func_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/funcfunc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/funcfunc.c
index ee717abc..ee717abc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/funcfunc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/funcfunc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/function-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/function-def.c
index 778d121f..778d121f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/function-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/function-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/gh399.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/gh399.c
index 00f868a3..00f868a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/gh399.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/gh399.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/global-vars.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/global-vars.c
index 9576341b..9576341b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/global-vars.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/global-vars.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/hello.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/hello.c
index 5849783c..5849783c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/hello.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/hello.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1270.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1270.c
index 4831a47a..4831a47a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1270.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1270.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1413.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1413.c
index 4287ca86..4287ca86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1413.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1413.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1564.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1564.c
index c906ef9b..c906ef9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i1564.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i1564.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i2c-core.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i2c-core.c
index 29bdb584..29bdb584 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/i2c-core.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/i2c-core.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/if_chain.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/if_chain.c
index 948492dd..948492dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/if_chain.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/if_chain.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/ifdef-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-indent.c
index 5043c01f..5043c01f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/ifdef-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/ifdef-nest.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/ifdef-nest.c
index 68baf1fc..68baf1fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/ifdef-nest.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/include-guard.h
new file mode 100644
index 00000000..03625573
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include-guard.h
@@ -0,0 +1,10 @@
+#ifndef FOO
+#define FOO
+
+int foo();
+
+#ifdef BAR
+#define BAZ
+int bar();
+#endif
+#endif
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/include_define.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include_define.h
index 13380cac..13380cac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/include_define.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/include_define.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-assign.c
index 58ed9c52..58ed9c52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-macro-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-macro-brace.c
index 8c3f9941..8c3f9941 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-macro-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-macro-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-off-after-assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-off-after-assign.c
index d01f58c0..d01f58c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-off-after-assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-off-after-assign.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-vbrace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-vbrace.c
index 8b48e235..8b48e235 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent-vbrace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent-vbrace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_first_bool_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_first_bool_expr.c
index ec68ac3a..ec68ac3a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_first_bool_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_first_bool_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_ternary-1.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-1.c
index b76e375b..b76e375b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_ternary-1.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-1.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_ternary-2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-2.c
index 20f1df64..20f1df64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/indent_ternary-2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/indent_ternary-2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/kw_subst.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/kw_subst.c
index 5d37f823..5d37f823 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/kw_subst.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/kw_subst.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/lvalue.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/lvalue.c
index 2f2cc17d..2f2cc17d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/lvalue.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/lvalue.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mac.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mac.c
index ce4e7937..ce4e7937 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mac.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mac.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/macro-returns.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/macro-returns.c
index 0febb263..0febb263 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/macro-returns.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/macro-returns.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/minus-minus.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/minus-minus.c
index 4eb69237..4eb69237 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/minus-minus.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/minus-minus.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/misc.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/misc.c
index cd948007..cd948007 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/misc.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/misc.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mod-paren.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod-paren.c
index 14bb9836..14bb9836 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mod-paren.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod-paren.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mod_case_brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod_case_brace.c
index 4bd9abde..4bd9abde 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/mod_case_brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/mod_case_brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/multi.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/multi.h
index 33acea34..33acea34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/multi.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/multi.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/my_infile.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/my_infile.c
index 8b8cd113..8b8cd113 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/my_infile.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/my_infile.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/negative_value.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/negative_value.c
index 6399fbef..6399fbef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/negative_value.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/negative_value.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/newline_after_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/newline_after_endif.c
index 2a0cbe62..2a0cbe62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/newline_after_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/newline_after_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-comment.c
index 70c49200..70c49200 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-cont.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont.c
index 9f87950f..9f87950f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-cont.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-cont2.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont2.c
index b3f079e3..b3f079e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-cont2.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-cont2.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-semicolon.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-semicolon.c
index 8e0f59d3..8e0f59d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-semicolon.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-semicolon.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-ver-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-ver-def.c
index 9684ed27..9684ed27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl-ver-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl-ver-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_assign.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_assign.c
index b2495c13..b2495c13 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_assign.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/nl_before_ignore_after_case.c
new file mode 100644
index 00000000..51866fe4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_ignore_after_case.c
@@ -0,0 +1,48 @@
+void func(void)
+{
+ switch (cond)
+ {
+ case CASE_A:
+ for (;;)
+ do_stuff();
+ break;
+
+ case CASE_B:
+ if (cond)
+ do_stuff();
+ break;
+
+ case CASE_C:
+ do {
+ do_stuff()
+ } while (cond);
+ break;
+
+ case CASE_D:
+ while(cond)
+ do_stuff();
+ break;
+
+ case CASE_E:
+ switch(cond)
+ {
+ case CASE_EE:
+ break;
+ }
+ break;
+ }
+ for (;;)
+ do_stuff();
+ if (cond)
+ do_stuff();
+ do {
+ do_stuff()
+ } while (cond);
+ while(cond)
+ do_stuff();
+ switch(cond)
+ {
+ case CASE_A:
+ do_stuff();
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_before_return.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_return.c
index da5ed3eb..da5ed3eb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_before_return.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_before_return.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_create_one_liner.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_create_one_liner.c
index 16887eca..16887eca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_create_one_liner.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_create_one_liner.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_ds_struct_enum.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_ds_struct_enum.c
index d19964ae..d19964ae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_ds_struct_enum.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_ds_struct_enum.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_endif.c
index d738d74a..d738d74a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_proto_endif.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_proto_endif.c
index f50766b8..f50766b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_proto_endif.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_proto_endif.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_return_expr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_return_expr.c
index e917e399..e917e399 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/nl_return_expr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/nl_return_expr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one-liner-define.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-define.c
index fdb02e31..fdb02e31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one-liner-define.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-define.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one-liner-init.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-init.c
index 91d92d55..91d92d55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one-liner-init.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one-liner-init.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one_liners.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one_liners.c
index 1f6e0d3e..1f6e0d3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/one_liners.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/one_liners.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/paren-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren-indent.c
index df5b1c14..df5b1c14 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/paren-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/paren_indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/paren_indent.c
index 4b0ff447..4b0ff447 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/paren_indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/parenthesized_indirect_call.c
new file mode 100644
index 00000000..3d5a6819
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/parenthesized_indirect_call.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+
+void hello(void)
+{
+ printf("Hello world!\n");
+}
+
+void (*get_hello(void))(void)
+{
+ return hello;
+}
+
+int main()
+{
+ (get_hello())();
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pascal_ptr.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pascal_ptr.c
index 5b0116ba..5b0116ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pascal_ptr.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pascal_ptr.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pos_compare.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_compare.c
index b0942de0..b0942de0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pos_compare.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_compare.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pos_conditional.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_conditional.c
index 100545e5..100545e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pos_conditional.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pos_conditional.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-before-func-def.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-before-func-def.c
index 948ce135..948ce135 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-before-func-def.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-before-func-def.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-if-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-if-indent.c
index cd9d6c4d..cd9d6c4d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-if-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-if-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-nest.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-nest.c
index b602471b..b602471b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-nest.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-nest.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-space.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-space.c
index 67cf3e55..67cf3e55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp-space.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp-space.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp_concat_asn1.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_concat_asn1.h
index 9874cf04..9874cf04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp_concat_asn1.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_concat_asn1.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp_ret.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_ret.c
index c35e4294..c35e4294 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pp_ret.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pp_ret.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pragma.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma.c
index a0dcd975..a0dcd975 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pragma.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pragma_asm.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma_asm.c
index a7834613..a7834613 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/pragma_asm.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/pragma_asm.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/preproc-if.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/preproc-if.c
index 71fbf792..71fbf792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/preproc-if.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/preproc-if.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/return-compound-literal.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-compound-literal.c
index 8547c3a7..8547c3a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/return-compound-literal.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-compound-literal.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/return-multi.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-multi.c
index 846ca21c..846ca21c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/return-multi.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/return-multi.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/semicolons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/semicolons.c
index d7e2379a..d7e2379a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/semicolons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/semicolons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sf588.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf588.c
index d1c5f1cc..d1c5f1cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sf588.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf588.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sf594.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sf594.c
index cd08cce6..cd08cce6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sf594.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/c/single_line_comment_after.c
new file mode 100644
index 00000000..527b3e80
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/single_line_comment_after.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int main(void)
+{
+ printf("Hello "); // This comment is short.
+
+ printf("world!\n");
+ // This comment is long, so I put it on the next line and indented it.
+
+ return 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sort_include.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sort_include.c
index 0f1956d2..0f1956d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sort_include.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sort_include.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_after_sparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_after_sparen.c
index 8a86dd25..8a86dd25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_after_sparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_after_sparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_cmt_cpp_start.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_cmt_cpp_start.c
index b9b07287..b9b07287 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_cmt_cpp_start.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_cmt_cpp_start.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_embed_comment.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_embed_comment.c
index 88a54dff..88a54dff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_embed_comment.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_embed_comment.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_func_call_user_inside_fparen.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_func_call_user_inside_fparen.c
index ba921b9f..ba921b9f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sp_func_call_user_inside_fparen.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sp_func_call_user_inside_fparen.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sparen-indent.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sparen-indent.c
index fe770681..fe770681 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/sparen-indent.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/sparen-indent.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/string_prefixes.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_prefixes.c
index e901c9ac..e901c9ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/string_prefixes.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_prefixes.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/string_utf8.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_utf8.c
index a473e1bf..a473e1bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/string_utf8.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/string_utf8.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/struct-brace.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/struct-brace.c
index 7d08b4ca..7d08b4ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/struct-brace.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/struct-brace.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/switch-case.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch-case.c
index add9fcfa..add9fcfa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/switch-case.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch-case.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/switch.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch.c
index 5b760363..5b760363 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/switch.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/switch.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/t3.in.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/t3.in.c
index e352f736..e352f736 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/t3.in.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/t3.in.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/type-cast.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type-cast.c
index 5760b466..5760b466 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/type-cast.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type-cast.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/type_wrap.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type_wrap.c
index 13b74455..13b74455 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/type_wrap.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/type_wrap.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/utf8-identifiers.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/utf8-identifiers.c
index e3281aac..e3281aac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/utf8-identifiers.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/utf8-identifiers.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vardefcol.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vardefcol.c
index bdb40e8f..bdb40e8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vardefcol.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vardefcol.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/various_colons.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/various_colons.c
index 516a5a72..516a5a72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/various_colons.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/various_colons.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-do.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-do.c
index 1cefd1df..1cefd1df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-do.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-do.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-pp.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-pp.c
index 5ea209c5..5ea209c5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-pp.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-pp.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-while.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-while.c
index 22291748..22291748 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/vb-while.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/vb-while.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/whole_file_ifdef.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/whole_file_ifdef.c
index bb16e116..bb16e116 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/whole_file_ifdef.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/whole_file_ifdef.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/xml.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/xml.c
index fe7afdf4..fe7afdf4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/c/xml.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/c/xml.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2138.cpp
index e0379b43..e0379b43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2185.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2185.cpp
index 6f874926..6f874926 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2185.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2185.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2203.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2203.cpp
index 4a2c05fa..4a2c05fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/2203.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/2203.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/621_this-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/621_this-spacing.cpp
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/621_this-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/621_this-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/622_ifdef-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/622_ifdef-indentation.cpp
index a6aface7..a6aface7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/622_ifdef-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/622_ifdef-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/623_caret-spacing.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/623_caret-spacing.cpp
index ad1ed6f7..ad1ed6f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/623_caret-spacing.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/623_caret-spacing.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/633_decl-in-func-typedef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/633_decl-in-func-typedef.cpp
index 4e18c597..4e18c597 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/633_decl-in-func-typedef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/633_decl-in-func-typedef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/634_extern-c-no-block.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/634_extern-c-no-block.cpp
index bb6b14fb..bb6b14fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/634_extern-c-no-block.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/634_extern-c-no-block.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DB.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DB.cpp
index 1b8f4bc8..1b8f4bc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DB.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DB.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DefaultAndDelete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DefaultAndDelete.cpp
index 3c4f3b9e..3c4f3b9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DefaultAndDelete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DefaultAndDelete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DoxygenComments.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DoxygenComments.cpp
index dfa5a906..dfa5a906 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/DoxygenComments.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/DoxygenComments.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Example.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Example.h
index deede79a..deede79a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Example.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Example.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-1.cpp
index 365df31f..365df31f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-2.cpp
index c3765ce4..c3765ce4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-3.cpp
index 6c48cb63..6c48cb63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I1112-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I1112-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I2102.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2102.cpp
index d8cf883a..d8cf883a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I2102.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2102.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I2103.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2103.cpp
index ba6386dd..ba6386dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/I2103.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/I2103.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1052.cpp
index 19461b71..19461b71 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1167.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1167.cpp
index 6a9042c2..6a9042c2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1167.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1167.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1184.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1184.cpp
index 7c69e7fb..7c69e7fb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1184.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1184.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1460.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1460.h
index 63787999..63787999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1460.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1460.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1511.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1511.cpp
index 2583c0e3..2583c0e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1511.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1511.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1692.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1692.cpp
index 4a2c97b5..4a2c97b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1692.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1692.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1703.cpp
index bca40664..bca40664 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1703.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1704.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1704.cpp
index 90cb2049..90cb2049 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1704.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1704.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1733.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1733.cpp
index 10be5586..10be5586 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1733.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1733.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1734.cpp
index 31d08c29..31d08c29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1737.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1737.cpp
index fd8b1384..fd8b1384 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1737.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1737.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1753.cpp
index bf5530c3..bf5530c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1753.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-2.cpp
index 9c02605a..9c02605a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-3.cpp
index 93e0799c..93e0799c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813.cpp
index 0c07555d..0c07555d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1813.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1813.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1923.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1923.cpp
index e5b3ceeb..e5b3ceeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1923.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1923.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1966.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1966.cpp
index 80b7ddc7..80b7ddc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_1966.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_1966.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2020.cpp
index 94d0aa28..94d0aa28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2045.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2045.cpp
index 627eba3f..627eba3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2045.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2045.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2085.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2085.cpp
index 581f4db4..581f4db4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2085.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2085.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2091.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2091.cpp
index 6e32d683..6e32d683 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2091.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2091.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2099.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2099.cpp
index 4726f44b..4726f44b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2099.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2099.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2101.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2101.cpp
index 3e07c686..3e07c686 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2101.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2101.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2138.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2138.cpp
index ad53fa57..ad53fa57 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2138.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2138.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2149.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2149.cpp
index 88fb2249..88fb2249 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2149.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2149.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2150.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2150.cpp
index 1e4d6bf5..1e4d6bf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2150.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2150.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2151.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2151.cpp
index dce02df3..dce02df3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2151.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2151.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2163.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2163.cpp
index 543b9827..543b9827 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2163.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2163.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2166.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2166.cpp
index d9ac55c7..d9ac55c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2166.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2166.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2170.cpp
index beeffc7e..beeffc7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2186.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2186.cpp
index c9cbacda..c9cbacda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2186.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2186.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2195.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2195.cpp
index 3573b20d..3573b20d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2195.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2195.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2219.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2219.cpp
index cb6e24bf..cb6e24bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2219.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2219.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2224.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2224.cpp
index 65382eb9..65382eb9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2224.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2224.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2229.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2229.cpp
index 9f575dc1..9f575dc1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2229.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2229.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2232.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2232.cpp
index 7632ed27..7632ed27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2232.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2232.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2236.cpp
index 5dbc4fbe..5dbc4fbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2250.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2250.cpp
index 9268c2e3..9268c2e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2250.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2250.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2281.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2281.cpp
index 44b9e75f..44b9e75f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2281.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2281.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2302.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2302.cpp
index 4763c574..4763c574 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2302.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2302.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2305.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2305.cpp
index 1b35ac11..1b35ac11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2305.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2305.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2319.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2319.cpp
index 8c0ae3e9..8c0ae3e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2319.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2319.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2332.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2332.cpp
index 0bc9cf8f..0bc9cf8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2332.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2332.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2343.cfg b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cfg
index 955a1f9a..955a1f9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2343.cfg
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cfg
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2343.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cpp
index 837b0506..837b0506 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2343.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2343.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2345-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-3.cpp
index 787ce29b..787ce29b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2345-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2345-4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-4.cpp
index 9478d63e..9478d63e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2345-4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2345-4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2368.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2368.cpp
index 08d0556b..08d0556b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2368.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2368.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2383.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2383.cpp
index 356fd9af..356fd9af 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2383.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2383.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2386.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2386.cpp
index ac0b1dd4..ac0b1dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2386.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2386.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2387.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2387.cpp
index af00e16e..af00e16e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2387.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2387.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2428.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2428.cpp
index c919d5a5..c919d5a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2428.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2428.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2437.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2437.cpp
index 2a64bd8f..2a64bd8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2437.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2437.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2440.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2440.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2440_nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440_nl.cpp
index c52c30da..c52c30da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2440_nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2440_nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2478.cpp
index fbcfec1f..fbcfec1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2478.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2478.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2561.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2561.cpp
index 15232fc4..15232fc4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2561.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2561.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2565.cpp
index 721d4d78..721d4d78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2570.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2570.cpp
index 44373e77..44373e77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2570.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2570.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2574.cpp
index fc79cd0d..fc79cd0d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2582.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2582.cpp
index adf9bfe9..adf9bfe9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2582.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2582.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2591.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2591.cpp
index 01ed232e..01ed232e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2591.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2591.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2594.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2594.cpp
index 798a719a..798a719a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2594.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2594.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2596.cpp
index d2517e8b..d2517e8b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2604.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2604.cpp
index e73c67a8..e73c67a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2604.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2604.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2668.cpp
index 1e2f5d02..1e2f5d02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2672-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-a.cpp
index d29d2c47..d29d2c47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2672-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2672-b.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-b.cpp
index f484d4ff..f484d4ff 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2672-b.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2672-b.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2688.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2688.cpp
index 0b394620..0b394620 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2688.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2688.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2689.cpp
index ef3b5a4b..ef3b5a4b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/Issue_2692.cpp
new file mode 100644
index 00000000..4173ad5d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2692.cpp
@@ -0,0 +1,5 @@
+class Class
+{
+std::mutex* a;
+int* b;
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2703.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2703.cpp
index ec4554e9..ec4554e9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2703.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2703.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2726.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2726.cpp
index 7b76eb43..7b76eb43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2726.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2726.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2734.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2734.cpp
index 7b85c0ec..7b85c0ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2734.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2734.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2735.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2735.cpp
index f83e3536..f83e3536 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2735.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2735.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2742.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2742.cpp
index 9d76fe44..9d76fe44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2742.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2742.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2752.cpp
index 237c8ce1..237c8ce1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2757.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2757.cpp
index 3c84969b..3c84969b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2757.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2757.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2758.cpp
index 1ac9a86e..1ac9a86e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2759.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2759.cpp
index cbe9c4a5..cbe9c4a5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2759.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2759.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2771.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2771.cpp
index ab7c285f..ab7c285f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2771.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2771.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2794.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2794.cpp
index 03f2ae4c..03f2ae4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2794.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2794.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2795.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2795.cpp
index 6cb7e112..6cb7e112 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2795.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2795.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2823.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2823.cpp
index eb0228c9..eb0228c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2823.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2823.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2831.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2831.cpp
index f2dc1717..f2dc1717 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2831.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2831.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2836.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2836.cpp
index 44272d56..44272d56 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2836.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2836.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2873.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2873.cpp
index af3020d3..af3020d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2873.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2873.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2879.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2879.cpp
index 294c5e85..294c5e85 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2879.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2879.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2886.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2886.cpp
index 0474c710..0474c710 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2886.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2886.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2890.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2890.cpp
index cea47724..cea47724 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2890.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2890.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2902.cpp
index ae10d5a9..ae10d5a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2907.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2907.cpp
index 9d42a72d..9d42a72d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2907.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2907.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2910.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2910.cpp
index 82c2bec9..82c2bec9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2910.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2910.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2914.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2914.cpp
index c2cd8b59..c2cd8b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2914.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2914.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2921.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2921.cpp
index 43e19e96..43e19e96 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2921.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2921.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2930.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2930.cpp
index 9b130982..9b130982 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2930.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2930.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2942.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2942.cpp
index e5bc781f..e5bc781f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2942.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2942.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2949.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2949.cpp
index d37d7ac3..d37d7ac3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_2949.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_2949.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3010.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3010.cpp
index b546e7be..b546e7be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3010.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3010.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3018.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3018.cpp
index ddbb473e..ddbb473e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3018.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3018.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3025.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3025.cpp
index 9e64526e..9e64526e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3025.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3025.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3034.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3034.cpp
index b91f431d..b91f431d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3034.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3034.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3040.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3040.cpp
index fe9aed25..fe9aed25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3040.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3040.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3044.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3044.cpp
index 739b1305..739b1305 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3044.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3044.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3048.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3048.cpp
index 678d6ce4..678d6ce4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3048.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3048.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3052.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3052.cpp
index cb468be3..cb468be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3052.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3052.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3054-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054-2.cpp
index 77d0d337..77d0d337 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3054-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3054.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054.cpp
index 2d8b38d0..2d8b38d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3054.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3054.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3055-a.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055-a.cpp
index 85c9b7e8..85c9b7e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3055-a.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055-a.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3055.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055.cpp
index 4d66bbf3..4d66bbf3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3055.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3055.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3058.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3058.cpp
index f94e88e7..f94e88e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3058.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3058.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_0nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_0nl.cpp
index 2a76b5a3..2a76b5a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_0nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_0nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_1nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_1nl.cpp
index fd369e24..fd369e24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_1nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_1nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_2nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_2nl.cpp
index 25906e08..25906e08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3061_2nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3061_2nl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3080.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3080.cpp
index 75c6072b..75c6072b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3080.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/Issue_3097.cpp
new file mode 100644
index 00000000..3959e85a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3097.cpp
@@ -0,0 +1,17 @@
+void foo()
+{
+ for( unsigned p = 0; p < np;
+ ++p )
+ {
+ double* o = bar[p];
+ }
+ int x = 42;
+}
+
+void bar()
+{
+ // hello
+ int x = 42;
+ if( x ) foo;
+ type::value_t y = 0;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3113.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3113.cpp
index 63090f4a..63090f4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_3113.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/Issue_3164.cpp
new file mode 100644
index 00000000..79fd6508
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3164.cpp
@@ -0,0 +1,5 @@
+#include <cassert>
+#include <rt>
+#include <cassert> // comment
+#include <cass>
+#include <cassert> /* comment B */
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3176.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3176.cpp
new file mode 100644
index 00000000..2384027d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3176.cpp
@@ -0,0 +1 @@
+SecureStorage::~SecureStorage() = default;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3197.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3197.h
new file mode 100644
index 00000000..f1ba44b5
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3197.h
@@ -0,0 +1,4 @@
+vec_ & operator+=(vec_ & , const vec_ &);
+
+
+int xyz(int a, int b);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3198.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3198.cpp
new file mode 100644
index 00000000..8dd234b7
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3198.cpp
@@ -0,0 +1,4 @@
+enum class Flags : std::int64_t
+{
+ MyFlag
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3203.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3203.cpp
new file mode 100644
index 00000000..47b37eee
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3203.cpp
@@ -0,0 +1,14 @@
+#include <vector>
+
+class A
+{
+public:
+ int a;
+ int b;
+
+ std::vector<int*> v =
+ {
+ &a,
+ &b
+ };
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3205.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3205.cpp
new file mode 100644
index 00000000..99767289
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3205.cpp
@@ -0,0 +1 @@
+vec_& operator+=(vec_&, const vec_&);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3220.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3220.cpp
new file mode 100644
index 00000000..ba42b013
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3220.cpp
@@ -0,0 +1,6 @@
+int * b;
+auto Func2(Model * model) -> Color * * const;
+auto Func2(Model * model) -> Color * * const {
+ return nullptr;
+}
+int * Funcf(Model * model, int * *);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3237.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3237.cpp
new file mode 100644
index 00000000..17e84d9c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3237.cpp
@@ -0,0 +1,4 @@
+void f()
+{
+ CPoint pt( aaa * bbb );
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3252.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3252.cpp
new file mode 100644
index 00000000..b435f4e2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3252.cpp
@@ -0,0 +1,6 @@
+void (*x)(void);
+
+typedef struct
+{
+void (*y)(void);
+} z;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3309.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3309.cpp
new file mode 100644
index 00000000..d6dd1dac
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3309.cpp
@@ -0,0 +1 @@
+template<typename ... ARGS> void test(ARGS&&... args) {}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3321.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3321.h
new file mode 100644
index 00000000..8e74beb2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_3321.h
@@ -0,0 +1,4 @@
+auto l1 = []() {};
+auto l2 = [&]() {};
+auto l3 = []() noexcept {};
+auto l4 = [&]() noexcept {};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_931.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_931.cpp
index 90084874..90084874 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_931.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_931.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_995-do.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_995-do.cpp
index 05eca611..05eca611 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Issue_995-do.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Issue_995-do.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/NewLine.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine.cpp
index 9c7f1ee9..9c7f1ee9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/NewLine.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/NewLine0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine0.cpp
index 01e7cc97..01e7cc97 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/NewLine0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/NewLine0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp
index b0e13d6a..b0e13d6a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/PR326_invalid-backslash-eol-csharp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_2.cpp
index ee6239f9..ee6239f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_EMIT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_EMIT.cpp
index d3ef9396..d3ef9396 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_EMIT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_EMIT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_FOREACH.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREACH.cpp
index 37156618..37156618 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_FOREACH.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREACH.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_FOREVER.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREVER.cpp
index a0fb07d5..a0fb07d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_FOREVER.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_FOREVER.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp
index 5a4c8e7d..5a4c8e7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Q_SIGNAL_SLOT.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/STUCK_macro-difficulties.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/STUCK_macro-difficulties.cpp
index ea1c724e..ea1c724e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/STUCK_macro-difficulties.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/STUCK_macro-difficulties.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Timestamp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Timestamp.h
index 60dc3791..60dc3791 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/Timestamp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/Timestamp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-10496.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-10496.cpp
index 3228cf2a..3228cf2a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-10496.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-10496.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-12046.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-12046.cpp
index 9cc7b13f..9cc7b13f 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-12046.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-12046.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1288.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1288.cpp
index 38ded76c..38ded76c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1288.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1288.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1334.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1334.cpp
index 278cd1a2..278cd1a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1334.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1334.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1335.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1335.cpp
index 2f3ad2a2..2f3ad2a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1335.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1335.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1337.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1337.cpp
index 59635c19..59635c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1337.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1337.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1339.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1339.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1339.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1339.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1340.cpp
index 2f743294..2f743294 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1344.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1344.cpp
index c898df76..c898df76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1344.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1344.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1346.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1346.cpp
index 0261a306..0261a306 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1346.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1346.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1347.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1347.cpp
index ac2184f0..ac2184f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1347.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1347.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1350.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1350.cpp
index 7353e915..7353e915 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1350.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1350.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1356.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1356.cpp
index 8a1aab54..8a1aab54 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1356.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1356.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1358.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1358.cpp
index 770bf0c1..770bf0c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1358.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1358.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-16283.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-16283.cpp
index 7f042642..7f042642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-16283.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-16283.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-18439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18439.cpp
index 0c40e831..0c40e831 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-18439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-18777.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18777.cpp
index 0f177fdc..0f177fdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-18777.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-18777.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1980.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1980.cpp
index 97940716..97940716 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1980.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1980.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1981.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1981.cpp
index a20f4c43..a20f4c43 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1981.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1981.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1983.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1983.cpp
index e7d9de6d..e7d9de6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-1983.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-1983.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-19894.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-19894.cpp
index ef5fe7cf..ef5fe7cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-19894.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-19894.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2049.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2049.cpp
index 7c64f76a..7c64f76a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2049.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2049.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21506.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21506.cpp
index a8c5f2df..a8c5f2df 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21506.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21506.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21509.cpp
index bde48ee7..bde48ee7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21510.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21510.cpp
index ea406fbe..ea406fbe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21510.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21510.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21727.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21727.cpp
index 991d2631..991d2631 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21727.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21727.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21728.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21728.cpp
index 658fba68..658fba68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21728.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21728.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21729.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21729.cpp
index 4b8d1d59..4b8d1d59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-21729.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-21729.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2650.cpp
index b9ced773..b9ced773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2680.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2680.cpp
index b6aa5bd7..b6aa5bd7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2680.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2680.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2683.cpp
index 5da60d3f..5da60d3f 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-2683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-2683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-29935.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-29935.cpp
index a6cf3fc5..a6cf3fc5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-29935.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-29935.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-30088.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30088.cpp
index 1fd5c1fe..1fd5c1fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-30088.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30088.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-30628.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30628.cpp
index ffa60026..ffa60026 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-30628.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-30628.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-32657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-32657.cpp
index 9151231a..9151231a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-32657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-32657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-38381.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-38381.cpp
index 701b55b2..701b55b2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-38381.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-38381.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-64325.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-64325.cpp
index c4005d7c..c4005d7c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-64325.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-64325.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-9650.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-9650.cpp
index f6dba01b..f6dba01b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/UNI-9650.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/UNI-9650.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/al.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/al.cpp
index 3c232dec..3c232dec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/al.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/al.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/align-330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-330.cpp
index 0ba91720..0ba91720 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/expected/cpp/align-330.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-330.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-assign-mixed.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-assign-mixed.cpp
index 2e55d59d..2e55d59d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-assign-mixed.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-assign-mixed.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-star-amp-pos.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-star-amp-pos.cpp
index 29a7a23a..29a7a23a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align-star-amp-pos.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align-star-amp-pos.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_across_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_across_braces.cpp
index f47f0c80..f47f0c80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_across_braces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_across_braces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_assign_func_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_assign_func_proto.cpp
index 0c816099..0c816099 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_assign_func_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_assign_func_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_asterisk_after_type_cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_asterisk_after_type_cast.cpp
index 4b325b1e..4b325b1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_asterisk_after_type_cast.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_asterisk_after_type_cast.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_class-constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class-constr.cpp
index 2be3c8e8..2be3c8e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_class-constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class-constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class.cpp
index d47e77bb..d47e77bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_constr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_constr.cpp
index 1a22f6d9..1a22f6d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_constr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_constr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_continuation_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_continuation_left_shift.cpp
index c0c066b8..c0c066b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_continuation_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_continuation_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_default_after_override.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_default_after_override.cpp
index de21686c..de21686c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_default_after_override.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_default_after_override.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_fcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_fcall.cpp
index c27ed9d1..c27ed9d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_fcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_fcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_params.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_params.cpp
index a90155fd..a90155fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_params.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_params.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_proto_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh.cpp
index df6b4dca..df6b4dca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_proto_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_proto_thresh2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh2.cpp
index b0960a11..b0960a11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_func_proto_thresh2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_func_proto_thresh2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_left_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift.cpp
index 3cf7a744..3cf7a744 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_left_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_left_shift2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift2.cpp
index c90ae71f..c90ae71f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_left_shift2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_left_shift2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_right_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_right_comment.cpp
index 43a2a70f..43a2a70f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_right_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_right_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_var_def_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_var_def_thresh.cpp
index 3942f227..3942f227 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/align_var_def_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/align_var_def_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/alt_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/alt_tokens.cpp
index fcaf1392..fcaf1392 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/alt_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/alt_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/anonymous_enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/anonymous_enum.cpp
index 0cf8426d..0cf8426d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/anonymous_enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/anonymous_enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/attribute_specifier_seqs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/attribute_specifier_seqs.cpp
index 744b3404..744b3404 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/attribute_specifier_seqs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/attribute_specifier_seqs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/av.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/av.h
index 7a90197c..7a90197c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/av.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/av.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bit-colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bit-colon.cpp
index b593255b..b593255b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bit-colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bit-colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bom.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bom.cpp
index 7ee7e7e6..7ee7e7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bom.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bom.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bool.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bool.cpp
index 30d4cb29..30d4cb29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bool.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/brace_brace_init_lst.cpp
new file mode 100644
index 00000000..2a5254f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/brace_brace_init_lst.cpp
@@ -0,0 +1,22 @@
+int main()
+{
+ int a0[][] = { { 1 } };
+ unknown_type b0 = { { 2 } };
+ auto c0 = unknown_type { { 3 } };
+ auto d0 = func( { { 3 } } );
+ auto e0 = func( unknown_type { { 3 } } );
+
+ int a1[][] = { {1} };
+ unknown_type b1 = { {2} };
+ auto c1 = unknown_type{ {3} };
+ auto d1 = func({ {3} });
+ auto e1 = func(unknown_type{ {3} });
+
+ int a2[][] = { {1} };
+ unknown_type b2 = { {2} };
+ auto c2 = unknown_type{ {3} };
+ auto d2 = func({ {3} });
+ auto e2 = func(unknown_type{ {3} });
+
+ return 1;
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braced_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_list.cpp
index e245f34c..e245f34c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braced_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braced_init_template_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_template_decltype.cpp
index bfd5ef86..bfd5ef86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braced_init_template_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braced_init_template_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braces_align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_align.cpp
index ca99edc6..ca99edc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braces_align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braces_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_empty.cpp
index 583c7fa1..583c7fa1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/braces_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/braces_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1001.cpp
index b0ce9a06..b0ce9a06 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/bug_1002.cpp
new file mode 100644
index 00000000..713018e4
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1002.cpp
@@ -0,0 +1,8 @@
+template< class B1 = void, class B2 = void >
+struct conjunction : bool_constant<B1::value1 && B2::value2>
+{
+};
+template< class B1 = void, class B2 = void >
+struct conjunction : bool_constant<B1::value1&&B2::value2>
+{
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1003.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1003.cpp
index 7495b93d..7495b93d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1003.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1003.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1004.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1004.cpp
index 3287be1c..3287be1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1004.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1004.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1005.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1005.cpp
index 01a457d0..01a457d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1005.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1005.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1020.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1020.cpp
index ec80e915..ec80e915 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1020.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1020.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1027.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1027.cpp
index 5ccafd2b..5ccafd2b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1027.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1027.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1032.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1032.cpp
index 80078efe..80078efe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1032.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1032.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1068.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1068.cpp
index 74fbc8e7..74fbc8e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1068.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1068.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1108.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1108.cpp
index 573a9810..573a9810 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1108.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1108.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1112.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1112.cpp
index e6537641..e6537641 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1112.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1112.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1127.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1127.cpp
index 9ee98743..9ee98743 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1127.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1127.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1134.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1134.cpp
index 369b70f1..369b70f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1134.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1134.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1139.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1139.cpp
index 47463232..47463232 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1139.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1139.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1158.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1158.cpp
index e92da160..e92da160 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1158.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1158.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1160.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1160.cpp
index 8dc7a9d1..8dc7a9d1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1160.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1160.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1161.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1161.cpp
index 535c3be7..535c3be7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1161.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1161.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1169.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1169.cpp
index aa56008a..aa56008a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1169.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1169.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1170.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1170.cpp
index 35dd772f..35dd772f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1170.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1170.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1235.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1235.cpp
index b9ff78a1..b9ff78a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1235.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1235.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1236.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1236.cpp
index 8acaaed2..8acaaed2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1236.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1236.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1249.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1249.cpp
index 975dc82c..975dc82c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1249.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1249.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1288.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1288.cpp
index 94444cf9..94444cf9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1288.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1288.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1289.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1289.cpp
index 42663477..42663477 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1289.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1289.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1296.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1296.cpp
index 699025fc..699025fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1296.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1296.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1315.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1315.cpp
index 080c9233..080c9233 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1315.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1315.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1321.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1321.cpp
index c381f91c..c381f91c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1321.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1321.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1324.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1324.cpp
index 5df154f3..5df154f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1324.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1324.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1338.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1338.cpp
index 04b4cd8a..04b4cd8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1338.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1338.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1340.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1340.cpp
index 680d6d51..680d6d51 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1340.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1340.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1346.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1346.h
index 21fe1c44..21fe1c44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1346.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1346.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1349.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1349.cpp
index aa1938e8..aa1938e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1349.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1349.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1395.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1395.cpp
index 00694ce9..00694ce9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1395.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1395.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1402.cpp
index 9b001a44..9b001a44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1403.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1403.cpp
index 71f67f75..71f67f75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1403.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1403.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1432.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1432.cpp
index 575a21c8..575a21c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1432.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1432.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1439.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1439.cpp
index d560522b..d560522b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1439.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1439.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1452.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1452.cpp
index d7fcf753..d7fcf753 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1452.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1452.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1462.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1462.cpp
index 5170b9a9..5170b9a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1462.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1462.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1607.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1607.cpp
index 9e4e47d3..9e4e47d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1607.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1607.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1649.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1649.cpp
index 4ab5eea8..4ab5eea8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1649.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1649.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1689.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1689.cpp
index 795bb572..795bb572 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1689.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1689.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1691.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1691.cpp
index 2d5d1204..2d5d1204 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1691.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1691.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1717.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1717.cpp
index a1adcf5f..a1adcf5f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1717.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1717.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1758-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758-f.cpp
index b324fbda..b324fbda 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1758-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1758.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758.cpp
index b0f35107..b0f35107 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1758.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1758.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1854.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1854.cpp
index 29cc2774..29cc2774 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1854.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1854.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1862.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1862.cpp
index 78958bb1..78958bb1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_1862.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_1862.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2285.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2285.cpp
index 14a85090..14a85090 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2285.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2285.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2322.cpp
index f9768c40..f9768c40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2371.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2371.cpp
index 26444ad3..26444ad3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2371.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2371.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2402.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2402.cpp
index 92731c19..92731c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2402.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2402.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2433_1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_1.cpp
index d19718f5..d19718f5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2433_1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2433_2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_2.cpp
index 9da12944..9da12944 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_2433_2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_2433_2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_33056.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_33056.cpp
index 1339ede1..1339ede1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_33056.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_33056.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_472.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_472.cpp
index 753d9519..753d9519 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_472.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_472.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_481.cpp
index 03c4a828..03c4a828 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_484.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_484.cpp
index 4c582e86..4c582e86 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_484.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_484.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_485.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_485.cpp
index 4865da64..4865da64 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_485.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_485.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_488.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_488.cpp
index 382beced..382beced 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_488.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_488.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_495.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_495.cpp
index f356c302..f356c302 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_495.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_495.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_612.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_612.cpp
index 38253f15..38253f15 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_612.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_612.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_631.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_631.cpp
index e110d383..e110d383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_631.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_631.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_633.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_633.cpp
index 5b672b47..5b672b47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_633.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_633.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_634.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_634.cpp
index febbf7b3..febbf7b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_634.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_634.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_643.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_643.cpp
index 55e3e309..55e3e309 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_643.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_643.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_651.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_651.cpp
index b36e182a..b36e182a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_651.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_651.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_653.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_653.cpp
index 1bf853d6..1bf853d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_653.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_653.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_654.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_654.cpp
index 8baaeb1c..8baaeb1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_654.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_654.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_657.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_657.cpp
index 230b96b3..230b96b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_657.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_657.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_662.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_662.cpp
index f8b0f8a8..f8b0f8a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_662.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_662.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_663.cpp
index 869320c0..869320c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_664.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_664.cpp
index 148201b0..148201b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_664.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_664.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_666.cpp
index 00adec83..00adec83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_670.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.cpp
index e9229a8e..e9229a8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_670.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_670.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.h
index ea503b10..ea503b10 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_670.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_670.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_671.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_671.h
index 8ff7bfca..8ff7bfca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_671.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_671.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_858.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_858.cpp
index 512d2e45..512d2e45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_858.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_858.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_902.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_902.cpp
index eb51f587..eb51f587 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_902.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_902.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_1000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_1000.cpp
index 06da6b3e..06da6b3e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_1000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_1000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_197.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_197.cpp
index e86698fd..e86698fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_197.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_197.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_322.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_322.cpp
index bc7e687f..bc7e687f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_322.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_322.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_323.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_323.cpp
index ea141156..ea141156 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_323.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_323.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_359.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_359.cpp
index 294e3afb..294e3afb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_359.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_359.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_405.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_405.cpp
index eda9b0dd..eda9b0dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_405.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_405.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_409.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_409.cpp
index b3b51488..b3b51488 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_409.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_409.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_411.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_411.cpp
index 647570f2..647570f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_411.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_411.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_478.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_478.cpp
index 857d48f7..857d48f7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_478.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_478.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_481.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_481.cpp
index 2a4e6b8f..2a4e6b8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_481.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_481.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_503.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_503.cpp
index 3c5951a8..3c5951a8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_503.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_503.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_512.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_512.cpp
index 3b4de434..3b4de434 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_512.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_512.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_525.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_525.cpp
index d0773475..d0773475 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_525.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_525.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_552.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_552.cpp
index 5a0704de..5a0704de 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_552.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_552.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_568.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_568.cpp
index 7b93e223..7b93e223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_568.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_568.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_575.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_575.cpp
index 3ef21f1f..3ef21f1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_575.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_575.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_596.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_596.cpp
index 88f77e34..88f77e34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_596.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_596.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_646.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_646.cpp
index f89b6416..f89b6416 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_646.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_646.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_663.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_663.cpp
index 2a473bc7..2a473bc7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_663.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_663.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_666.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_666.cpp
index 00adec83..00adec83 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_666.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_666.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_682.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_682.h
index 8f1fc31f..8f1fc31f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_682.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_682.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_687.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_687.cpp
index 0f9e8155..0f9e8155 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_687.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_687.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_752.cpp
index b0b77452..b0b77452 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_753.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_753.cpp
index 07cc31fe..07cc31fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_753.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_753.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_793.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_793.cpp
index 6777bfa5..6777bfa5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_793.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_793.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_825.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_825.cpp
index d3f89db7..d3f89db7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_825.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_825.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_889.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_889.cpp
index 270f0695..270f0695 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_889.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_889.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_928.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_928.cpp
index d2878656..d2878656 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_928.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_928.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_938.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_938.h
index b13997a6..b13997a6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_938.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_938.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_999.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_999.cpp
index 2a5d64a4..2a5d64a4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_999.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_999.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_width.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/bug_i_width.cpp
index 08f7888e..08f7888e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/bug_i_width.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/byref-2.cpp
new file mode 100644
index 00000000..0ef61cde
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-2.cpp
@@ -0,0 +1,8 @@
+int & aa(int & x,int & b);
+// sp_before_byref_func, sp_after_byref_func, sp_before_byref, sp_after_byref, sp_before_byref, sp_after_byref
+int aa(int & x,int &)
+// sp_before_byref, sp_after_byref, sp_before_unnamed_byref
+{
+ b = aa(x,b);
+ c = aa(& y,&d); // sp_addr
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref-3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-3.cpp
index 28da2d74..28da2d74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref-3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref-3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref.cpp
index 85669bc6..85669bc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/byref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/byref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/call_brace_init_lst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/call_brace_init_lst.cpp
index 11f92ee3..11f92ee3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/call_brace_init_lst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/call_brace_init_lst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/case-brace-remove.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/case-brace-remove.cpp
index 421ff658..421ff658 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/case-brace-remove.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/case-brace-remove.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cast.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cast.cpp
index d558e7f6..d558e7f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cast.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cast.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/casts.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/casts.cpp
index 0bcab0d9..0bcab0d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/casts.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/casts.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-addr.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-addr.h
index ea539afa..ea539afa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-addr.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-addr.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-implementation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-implementation.cpp
index 05eb69cf..05eb69cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-implementation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-implementation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-init.cpp
index af06e31a..af06e31a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class-init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class-init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class.h
index 0048604d..0048604d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt-cpp-cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-cpp-cont.cpp
index 8885e36b..8885e36b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt-cpp-cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-cpp-cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt-reflow.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-reflow.cpp
index adb5a6ab..adb5a6ab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt-reflow.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt-reflow.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_backslash_eol.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_backslash_eol.cpp
index e56aec25..e56aec25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_backslash_eol.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_backslash_eol.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp
index 32ff32d3..32ff32d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_convert_tab_to_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent.cpp
index 542a0fd2..542a0fd2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_indent_pp.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent_pp.h
index 25253f09..25253f09 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_indent_pp.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_indent_pp.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_insert.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_insert.cpp
index a5ae87d5..a5ae87d5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_insert.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_insert.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_right.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_right.cpp
index 121ea044..121ea044 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cmt_right.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp
new file mode 100644
index 00000000..1f3cff49
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cmt_trailing_single_line_c_to_cpp.cpp
@@ -0,0 +1,34 @@
+int main(int argc, char **argv){
+
+ // C-style comments on same line with actual code
+ // ----------------------------------------------
+
+ int a = 5; /* Trailing, single-line C-style comment */
+
+ int b = /* Single-line C-style comment in the middle */ 5;
+
+ /* Single-line C-style comment at beginning of line */ int c = 5;
+
+ int d = 5; /* Trailing
+ Multi-line
+ C-style
+ comment */
+
+# define A_MACRO \
+ do { \
+ if (true) { \
+ int e = 5; /* Trailing single-line C-style comment inside macro*/ \
+ } \
+ } while (0)
+
+
+ // C-style comments with no actual code on the same line
+ // -----------------------------------------------------
+
+ /* Single-line C-style comment. */
+
+ /* Multi-line
+ * C-style
+ * comment.
+ * */
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comma.cpp
new file mode 100644
index 00000000..e101145a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comma.cpp
@@ -0,0 +1,2 @@
+a( , 1);
+typedef SLIST_HEAD( , foo) foo_list_t;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/comment-align-multiline.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align-multiline.cpp
index 73dab5ec..73dab5ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/comment-align-multiline.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align-multiline.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/comment-align.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align.cpp
index 403bf773..403bf773 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/comment-align.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/comment-align.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/const_throw.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/const_throw.cpp
index f0d1773d..f0d1773d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/const_throw.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/const_throw.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constr_colon.cpp
index 6c0706e5..6c0706e5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/constructor.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constructor.cpp
index 46abf36a..46abf36a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/constructor.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/constructor.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/conversion_operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/conversion_operator.cpp
index 27b52dac..27b52dac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/conversion_operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/conversion_operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cout.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cout.cpp
index c3c9366d..c3c9366d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cout.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cout.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cpp17.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp17.cpp
index ba463284..ba463284 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cpp17.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp17.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cpp_move.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp_move.cpp
index cec9beb8..cec9beb8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/cpp_move.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/cpp_move.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ctor-var.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ctor-var.cpp
index 2551d8bd..2551d8bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ctor-var.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ctor-var.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/custom-open-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open-2.cpp
index 422cb1bf..422cb1bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/custom-open-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/custom-open.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open.cpp
index 1544fd74..1544fd74 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/custom-open.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/custom-open.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/define-indentation.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/define-indentation.cpp
index 69e924ee..69e924ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/define-indentation.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/define-indentation.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/delete.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/delete.cpp
index fff916e3..fff916e3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/delete.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/delete.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/deref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/deref.cpp
index abfb70c7..abfb70c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/deref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/deref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/digraph.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/digraph.cpp
index 57cfddf5..57cfddf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/digraph.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/digraph.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/disable_macro.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/disable_macro.cpp
index cb9fc307..cb9fc307 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/disable_macro.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/disable_macro.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/dont-detab-strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-detab-strings.cpp
index fd622c3c..fd622c3c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/dont-detab-strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-detab-strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/dont-process-defines.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-process-defines.cpp
index a0a58f85..a0a58f85 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/dont-process-defines.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/dont-process-defines.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/eat_blanks_after_codewidth.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eat_blanks_after_codewidth.cpp
index 8753aee2..8753aee2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/eat_blanks_after_codewidth.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eat_blanks_after_codewidth.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/eigen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eigen.cpp
index 4e228311..4e228311 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/eigen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/eigen.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum.cpp
index 7f87591e..7f87591e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_class.h
index 2ba9933f..2ba9933f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_comma.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comma.h
index 42ce2c53..42ce2c53 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_comma.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comma.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_comment_wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comment_wrap.cpp
index 736e6718..736e6718 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_comment_wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_comment_wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_shr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_shr.cpp
index 8bde6273..8bde6273 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/enum_shr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/enum_shr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/exception.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/exception.cpp
index 7f29676e..7f29676e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/exception.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/exception.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/extern_c.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_c.h
index e4943e50..e4943e50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/extern_c.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_c.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/extern_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_func.cpp
index 24e90a37..24e90a37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/extern_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/extern_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/first_len_minimum.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/first_len_minimum.cpp
index 0a729f01..0a729f01 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/first_len_minimum.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/first_len_minimum.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/fix_for_relational_operators.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/fix_for_relational_operators.cpp
index 0014b110..0014b110 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/fix_for_relational_operators.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/fix_for_relational_operators.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_auto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_auto.cpp
index c62548f8..c62548f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_auto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_auto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_long.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_long.cpp
index 7685f614..7685f614 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_long.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_long.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_loop_head.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_loop_head.cpp
index cbfacf62..cbfacf62 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/for_loop_head.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/for_loop_head.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/foreach.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/foreach.cpp
index cfbe7963..cfbe7963 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/foreach.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/foreach.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/friends.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/friends.cpp
index 1b073b45..1b073b45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/friends.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/friends.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func-param-wrap-oc.mm
index 16f98ce9..16f98ce9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func-param-wrap-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func-param-wrap-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call.cpp
index 6467560f..6467560f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_call_chain.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call_chain.cpp
index 7e2f3931..7e2f3931 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_call_chain.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_call_chain.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_class.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.cpp
index 64a11509..64a11509 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_class.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.h
index 168b0b3d..168b0b3d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param.cpp
index 24b187c1..24b187c1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_param_indent_leading_comma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param_indent_leading_comma.cpp
index 8c62d49b..8c62d49b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/func_param_indent_leading_comma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/func_param_indent_leading_comma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/function-def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/function-def.cpp
index 7f5e05c4..7f5e05c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/function-def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/function-def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/functype_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/functype_param.cpp
index 5d2ff4fe..5d2ff4fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/functype_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/gcc_case_ellipsis.cpp
new file mode 100644
index 00000000..1b0b4088
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gcc_case_ellipsis.cpp
@@ -0,0 +1,15 @@
+void f(int i)
+{
+ switch(i)
+ {
+ case 1 ... 2:
+ {
+ break;
+ }
+ case 3 ... 5:
+ break;
+
+ default:
+ break
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/gh555.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gh555.cpp
index feb059d3..feb059d3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/gh555.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/gh555.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/goto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/goto.cpp
index 0f50d182..0f50d182 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/goto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/goto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1082.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1082.cpp
index 06680c0e..06680c0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1082.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1082.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1165.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1165.cpp
index c3123b59..c3123b59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1165.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1165.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1181.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1181.cpp
index 1a959d34..1a959d34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1181.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1181.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1207.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1207.cpp
index 0c8e1c92..0c8e1c92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1207.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1207.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1218.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1218.cpp
index d4d05106..d4d05106 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1218.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1218.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1464.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1464.cpp
index e4005841..e4005841 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1464.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1464.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1466.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1466.cpp
index 912488b3..912488b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1466.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1466.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1509.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509.cpp
index d3e79ff6..d3e79ff6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1509.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1509_bug_1112_correction.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1509_bug_1112_correction.cpp
index 1470d613..1470d613 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1509_bug_1112_correction.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/i1516.cpp
new file mode 100644
index 00000000..e1fe3f77
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1516.cpp
@@ -0,0 +1,15 @@
+void myClass::foo() {
+ int bar;
+ std::string str;
+ DbConfig::configuredDatabase()->apply(db);
+ std::string str2;
+
+ std::string str2;
+ f();
+ DbConfig::configuredDatabase()->apply(db);
+ int bar;
+ std::string str;
+
+ std::string str2;
+ f();
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1536.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1536.cpp
index 2c33ec58..2c33ec58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1536.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1536.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1565.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1565.cpp
index 5cb66589..5cb66589 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1565.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1565.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1617.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1617.cpp
index 1901e3db..1901e3db 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1617.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1617.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1768.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1768.cpp
index 7fa82285..7fa82285 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i1768.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i1768.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i2033.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2033.cpp
index fd27cf6d..fd27cf6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i2033.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2033.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i2116.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2116.cpp
index 8011f572..8011f572 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i2116.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i2116.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i683.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i683.cpp
index 4d95c7ce..4d95c7ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/i683.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/i683.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if-constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if-constexpr.cpp
index 76f37f92..76f37f92 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if-constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if-constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if_chain_braces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_chain_braces.cpp
index b544f2bf..b544f2bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if_chain_braces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_chain_braces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if_constexpr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_constexpr.cpp
index 032f74ec..032f74ec 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/if_constexpr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/if_constexpr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ifcomment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ifcomment.cpp
index 52f508f6..52f508f6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ifcomment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ifcomment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-c.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-c.cpp
index 56633d0e..56633d0e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-c.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-c.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-inside-ternary-operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-inside-ternary-operator.cpp
index 6cd779a3..6cd779a3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-inside-ternary-operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-inside-ternary-operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-misc.cpp
index 78a924f4..78a924f4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-off.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-off.cpp
index 79a7ad65..79a7ad65 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent-off.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent-off.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent.cpp
index a8c4a514..a8c4a514 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_braces_no.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_braces_no.h
index c5b39b37..c5b39b37 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_braces_no.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_braces_no.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comma_brace_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_func.cpp
index d417b5be..d417b5be 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comma_brace_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comma_brace_glob.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_glob.cpp
index 8e01afc6..8e01afc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comma_brace_glob.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comma_brace_glob.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comment_align_thresh.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comment_align_thresh.cpp
index 7ddfacbf..7ddfacbf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_comment_align_thresh.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_comment_align_thresh.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_ctor_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_init.cpp
index d9fefe24..d9fefe24 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_ctor_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_ctor_members_twice.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_members_twice.cpp
index 4fbd1b4c..4fbd1b4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_ctor_members_twice.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_ctor_members_twice.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace.h
index f97bd324..f97bd324 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace2.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace2.h
index db2ce47d..db2ce47d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace2.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace2.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace_single_indent.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace_single_indent.h
index 97d57444..97d57444 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_namespace_single_indent.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_namespace_single_indent.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_off_after_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_off_after_return.cpp
index 58e24797..58e24797 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_off_after_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_off_after_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_param.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_param.cpp
index c194141b..c194141b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_param.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_param.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_call.cpp
index 96b38fba..96b38fba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_decl.cpp
index ff8c3e44..ff8c3e44 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_def.cpp
index 703e0422..703e0422 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_paren_after_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_paren_after_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_shift.cpp
index 54684fa7..54684fa7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_switch_pp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_switch_pp.cpp
index 1b76e218..1b76e218 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_switch_pp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_switch_pp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_var_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def.cpp
index 394cfb63..394cfb63 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_var_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_var_def_cont.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def_cont.cpp
index d273ae52..d273ae52 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/indent_var_def_cont.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/indent_var_def_cont.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/init-list-call.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init-list-call.cpp
index 70451ac4..70451ac4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/init-list-call.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init-list-call.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/init_align.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init_align.h
index ff1dcc9b..ff1dcc9b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/init_align.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/init_align.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/initlist_leading_commas.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/initlist_leading_commas.cpp
index 83188d77..83188d77 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/initlist_leading_commas.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/initlist_leading_commas.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/interface-keyword-in-cpp.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/interface-keyword-in-cpp.cpp
index bc039e18..bc039e18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/interface-keyword-in-cpp.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/interface-keyword-in-cpp.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1752.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1752.cpp
index e3be4d50..e3be4d50 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1752.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1752.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1778.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1778.cpp
index 4eea46e0..4eea46e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1778.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1778.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1782.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1782.cpp
index c12b83d0..c12b83d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1782.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1782.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1804.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1804.cpp
index 2923a4a2..2923a4a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1804.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1804.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1916.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1916.cpp
index 4c819605..4c819605 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1916.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1916.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1919.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1919.cpp
index 187065d6..187065d6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1919.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1919.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1946.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1946.cpp
index 9682da68..9682da68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1946.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1946.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1985.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1985.cpp
index 4e5685a1..4e5685a1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_1985.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_1985.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2000.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2000.cpp
index aa324f2e..aa324f2e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2000.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2000.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2001.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2001.cpp
index 39b9446d..39b9446d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2001.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2001.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2124-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-1.cpp
index 8c582cf9..8c582cf9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2124-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2124-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-2.cpp
index 8c582cf9..8c582cf9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2124-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2124-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2209-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-1.cpp
index a1ebb1a7..a1ebb1a7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2209-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2209-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-2.cpp
index 5725d3d7..5725d3d7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2209-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2209-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2623.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2623.cpp
index 5834e4b3..5834e4b3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_2623.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_2623.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_3116-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116-2.cpp
index 6e007772..6e007772 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_3116-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/issue_3116.cpp
new file mode 100644
index 00000000..96167df1
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3116.cpp
@@ -0,0 +1,213 @@
+// Singular with various newline formats
+auto f = [] -> void {
+ return;
+};
+
+auto f = [] -> void {
+ return;
+}();
+
+auto f = [] -> void
+{
+ return;
+}();
+
+auto f =
+[] -> void {
+ return;
+};
+
+auto f =
+[] -> void
+{
+ return;
+};
+
+auto f
+ = [] -> void {
+ int i = 0;
+ return;
+ };
+
+auto f
+ = []
+ {
+ int i = 0;
+ return;
+ };
+
+// Nested lambda
+auto f = [] {
+ auto g = [] {
+ auto h = [] {
+ return;
+ };
+ return;
+ };
+ return;
+};
+
+auto f = [] {
+ auto g = []
+ {
+ auto h = [] {
+ return;
+ };
+ return;
+ };
+ return;
+};
+
+auto f = []
+{
+ auto g = [] {
+ auto h = []
+ {
+ return;
+ };
+ return;
+ };
+ return;
+};
+
+// Nested lambda within functions
+Func(
+ [] { return; },
+ [] { return; }
+);
+
+Func([] { return; },
+ [] { return; }
+);
+
+Func([] { return; },
+ [] { return; }
+)();
+
+Func([] { return; },
+ [] { return; })();
+
+Func([] { return; },
+ [] { return; });
+
+A(
+ B([] (const std::string &s) -> bool {
+ s = "hello";
+ return true;
+ }), 1
+ );
+
+A(
+ B(
+ [] (const std::string &s) -> bool {
+ s = "hello";
+ return true;
+ }
+ ), 1
+ );
+
+// Inside scope
+{
+ std::thread([](const char *c) {
+ std::cout << c << std::endl;
+ }).detach();
+
+ std::thread(
+ [](const char *c) {
+ std::cout << c << std::endl;
+ }
+ ).detach();
+
+ auto f = [&](int a) {
+ return b;
+ };
+
+ auto f = [&](int a)
+ {
+ return b;
+ };
+}
+
+Func(std::count_if(v.begin(), v.end(), [&](const auto &a) {
+ return a == 3;
+ }));
+
+Func(
+ std::count_if(v.begin(), v.end(), [&](const auto &a)
+ {
+ return a == 3;
+ }));
+
+Func(
+ std::count_if(v.begin(), v.end(), [&](const auto &a) {
+ return a == 3;
+ }));
+
+Func(
+ std::count_if(v.begin(), v.end(), [&](const auto &a) {
+ return a == 3;
+ })
+ );
+
+// Test case from issue #3116
+const auto compare = [] (const auto i, const auto j)
+{
+ return i >= j;
+};
+
+std::sort(
+ vector.begin(),
+ vector.end(),
+ [] (const auto i, const auto j)
+{
+ return i >= j;
+}
+);
+
+// Test case from issue #3116
+if(isWidgetOfCurrentRow)
+{
+ it = std::find_if(
+ reloaded.begin(),
+ reloaded.end(),
+ [&rowGuid](const auto& device)
+ {
+ return (device.thingGUID == rowGuid && !device.isWidget);
+ }
+ );
+}
+else
+{
+ it = std::find_if(
+ reloaded.begin(),
+ reloaded.end(),
+ [&rowGuid](const auto& device)
+ {
+ return device.thingGUID == rowGuid;
+ }
+ );
+}
+
+// Test case from issue 1296 and some variants
+obj->Func([&](int a)
+ {
+ return b;
+ });
+
+obj->Func([] -> int
+ {
+ return b;
+ });
+
+obj->Func([]
+ {
+ return b;
+ }
+ );
+
+obj->Func(
+ Func([]
+ {
+ return b;
+ })
+ );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3330.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3330.cpp
new file mode 100644
index 00000000..37062480
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3330.cpp
@@ -0,0 +1,9 @@
+class Spaceship
+{
+public:
+ Spaceship():shields(100)
+ {
+ }
+
+ int shields;
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3368.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3368.cpp
new file mode 100644
index 00000000..2158086c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3368.cpp
@@ -0,0 +1,10 @@
+class Spaceship
+{
+public:
+ template<class T>
+ Spaceship<T>():shields(100)
+ {
+ }
+
+ int shields;
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3378.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3378.cpp
new file mode 100644
index 00000000..319c3151
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_3378.cpp
@@ -0,0 +1,28 @@
+class Foo
+{
+ public:
+ int bar()
+ {
+one:
+ two:
+ three:
+ four:
+ five:
+ six:
+ seven:
+ eight:
+ nine:
+ ten:
+ eleven:
+ twelve:
+ thirteen:
+ fourteen:
+ fifteen:
+ sixteen:
+ seventeen:
+ eighteen:
+ nineteen:
+ twenty:
+ return 0;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_523.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_523.cpp
index d203e398..d203e398 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_523.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_523.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_547_for_each.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_547_for_each.cpp
index cfbe7963..cfbe7963 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_547_for_each.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_547_for_each.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_564.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_564.cpp
index 0c289a8a..0c289a8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_564.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/issue_574-i.cpp
new file mode 100644
index 00000000..c7730a54
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574-i.cpp
@@ -0,0 +1,5 @@
+class A
+{
+void check( int strList = 13);
+};
+int A = 5;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574.cpp
index 96e910ca..96e910ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_624_angle.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_624_angle.cpp
index 255db223..255db223 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_624_angle.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_624_angle.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_633_typename.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_633_typename.cpp
index e99742ef..e99742ef 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_633_typename.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_633_typename.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_672.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_672.cpp
index 6d8dde90..6d8dde90 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/issue_672.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/issue_672.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/kw_subst.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst.cpp
index e57868e2..e57868e2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/kw_subst.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/kw_subst2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst2.cpp
index d167cc1c..d167cc1c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/kw_subst2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/kw_subst2.cpp
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
new file mode 100644
index 00000000..5262d00f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda.cpp
@@ -0,0 +1,77 @@
+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.73.0/tests/input/cpp/lambda2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda2.cpp
index d641c281..d641c281 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_brace_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_brace_list.cpp
index da3db41f..da3db41f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_brace_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_brace_list.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_in_one_liner.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_in_one_liner.cpp
index c740c4bd..c740c4bd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_in_one_liner.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_in_one_liner.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_selfcalling.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_selfcalling.cpp
index 543290fa..543290fa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lambda_selfcalling.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lambda_selfcalling.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Mac.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Mac.cpp
index 608952c0..608952c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Mac.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Mac.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Unix.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Unix.cpp
index cdbf7653..cdbf7653 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Unix.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Unix.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Win.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Win.cpp
index 20fa083a..20fa083a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/lineEndings-Win.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/lineEndings-Win.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/long_br_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_br_cmt.cpp
index a7638876..a7638876 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/long_br_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_br_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/long_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_namespace.cpp
index 89fe4435..89fe4435 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/long_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/long_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/macro_spaces.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/macro_spaces.cpp
index c27c6b5d..c27c6b5d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/macro_spaces.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/macro_spaces.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc.cpp
index 8a73b431..8a73b431 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc2.cpp
index f1be4478..f1be4478 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc3.cpp
index c7c10d6c..c7c10d6c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc4.cpp
index 725fa160..725fa160 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc5.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc5.cpp
index 570a4a76..570a4a76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc5.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc5.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc6.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc6.cpp
index 95cc0383..95cc0383 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/misc6.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/misc6.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/mod_remove_empty_return-2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return-2.cpp
index eb949c45..eb949c45 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/mod_remove_empty_return-2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return-2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/mod_remove_empty_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return.cpp
index ca3105da..ca3105da 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/mod_remove_empty_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/mod_remove_empty_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ms-style-ref.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ms-style-ref.cpp
index 213393b9..213393b9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ms-style-ref.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ms-style-ref.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/multi_line.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/multi_line.cpp
index df5f3a84..df5f3a84 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/multi_line.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/multi_line.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/namespace_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/namespace_namespace.cpp
index cf6f921e..cf6f921e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/namespace_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/namespace_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/new_op.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/new_op.cpp
index 828215e8..828215e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/new_op.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/new_op.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl-class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-class.h
index 128974b7..128974b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl-class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-class.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl-namespace.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-namespace.h
index a436fcb7..a436fcb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl-namespace.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl-namespace.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_assign_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_assign_leave_one_liners.cpp
index cf3325f0..cf3325f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_assign_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_assign_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_before_after.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_after.h
index fb77edf1..fb77edf1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_before_after.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/nl_before_brace_open_test.cpp
new file mode 100644
index 00000000..6e3daf66
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_brace_open_test.cpp
@@ -0,0 +1,23 @@
+int foo1() { int i; if (true) { i=2; }}
+
+namespace { int foo1() { int i; if (true) { i=2; }}}
+
+class bar {
+ int foo1() { int i; i = 1; if (true) { i=2; }}
+ int foo2() { int i; i = 1; if (true) { i=2; }}
+}
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static const kjs_double_t NaN_Bytes = {{0x7f, 0xf8, 0, 0, 0, 0, 0, 0}};
+
+#ifdef __cplusplus
+}
+#endif
+
+static struct LanguageForEncoding {
+ const char *index; int data;
+} const language_for_encoding[] = { {"iso 8859-1", 13}, {"iso 8859-15", 13} }
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_before_func_body_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_func_body_def.cpp
index c7cab4c7..c7cab4c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_before_func_body_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp
new file mode 100644
index 00000000..f4065b20
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_scoped_enum.cpp
@@ -0,0 +1,9 @@
+int main();
+
+enum struct Baz
+{
+ Abc = 4
+ , Def = 1
+};
+
+Baz decide( Baz, Baz ) noexcept;
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.74.0/tests/input/cpp/nl_before_struct_struct.cpp
new file mode 100644
index 00000000..edac027c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_before_struct_struct.cpp
@@ -0,0 +1,15 @@
+#include <string>
+
+struct Foo
+{
+ std::string name;
+ int value;
+};
+
+struct Bar
+{
+ Foo* parent;
+ int modifier;
+};
+
+void baz( Foo*, Bar* );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_brace_brace.cpp
index b698546a..b698546a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-f.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-fr.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-r.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp
index 6250d752..6250d752 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_fdef_brace_cond-rf.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_for_leave_one_liners.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_for_leave_one_liners.cpp
index 382d2815..382d2815 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_for_leave_one_liners.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_for_leave_one_liners.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func.cpp
index e27d7e55..e27d7e55 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_empty.cpp
index 6678ee18..6678ee18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren.cpp
index 309a65a9..309a65a9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren_empty.cpp
index 6678ee18..6678ee18 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_call_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_call_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_decl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_decl.cpp
index 91a7184f..91a7184f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_decl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_decl.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_def_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_def_paren_empty.cpp
index f1ba8607..f1ba8607 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_def_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_def_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_paren_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_paren_empty.cpp
index 19965aac..19965aac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_paren_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_paren_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_scope_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_scope_name.cpp
index d221e974..d221e974 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_scope_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_scope_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_type_name.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_type_name.cpp
index 26e49663..26e49663 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_func_type_name.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_func_type_name.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_inside_namespace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_inside_namespace.cpp
index 4bdcb394..4bdcb394 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_inside_namespace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_inside_namespace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_max_blank_in_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_max_blank_in_func.cpp
index c87e6e68..c87e6e68 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/nl_max_blank_in_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/nl_max_blank_in_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/noexcept.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/noexcept.cpp
index e6ea9116..e6ea9116 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/noexcept.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/noexcept.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/not_lambda.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/not_lambda.cpp
index a9c65439..a9c65439 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/not_lambda.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/not_lambda.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/op_sym_empty.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/op_sym_empty.cpp
index 4b79ca9e..4b79ca9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/op_sym_empty.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/op_sym_empty.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/operator.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator.cpp
index 6f2a7f03..6f2a7f03 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/operator.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/operator_proto.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator_proto.cpp
index b14935ee..b14935ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/operator_proto.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/operator_proto.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/out-668.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/out-668.cpp
index 0dac74c3..0dac74c3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/out-668.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/out-668.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/output.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/output.cpp
index 4563c43b..4563c43b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/output.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/output.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/override_virtual.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/override_virtual.cpp
index 537454b1..537454b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/override_virtual.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/override_virtual.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/parameter-packs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/parameter-packs.cpp
index 6d734b1f..6d734b1f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/parameter-packs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/parameter-packs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/patch_32.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/patch_32.cpp
index 8d9e222e..8d9e222e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/patch_32.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/pos_assign.cpp
new file mode 100644
index 00000000..af55296b
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_assign.cpp
@@ -0,0 +1,7 @@
+static const unsigned char radiooff_light_bits[] =
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10,
+ 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x0c, 0x06,
+ 0xf0, 0x01
+};
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pos_bool_in_template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_bool_in_template.h
index ef01470e..ef01470e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pos_bool_in_template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_bool_in_template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pos_shift.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_shift.cpp
index 4d55a541..4d55a541 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pos_shift.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pos_shift.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp-define-indent.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-define-indent.cpp
index 8ec5657f..8ec5657f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp-define-indent.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-define-indent.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp-pragma.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-pragma.cpp
index 75b3c46d..75b3c46d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp-pragma.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp-pragma.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_brace.cpp
index 86ed0a8f..86ed0a8f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_case.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_case.cpp
index da61641a..da61641a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_case.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_case.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_extern.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_extern.cpp
index 76cfc4bf..76cfc4bf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_extern.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_extern.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_func_def.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_func_def.cpp
index 7a0bcecf..7a0bcecf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_indent_func_def.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_indent_func_def.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_multi_comment.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_multi_comment.cpp
index 98418c46..98418c46 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/pp_multi_comment.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/pp_multi_comment.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/proto-wrap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/proto-wrap.cpp
index 35e8bea3..35e8bea3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/proto-wrap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/proto-wrap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ptr-star.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ptr-star.cpp
index ff0ab369..ff0ab369 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/ptr-star.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/ptr-star.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/qt-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qt-1.cpp
index e318c1aa..e318c1aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/qt-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qt-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/qtargs.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qtargs.cpp
index 5037d792..5037d792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/qtargs.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/qtargs.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/region.cpp
index 28447084..28447084 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/return_braced_init.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_braced_init.cpp
index cf86baeb..cf86baeb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/return_braced_init.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_braced_init.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/return_init_list.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/return_init_list.cpp
index f58dfee5..f58dfee5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/return_init_list.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/returns.cpp
new file mode 100644
index 00000000..1085bd72
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/returns.cpp
@@ -0,0 +1,34 @@
+#define foo1(x) { return x; }
+#define foo2(x) { return(x); }
+#define foo3(x) { return (x); }
+#define foo4(x) { return{x}; }
+#define foo5(x) { return {x}; }
+#define foo6(x) { return/**/x; }
+
+#define case1(x) return x
+#define case2(x) return(x)
+#define case3(x) return (x)
+#define case4(x) return{x}
+#define case5(x) return {x}
+#define case6(x) return/**/x
+
+void foo(int x)
+{
+ switch (x)
+ {
+ case 1:
+ return 1;
+ case 2:
+ return(2);
+ case 3:
+ return (3);
+ case 4:
+ return{4};
+ case 5:
+ return {5};
+ case 6:
+ return/**/6;
+ default:
+ return;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sef.cpp
index add2fc4a..add2fc4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/semi.cpp
new file mode 100644
index 00000000..9f7832cd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semi.cpp
@@ -0,0 +1,11 @@
+for ( i = 1 ; i < 10 ; i++)
+{
+ a = i ;
+}
+for ( ; ; )
+{
+ a = i ; b = j;
+ a = i ; /* comment */
+ a = i ; // comment
+}
+if (p == b) ;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index a344480b..a344480b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/semicolons.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolons.cpp
index 52796f75..52796f75 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/semicolons.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/semicolons.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.2886991.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.2886991.cpp
index 97dfe0cf..97dfe0cf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.2886991.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.2886991.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.3266678.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3266678.cpp
index 69f877ed..69f877ed 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.3266678.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3266678.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.3315874.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3315874.h
index 58921bc5..58921bc5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf.3315874.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf.3315874.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf557.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf557.cpp
index c7ba93cc..c7ba93cc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf557.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf557.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf562.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf562.cpp
index 15ee8e79..15ee8e79 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf562.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf562.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf567.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf567.cpp
index 0c1d5fc9..0c1d5fc9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf567.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf567.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf574.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf574.cpp
index 3f5a98d4..3f5a98d4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf574.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf574.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf583.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf583.cpp
index 8eba4d1e..8eba4d1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf583.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf583.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf593.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf593.cpp
index 1fc0ded8..1fc0ded8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sf593.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sf593.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sim.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sim.h
index 29c52879..29c52879 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sim.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/sp_after_angle.cpp
new file mode 100644
index 00000000..18788919
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_angle.cpp
@@ -0,0 +1,6 @@
+template < typename T>
+struct foo {};
+
+Q_DECLARE_METATYPE(foo < int> )
+
+int bar(foo <int > );
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_constr_colon.cpp
index caea467a..caea467a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_decltype.cpp
index 18448555..18448555 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_decltype.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_type.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_type.cpp
index 6f235d22..6f235d22 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_after_type.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_after_type.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_angle_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_angle_paren.cpp
index 911aa53b..911aa53b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_angle_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_angle_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_arith_additive.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_arith_additive.cpp
index ab2096c8..ab2096c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_arith_additive.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_arith_additive.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_balance_nested_parens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_balance_nested_parens.cpp
index dc5f5e8e..dc5f5e8e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_balance_nested_parens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_balance_nested_parens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_byref_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_byref_func.cpp
index 7dd9c14a..7dd9c14a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_byref_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/sp_before_case_colon.cpp
new file mode 100644
index 00000000..0c534fe0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_case_colon.cpp
@@ -0,0 +1,12 @@
+int foo(abc_t d)
+{
+ switch (d)
+ {
+ case A:
+ return 0;
+ case B:
+ return 1;
+ case C:
+ return 2;
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_constr_colon.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_constr_colon.cpp
index 796522c7..796522c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_constr_colon.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_constr_colon.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp
index 45ffb335..45ffb335 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_before_tr_emb_cmt_input.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_brace_brace.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_brace.cpp
index bb730d61..bb730d61 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_brace_brace.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_brace.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_brace_catch.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_catch.cpp
index 7b4bdc5e..7b4bdc5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_brace_catch.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_brace_catch.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cmt_cpp_region.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_region.cpp
index b70ef6b1..b70ef6b1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cmt_cpp_region.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_region.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cmt_cpp_start.cc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cmt_cpp_start.cc
index 6a9b203b..6a9b203b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cmt_cpp_start.cc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/sp_cond_question.cpp
new file mode 100644
index 00000000..cec6c827
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cond_question.cpp
@@ -0,0 +1,6 @@
+//example file
+int b;
+int t;
+int f;
+int a = b ? t : f;
+int a = b ? : f;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cparen_oparen.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cparen_oparen.cpp
index 83c60dd4..83c60dd4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_cparen_oparen.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp
new file mode 100644
index 00000000..e25d0496
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_cpp_lambda_fparen.cpp
@@ -0,0 +1,24 @@
+void test()
+{
+ []{}();
+ []{ foo(); }();
+ [x]{ foo(x); }();
+ [](int x){ foo(x); }(42);
+ [y](int x){ foo(x, y); }(42);
+ bar([]{ return 1; }());
+ bar([]{ return foo(); }());
+ bar([x]{ return foo(x); }(42));
+ bar([](int x){ return foo(x); }(42));
+ bar([y](int x){ return foo(x, y); }(42));
+
+ [] {} ();
+ [] { foo(); } ();
+ [x] { foo(x); } ();
+ [] (int x){ foo(x); } (42);
+ [y] (int x){ foo(x, y); } (42);
+ bar([] { return 1; } ());
+ bar([] { return foo(); } ());
+ bar([x] { return foo(x); } (42));
+ bar([] (int x){ return foo(x); } (42));
+ bar([y] (int x){ return foo(x, y); } (42));
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_decltype.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_decltype.cpp
index 3e2f7e47..3e2f7e47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_decltype.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/sp_endif_cmt.cpp
new file mode 100644
index 00000000..9e5b2db8
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_endif_cmt.cpp
@@ -0,0 +1,11 @@
+#if _MSC_VER < 1300
+#define __func__ "???"
+#else /* comment 1 */
+#define __func__ __FUNCTION__
+#endif /* comment 2 */
+
+#if _MSC_VER < 1300
+#define __func__ "???"
+#else // comment 1
+#define __func__ __FUNCTION__
+#endif // comment 2
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.74.0/tests/input/cpp/sp_enum_assign.cpp
new file mode 100644
index 00000000..2ebab438
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_assign.cpp
@@ -0,0 +1,6 @@
+typedef enum
+{
+ A = 0,
+ B = 1 << 0,
+ C = 1 << 1
+};
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.74.0/tests/input/cpp/sp_enum_colon.cpp
new file mode 100644
index 00000000..a23c6afd
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_enum_colon.cpp
@@ -0,0 +1,10 @@
+enum Enum1:int {
+ E31=0,
+ E32=1,
+ E33=2
+};
+enum Enum2 : int {
+ E31=0,
+ E32=1,
+ E33=2
+};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_func_call_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_func_call_paren.cpp
index 90798ef9..90798ef9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_func_call_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/sp_inside_braces_enum.cpp
new file mode 100644
index 00000000..8386e215
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_inside_braces_enum.cpp
@@ -0,0 +1 @@
+enum { IDD = IDD_ATCS_MGR_DLG };
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.74.0/tests/input/cpp/sp_paren_brace.cpp
new file mode 100644
index 00000000..4ac73f87
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_paren_brace.cpp
@@ -0,0 +1,18 @@
+void *stopper_for_apply = (int[]) {0};
+// ^ here
+
+template<typename T, typename U>
+auto add(T t, U u) -> decltype(t + u) {
+// ^ here
+ return t + u;
+}
+
+void f()noexcept() {
+// ^ here
+}
+
+#define FOO5(x) for(;;) (!(x)) { *(volatile int*)0 = 1; }
+// ^ here
+
+(struct foo) {...}
+// ^ here
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp
index fff4aff4..fff4aff4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_skip_vbrace_tokens.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_throw_paren.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_throw_paren.cpp
index f45f1a9a..f45f1a9a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_throw_paren.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_throw_paren.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_type_func.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_type_func.cpp
index 30e058e7..30e058e7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/sp_type_func.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/sp_type_func.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/squeeze_ifdef.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/squeeze_ifdef.cpp
index 42699d1d..42699d1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/squeeze_ifdef.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/squeeze_ifdef.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/static.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/static.h
index 8121fef1..8121fef1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/static.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/static.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/stdcall.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/stdcall.cpp
index a2353599..a2353599 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/stdcall.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/stdcall.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/string_replace_tab_chars.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/string_replace_tab_chars.cpp
index 3534461b..3534461b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/string_replace_tab_chars.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/string_replace_tab_chars.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/strings.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/strings.cpp
index 1cfea449..1cfea449 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/strings.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/strings.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/tab-0.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-0.cpp
index 474aba08..474aba08 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/tab-0.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-0.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/tab-1.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-1.cpp
index dc7a65c4..dc7a65c4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/tab-1.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/tab-1.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templ_class.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templ_class.h
index 0f102244..0f102244 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templ_class.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/templates.cpp
new file mode 100644
index 00000000..737599bf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates.cpp
@@ -0,0 +1,186 @@
+#include <list>
+#include <map>
+#include <vector>
+
+#define MACRO(T) f<T>()
+
+class MyClass
+{
+public:
+ std::map < int, bool > someData;
+ std::map < int, std::list < bool > > otherData;
+};
+
+void foo()
+{
+ List < byte >bob = new List<byte> ();
+
+}
+
+A<B> foo;
+A<B,C> bar;
+A<B*> baz;
+A<B<C> > bay;
+
+void asd(void)
+{
+A<B> foo;
+A<B,C> bar;
+A<B*> baz;
+A<B<C> > bay;
+ if (a < b && b > c)
+ {
+ a = b < c > 0;
+ }
+ if (a < bar() > c)
+ {
+ }
+ a < up_lim() ? do_hi() : do_low;
+ a[ a<b>c] = d;
+}
+
+template<typename T> class MyClass
+{
+
+}
+
+ template<typename T>
+ class MyClass
+ {
+ }
+
+ template<typename A, typename B, typename C> class MyClass : myvar(0),
+ myvar2(0)
+ {
+
+ }
+
+ template<typename A, typename B, typename C> class MyClass
+ : myvar(0),
+ myvar2(0)
+ {
+
+ }
+
+
+static int max_value()
+ {
+ return (std :: numeric_limits <int >:: max ) ();
+ }
+
+template < class Config_ >
+priority_queue < Config_ > :: ~ priority_queue () {
+
+ }
+
+template<class T>
+T test(T a) {
+return a;
+}
+
+int main() {
+int k;
+int j;
+h g<int>;
+k=test<int> (j);
+return 0;
+}
+
+template<typename T, template<typename, unsigned int, unsigned int> class ConcreteStorageClass>
+class RotationMatrix
+ : public StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>
+{
+
+public:
+
+ RotationMatrix()
+ : StaticBaseMatrix<T, 3, 3, ConcreteStorageClass>()
+ {
+ // do some initialization
+ }
+
+ void assign(const OtherClass<T, 3, 3 >& other)
+ {
+ // do something
+ }
+
+};
+
+int main()
+{
+ MyClass<double, 3, 3, MyStorage> foo;
+}
+
+template< typename CharT, int N, typename Traits >
+inline std::basic_ostream<CharT,Traits>& FWStreamOut(std::basic_ostream<CharT,Traits> &os,
+ const W::S<CharT,N,Traits> &s)
+ {
+ return operator<< <CharT, N, Traits, char, std::char_traits<char> > ( os, s );
+ }
+
+struct foo {
+type1 < int & > bar;
+};
+struct foo {
+type1 < int const > bar;
+};
+
+
+template <int i> void f();
+template <int i> void g() {
+f<i-1>();
+f< i >();
+f<i+1>();
+f<bar()>();
+}
+void h() { g<42>(); }
+
+#include <vector>
+std::vector<int> A(2);
+std::vector<int> B;
+std::vector<int>C(2);
+std::vector<int>D;
+
+template<class T>struct X{template<class U>void operator()(U);};
+
+template<class T>class Y{template<class V>void f(V);};
+
+void (* foobar)(void) = NULL;
+std::vector<void (*)(void)> functions;
+
+#define MACRO( a ) a
+template < typename = int > class X ;
+MACRO ( void f ( X < > & x ) ) ;
+void g ( X < > & x ) ;
+
+#include <vector>
+typedef std::vector<std::vector<int> > Table; // OK
+typedef std::vector<std::vector<bool>> Flags; // Error
+
+void func(List<B>= default_val1);
+void func(List<List<B>>= default_val2);
+
+BLAH<(3.14 >= 42)> blah;
+bool X = j<3>>1;
+
+void foo()
+{
+ A<(X>Y)> a;
+ a = static_cast<List<B>>(ld);
+}
+
+template<int i> class X { /* ... */ };
+X< 1>2 > x1; // Syntax error.
+X<(1>2)> x2; // Okay.
+
+template<class T> class Y { /* ... */ };
+Y<X<1>> x3; // Okay, same as "Y<X<1> > x3;".
+Y<X<(6>>1)>> x4;
+
+
+template <typename T>
+int
+myFunc1(typename T::Subtype val);
+
+int
+myFunc2(T::Subtype val);
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates2.cpp
index 46d41560..46d41560 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates3.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates3.cpp
index 55b11d26..55b11d26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates3.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates3.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates4.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates4.cpp
index 10b96e4a..10b96e4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/templates4.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/templates4.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/toggle_processing_cmt.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt.cpp
index 6f49594d..6f49594d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/toggle_processing_cmt.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/toggle_processing_cmt2.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt2.cpp
index 6b4a0a39..6b4a0a39 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/toggle_processing_cmt2.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/toggle_processing_cmt2.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/trailing_return.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/trailing_return.cpp
index de061955..de061955 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/trailing_return.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/trailing_return.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/try-catch-nl.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/try-catch-nl.cpp
index 447f3cbd..447f3cbd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/try-catch-nl.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cpp/type_brace_init_lst.cpp
new file mode 100644
index 00000000..53e74de2
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/type_brace_init_lst.cpp
@@ -0,0 +1,87 @@
+// Uncrustify does not process the intention of an using alias,
+// unknown_kw will therefore no be parsed as known keyword
+using unknown_kw = int;
+
+int main()
+{
+ // 'int' is a known c++ keyword
+ auto a0 = int { 1 };
+ auto b0 = unknown_kw { 2 };
+ auto c0 = ::unknown_kw { 3 };
+ auto d0 = (int) unknown_kw { 4 };
+ auto e0 = (int) ::unknown_kw { 5 };
+ auto f0 = static_cast<int>(unknown_kw { 6 });
+ auto g0 = static_cast<int>(::unknown_kw { 7 });
+
+ auto a1 = int{1};
+ auto b1 = unknown_kw{2};
+ auto c1 = ::unknown_kw{3};
+ auto d1 = (int) unknown_kw{4};
+ auto e1 = (int) ::unknown_kw{5};
+ auto f1 = static_cast<int>(unknown_kw{6});
+ auto g1 = static_cast<int>(::unknown_kw{7});
+
+
+
+ auto a2 = int
+
+ {1};
+ auto b2 = unknown_kw
+
+ {2};
+ auto c2 = ::unknown_kw
+
+ {3};
+ auto d2 = (int) unknown_kw
+
+ {4};
+ auto e2 = (int) ::unknown_kw
+
+ {5};
+ auto f2 = static_cast<int>(unknown_kw
+
+ {6});
+ auto g2 = static_cast<int>(::unknown_kw
+
+ {7});
+
+
+
+ auto a1 = int{
+
+ 1
+
+ };
+ auto b1 = unknown_kw{
+
+ 2
+
+ };
+ auto c1 = ::unknown_kw {
+
+ 3
+
+ };
+ auto d1 = (int) unknown_kw {
+
+ 4
+
+ };
+ auto e1 = (int) ::unknown_kw {
+
+ 5
+
+ };
+ auto f1 = static_cast<int>(unknown_kw {
+
+ 6
+
+ });
+ auto g1 = static_cast<int>(::unknown_kw {
+
+ 7
+
+ });
+
+ return 1;
+} \ No newline at end of file
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/uniform_initialization.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/uniform_initialization.cpp
index 37a131e0..37a131e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/uniform_initialization.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/uniform_initialization.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/using-alias-in-define.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/using-alias-in-define.cpp
index 82854287..82854287 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/using-alias-in-define.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/using-alias-in-define.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/var_def_gap.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/var_def_gap.cpp
index 0cca962b..0cca962b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/var_def_gap.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/var_def_gap.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/variadic-template.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/variadic-template.h
index f522097c..f522097c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/variadic-template.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/variadic-template.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/wacky-template.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/wacky-template.cpp
index 99e01b6e..99e01b6e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/wacky-template.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cpp/wacky-template.cpp
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/1822.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/1822.cs
index a4269bd9..a4269bd9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/1822.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/1822.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/615_nested-usings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/615_nested-usings.cs
index 14a31507..14a31507 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/615_nested-usings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/615_nested-usings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/620_getset-brace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/620_getset-brace.cs
index f6ee6342..f6ee6342 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/620_getset-brace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/620_getset-brace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/621_this-spacing.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/621_this-spacing.cs
index bd28a5e8..bd28a5e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/621_this-spacing.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/621_this-spacing.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/625_where-constraints.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/625_where-constraints.cs
index 09274ab9..09274ab9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/625_where-constraints.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/625_where-constraints.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs
index 2e6d5a98..2e6d5a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/630_bad-new-init-semicolon-removal.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/Issue_2705.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/Issue_2705.cs
index 9a1b3172..9a1b3172 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/Issue_2705.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/Issue_2705.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11095.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11095.mm
index 34ed4050..34ed4050 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11095.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11095.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11662.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11662.cs
index 9a49fdba..9a49fdba 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11662.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11662.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11993.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11993.cs
index 6bc6529a..6bc6529a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-11993.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-11993.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-12303.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-12303.cs
index 01be8291..01be8291 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-12303.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-12303.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1288.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1288.cs
index 70554a02..70554a02 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1288.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1288.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1333.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1333.mm
index 5c91693c..5c91693c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1333.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1333.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1338.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1338.cs
index d10b4893..d10b4893 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1338.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1338.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1343.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1343.cs
index 852fe640..852fe640 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1343.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1343.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1345.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1345.cs
index e218e6a2..e218e6a2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1345.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1345.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-13955.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-13955.cs
index 940aa89b..940aa89b 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-13955.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-13955.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-14131.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-14131.cs
index c8c3c918..c8c3c918 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-14131.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-14131.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-17253.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-17253.cs
index 7342d82c..7342d82c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-17253.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-17253.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18437.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18437.cs
index aab6c498..aab6c498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18437.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18437.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18777.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18777.cs
index 198d5be3..198d5be3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18777.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18777.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18780.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18780.cs
index 0eea713e..0eea713e 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18780.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18780.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18829.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18829.cs
index 62c9f8fb..62c9f8fb 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-18829.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-18829.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1919.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1919.cs
index 956fd0f8..956fd0f8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1919.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1919.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-19644.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19644.cs
index da76bfbc..da76bfbc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-19644.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19644.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1975.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1975.cs
index af678a93..af678a93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1975.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1975.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1977.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1977.cs
index e4b1b375..e4b1b375 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1977.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1977.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1978.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1978.cs
index 14cbdc7d..14cbdc7d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-1978.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-1978.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-19895.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19895.cs
index a22c6fa8..a22c6fa8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-19895.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-19895.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2007.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2007.cs
index 2e9f163a..2e9f163a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2007.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2007.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2008.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2008.cs
index eeb649dd..eeb649dd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2008.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2008.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2020.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2020.cs
index 37d9ef23..37d9ef23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2020.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2020.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2021.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2021.cs
index 2b08fafe..2b08fafe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2021.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2021.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-21730.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-21730.cs
index 6fcb8c16..6fcb8c16 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-21730.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-21730.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2505.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2505.cs
index a17e6a5e..a17e6a5e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2505.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2505.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2506.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2506.cs
index 7bdbb81a..7bdbb81a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2506.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2506.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2684.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2684.cs
index 0c91b081..0c91b081 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2684.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2684.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2685.cs
index 4c11f20b..4c11f20b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-2685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-2685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-29933.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-29933.cs
index ed96bc87..ed96bc87 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-29933.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-29933.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-30498_2.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-30498_2.cs
index ba0d8515..ba0d8515 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-30498_2.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-30498_2.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-3083.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3083.cs
index 5209dc72..5209dc72 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-3083.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3083.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-32658.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-32658.cs
index 145da65f..145da65f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-32658.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-32658.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-3484.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3484.cs
index 1235aa91..1235aa91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-3484.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-3484.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-36862.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-36862.cs
index cb3cb448..cb3cb448 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-36862.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-36862.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-37241.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-37241.cs
index b2097c4f..b2097c4f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-37241.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-37241.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-40685.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-40685.cs
index a2f37547..a2f37547 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-40685.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-40685.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-58354.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-58354.cs
index 6c77de40..6c77de40 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-58354.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-58354.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-9917.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-9917.cs
index 5bd9dc64..5bd9dc64 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/UNI-9917.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/UNI-9917.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/add-nl-before-namespace.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/add-nl-before-namespace.cs
index 93a2cf04..93a2cf04 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/add-nl-before-namespace.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/add-nl-before-namespace.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/argtypes.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/argtypes.mm
index fd2ff142..fd2ff142 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/argtypes.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/argtypes.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/asm.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/asm.h.mm
index 97c0edd3..97c0edd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/asm.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/asm.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1591.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1591.cs
index ac62df9e..ac62df9e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1591.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1591.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1620.cs
index 0c9d4eb9..0c9d4eb9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1637.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1637.cs
index 1f46d1bc..1f46d1bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1637.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1637.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1650.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1650.cs
index 5c52aece..5c52aece 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_1650.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_1650.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_600.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_600.cs
index 3d93d861..3d93d861 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_600.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_600.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_620.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_620.cs
index f6ee6342..f6ee6342 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_620.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_620.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_i_679.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_679.cs
index 199ad7e6..199ad7e6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_i_679.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_679.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_i_935.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_935.cs
index d2c8ec95..d2c8ec95 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/bug_i_935.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/bug_i_935.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/casting.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/casting.mm
index c8022c7b..c8022c7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/casting.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/casting.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/cmt_backslash_eol.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/cmt_backslash_eol.cs
index e56aec25..e56aec25 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/cmt_backslash_eol.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/cs/comma.cs
new file mode 100644
index 00000000..794410f0
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/comma.cs
@@ -0,0 +1 @@
+int[ , , ] x;
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/definesalign.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/definesalign.h.mm
index a249d1aa..a249d1aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/definesalign.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/definesalign.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/delegate.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delegate.cs
index 3a4b103c..3a4b103c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/delegate.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delegate.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/delete-space-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delete-space-oc.mm
index 66e24dc8..66e24dc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/delete-space-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/delete-space-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/exception-filters.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/exception-filters.cs
index 1e3abca3..1e3abca3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/exception-filters.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/exception-filters.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/fncall_as_ctor_in_attr.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/fncall_as_ctor_in_attr.cs
index cf52b46f..cf52b46f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/fncall_as_ctor_in_attr.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/fncall_as_ctor_in_attr.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/func-param-wrap-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/func-param-wrap-oc.mm
index 16f98ce9..16f98ce9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/func-param-wrap-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/func-param-wrap-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/generics.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/generics.cs
index 7bbe04c7..7bbe04c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/generics.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/generics.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/getset.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/getset.cs
index 59aaa5bc..59aaa5bc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/getset.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/getset.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/gs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/gs.cs
index 16adc604..16adc604 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/gs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/gs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/ifcolalign.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcolalign.cs
index d2e40c78..d2e40c78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/ifcolalign.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcolalign.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/ifcomment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcomment.cs
index 6663a6ca..6663a6ca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/ifcomment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/ifcomment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/indent-multistring-coulmn1.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/indent-multistring-coulmn1.cs
index 56bdf473..56bdf473 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/indent-multistring-coulmn1.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/indent-multistring-coulmn1.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/inttypes.h.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/inttypes.h.mm
index 6e093789..6e093789 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/inttypes.h.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/inttypes.h.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/logger.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/logger.cs
index defede8a..defede8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/logger.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/logger.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mdarray_space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mdarray_space.cs
index e5338c11..e5338c11 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mdarray_space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mdarray_space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/misc-failures.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/misc-failures.cs
index 857c06f9..857c06f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/misc-failures.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/misc-failures.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs
index f8db4f0b..f8db4f0b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_brace_nl_block_rem_mlcond.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mod_full_paren_if_bool.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_paren_if_bool.cs
index 6bcd9201..6bcd9201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/mod_full_paren_if_bool.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/mod_full_paren_if_bool.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/new-constraint-paren-space.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/new-constraint-paren-space.cs
index 209f2721..209f2721 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/new-constraint-paren-space.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/new-constraint-paren-space.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/newlines.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/newlines.mm
index 31a46376..31a46376 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/newlines.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/newlines.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/nullable_prop.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/nullable_prop.cs
index 21c4f7b0..21c4f7b0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/nullable_prop.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/nullable_prop.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/objc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/objc.mm
index 7f0e706a..7f0e706a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/objc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/objc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/oneline_property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/oneline_property.cs
index 1d7a2c26..1d7a2c26 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/oneline_property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/oneline_property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/operator-null-conditional.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator-null-conditional.cs
index 530bdd27..530bdd27 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/operator-null-conditional.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator-null-conditional.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/operator_null-coalescing-assignment.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator_null-coalescing-assignment.cs
index 416e6afc..416e6afc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/operator_null-coalescing-assignment.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/operator_null-coalescing-assignment.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/pp-ignore.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/pp-ignore.mm
index 2673008c..2673008c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/pp-ignore.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/pp-ignore.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/preserveTabs.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/preserveTabs.cs
index c9583dcd..c9583dcd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/preserveTabs.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/preserveTabs.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/property.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/property.cs
index 85e08bae..85e08bae 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/property.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/property.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/region.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/region.cs
index 4f8667f2..4f8667f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/region.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/region.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/remove_semi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/remove_semi.cs
index 2e6d5a98..2e6d5a98 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/remove_semi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/remove_semi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sf607.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf607.cs
index f0617c19..f0617c19 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sf607.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf607.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sf628.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf628.cs
index 803c9962..803c9962 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sf628.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sf628.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/simple.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/simple.cs
index 30acd134..30acd134 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/simple.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/simple.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sort_using.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using.cs
index 881b4d5b..881b4d5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sort_using.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sort_using_categ.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using_categ.cs
index 173e42bb..173e42bb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sort_using_categ.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sort_using_categ.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sp_between_new_paren.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sp_between_new_paren.cs
index f5d8381d..f5d8381d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/sp_between_new_paren.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/sp_between_new_paren.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/squeeze-paren-close-Option.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/squeeze-paren-close-Option.cs
index 37203f4a..37203f4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/squeeze-paren-close-Option.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/squeeze-paren-close-Option.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/string_multi.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/string_multi.cs
index 9e715e51..9e715e51 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/string_multi.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/string_multi.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/strings.cs
index 6794e762..6794e762 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/tcf.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/tcf.cs
index f3ac3664..f3ac3664 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/tcf.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/tcf.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/unsafe.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/unsafe.cs
index 5dc90cb4..5dc90cb4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/unsafe.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/unsafe.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16be.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be.cs
index 13da3090..13da3090 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16be.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16be_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be_no_bom.cs
index 33587b97..33587b97 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16be_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16be_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16le.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le.cs
index 3f16b9d0..3f16b9d0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16le.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16le_no_bom.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le_no_bom.cs
index 4a7f9ccc..4a7f9ccc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/utf16le_no_bom.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/utf16le_no_bom.cs
Binary files differ
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/var-member.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/var-member.cs
index 0f7ffb23..0f7ffb23 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/var-member.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/var-member.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/verbatim_strings.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/verbatim_strings.cs
index 47c3ed4c..47c3ed4c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/verbatim_strings.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/verbatim_strings.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/when.cs b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/when.cs
index 2785b894..2785b894 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cs/when.cs
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/cs/when.cs
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/1438.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/1438.d
index 10a43753..10a43753 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/1438.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/1438.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/HashMap.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/HashMap.d
index 618b3e59..618b3e59 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/HashMap.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/HashMap.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/Lexer.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/Lexer.d
index 004d9d8a..004d9d8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/Lexer.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/Lexer.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/bug-indent.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/bug-indent.d
index 321ab6f1..321ab6f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/bug-indent.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/bug-indent.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/casts.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/casts.d
index 42d54916..42d54916 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/casts.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/casts.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/const.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/const.d
index 778957fd..778957fd 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/const.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/const.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/d_sp_paren.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/d_sp_paren.d
index 2b28a7f1..2b28a7f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/d_sp_paren.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/d_sp_paren.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/delegate.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/delegate.d
index 0115ae00..0115ae00 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/delegate.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/delegate.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/enum.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/enum.d
index 804ef27c..804ef27c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/enum.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/enum.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/extern_.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/extern_.d
index a583b08e..a583b08e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/extern_.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/extern_.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/funcfunc.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/funcfunc.d
index ee717abc..ee717abc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/funcfunc.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/funcfunc.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/imports.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/imports.d
index 758fefb7..758fefb7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/imports.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/imports.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/invariant.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/invariant.d
index 46a8efdc..46a8efdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/invariant.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/invariant.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/numbers.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/numbers.d
index e51bf8ac..e51bf8ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/numbers.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/numbers.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/sort_import.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/sort_import.d
index d929f8e8..d929f8e8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/sort_import.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/sort_import.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/square_indent_tab.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/square_indent_tab.d
index 1dee3a17..1dee3a17 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/square_indent_tab.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/square_indent_tab.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/static_if.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if.d
index 24e6eaba..24e6eaba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/static_if.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/static_if_in_struct.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if_in_struct.d
index be936335..be936335 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/static_if_in_struct.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/static_if_in_struct.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/strings.d
index a62adec3..a62adec3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/d/template.d
new file mode 100644
index 00000000..fe5a162c
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template.d
@@ -0,0 +1,27 @@
+template Foo (T, U)
+{
+class Bar { }
+
+T foo(T t, U u) { }
+
+T abc;
+
+typedef T* FooType;
+typedef Tte** FooType0;
+typedef int* FooType1;
+typedef const char FooType2;
+}
+
+alias Foo!(int, char) f;
+f.Bar b;
+f.foo(1,2);
+f.abc = 3;
+
+ to!string(10.0);
+ TFoo!int.t x;
+
+class Abc (T)
+{
+ T t;
+}
+
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing000.d
index 627ca266..627ca266 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_spacing001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing001.d
index 745e5b36..745e5b36 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_spacing001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_spacing001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_use.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_use.d
index 94cdbf6b..94cdbf6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/template_use.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/template_use.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst01.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst01.d
index 3a3728f2..3a3728f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst01.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst01.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst02.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst02.d
index 0b428d60..0b428d60 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst02.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst02.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst03.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst03.d
index 611f12f9..611f12f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/tst03.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/tst03.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/type_spacing000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/type_spacing000.d
index e11e545b..e11e545b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/type_spacing000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/type_spacing000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces000.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces000.d
index d2f1b642..d2f1b642 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces000.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces000.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces001.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces001.d
index a59ab020..a59ab020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces001.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces001.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces002.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces002.d
index 5e45e999..5e45e999 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/vbraces002.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/vbraces002.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-1.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-1.d
index c9f41d3f..c9f41d3f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-1.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-1.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-2.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-2.d
index bc5a0de4..bc5a0de4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-2.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-2.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-3.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-3.d
index 039f788a..039f788a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile-3.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile-3.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile.d
index c42d1893..c42d1893 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/volatile.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/volatile.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/wysiwyg_strings.d b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/wysiwyg_strings.d
index cfdec32a..cfdec32a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/d/wysiwyg_strings.d
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/d/wysiwyg_strings.d
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/ecma/example-1.es b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/ecma/example-1.es
index 0bc9b775..0bc9b775 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/ecma/example-1.es
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/ecma/example-1.es
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1122.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1122.java
index 5712f9ee..5712f9ee 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1122.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1122.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1124.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1124.java
index dcea4172..dcea4172 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1124.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1124.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1845.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1845.java
index cc7656ba..cc7656ba 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_1845.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_1845.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_670.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_670.java
index 52d64f1e..52d64f1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Issue_670.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Issue_670.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Java8DoubleColon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Java8DoubleColon.java
index ec594909..ec594909 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/Java8DoubleColon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/Java8DoubleColon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation1.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation1.java
index d7417542..d7417542 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation1.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation1.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation2.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation2.java
index 596c2562..596c2562 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation2.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation2.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation3.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation3.java
index 3d84c04c..3d84c04c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/annotation3.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/annotation3.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/assert.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/assert.java
index 8076663b..8076663b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/assert.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/assert.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/cast.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/cast.java
index 8f2d983b..8f2d983b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/cast.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/cast.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/double_brace.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/double_brace.java
index 8ba15c47..8ba15c47 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/double_brace.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/double_brace.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/doxy-javadoc-alignment.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/doxy-javadoc-alignment.java
index 838d765c..838d765c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/doxy-javadoc-alignment.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/doxy-javadoc-alignment.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/foreach.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/foreach.java
index e475dc29..e475dc29 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/foreach.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/foreach.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics.java
index 729013ce..729013ce 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics_return_type.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_return_type.java
index 818ac721..818ac721 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics_return_type.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_return_type.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics_wildcard.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_wildcard.java
index 358e333b..358e333b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/generics_wildcard.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/generics_wildcard.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/i1121.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/i1121.java
index 18567ec3..18567ec3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/i1121.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/i1121.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/issue_672.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/issue_672.java
index 2f632625..2f632625 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/issue_672.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/issue_672.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/leading-tabs-for-java-lambda.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/leading-tabs-for-java-lambda.java
index 19b6df0f..19b6df0f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/leading-tabs-for-java-lambda.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/leading-tabs-for-java-lambda.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/long_cl_cmt.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/long_cl_cmt.java
index 45e5252b..45e5252b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/long_cl_cmt.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/java/nl_before_ignore_after_case.java
new file mode 100644
index 00000000..a84e8847
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/nl_before_ignore_after_case.java
@@ -0,0 +1,18 @@
+void func(void)
+{
+ switch (cond)
+ {
+ case CASE_F:
+ synchronized(thingy)
+ {
+ do_a();
+ do_b();
+ }
+ break;
+ }
+ synchronized(thingy)
+ {
+ do_a();
+ do_b();
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sf567.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sf567.java
index 68a63221..68a63221 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sf567.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sf567.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_after_angle.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_angle.java
index 1e11c4c9..1e11c4c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_after_angle.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_angle.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_after_for_colon.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_for_colon.java
index fecd1833..fecd1833 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_after_for_colon.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_after_for_colon.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_before_byref.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_before_byref.java
index 7927ee89..7927ee89 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_before_byref.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_before_byref.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_this_paren.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_this_paren.java
index 628b327f..628b327f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/sp_this_paren.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/sp_this_paren.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/synchronized.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/synchronized.java
index 369394b8..369394b8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/synchronized.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/synchronized.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/try.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/try.java
index aea6a7f3..aea6a7f3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/try.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/try.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/variable_aligns.java b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/variable_aligns.java
index 76c6131c..76c6131c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/java/variable_aligns.java
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/java/variable_aligns.java
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/1927.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/1927.m
index 9f8d7a7b..9f8d7a7b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/1927.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/1927.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Declarations.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Declarations.h
index e1ad3c6b..e1ad3c6b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Declarations.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Declarations.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Fraction.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.h
index 364b1de8..364b1de8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Fraction.h
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.h
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Fraction.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.m
index 20994f34..20994f34 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Fraction.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Fraction.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_2172.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2172.m
index 02584e91..02584e91 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_2172.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2172.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_2289.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2289.m
index c046cb1e..c046cb1e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_2289.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_2289.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_681.oc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_681.oc
index fb4c6685..fb4c6685 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/Issue_681.oc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/Issue_681.oc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/align-objc-like-xcode.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/align-objc-like-xcode.m
index 6852ac12..6852ac12 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/align-objc-like-xcode.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/align-objc-like-xcode.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/attribute_specifier_seqs.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/attribute_specifier_seqs.mm
index c9b6f24d..c9b6f24d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/attribute_specifier_seqs.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/attribute_specifier_seqs.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/available.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/available.m
index 8216d17f..8216d17f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/available.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/available.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/block_in_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_in_method.m
index e0dfcd76..e0dfcd76 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/block_in_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_in_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/block_literal_protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_literal_protocol.m
index 02d1cfca..02d1cfca 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/block_literal_protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_literal_protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/block_pointer.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_pointer.m
index 9c7ac70b..9c7ac70b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/cpp/block_pointer.cpp
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/block_pointer.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks.m
index 617e0b78..617e0b78 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align.m
index 2ddf75c6..2ddf75c6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks_align2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align2.m
index f4e875c9..f4e875c9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/blocks_align2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/blocks_align2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/box.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/box.m
index 98a3516a..98a3516a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/box.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/box.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/boxed_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/boxed_receiver.m
index 3460b920..3460b920 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/boxed_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/boxed_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1366.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1366.m
index 5e81ed4a..5e81ed4a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1366.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1366.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_167.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_167.m
index e404e2aa..e404e2aa 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_167.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_167.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1674.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1674.m
index 82c20161..82c20161 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1674.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1674.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1683.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1683.m
index 3ee562c0..3ee562c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_1683.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_1683.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_340.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_340.m
index ea9f8201..ea9f8201 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_340.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_340.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_404.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_404.m
index 3ecb87f0..3ecb87f0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_404.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_404.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_497.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_497.m
index a976d43d..a976d43d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_497.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_497.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_841.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_841.m
index dea826d2..dea826d2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_841.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_841.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_125-412.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_125-412.m
index c92d2e66..c92d2e66 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_125-412.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_125-412.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_408.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_408.m
index c8a3a450..c8a3a450 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_408.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_408.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_477.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_477.m
index a1a81749..a1a81749 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/bug_i_477.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/bug_i_477.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/c-cpp-oc-wrapper.c b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/c-cpp-oc-wrapper.c
index 663a4cc8..663a4cc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/c-cpp-oc-wrapper.c
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/c-cpp-oc-wrapper.c
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cast.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cast.m
index daa9cb6d..daa9cb6d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cast.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cast.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type1.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type1.m
index fb9bb4e1..fb9bb4e1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type1.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type1.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type2.m
index 27e31cdc..27e31cdc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type3.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type3.m
index 8d8676c8..8d8676c8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type3.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type3.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type4.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type4.m
index dd4d55fe..dd4d55fe 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/chunk_ends_type4.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/chunk_ends_type4.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cmt_insert.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert.m
index 58a4c894..58a4c894 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cmt_insert.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cmt_insert2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert2.m
index 4a31e975..4a31e975 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/cmt_insert2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/cmt_insert2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/code_placeholder.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/code_placeholder.m
index 6245bfa4..6245bfa4 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/code_placeholder.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/code_placeholder.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/complex_method.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/complex_method.m
index b22c34b6..b22c34b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/complex_method.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/complex_method.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/delete-space-oc.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/delete-space-oc.mm
index 66e24dc8..66e24dc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/delete-space-oc.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/delete-space-oc.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/double-indent-objc-dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double-indent-objc-dict.m
index f94e5105..f94e5105 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/double-indent-objc-dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double-indent-objc-dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/double_angle_space.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double_angle_space.m
index f7164498..f7164498 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/double_angle_space.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/double_angle_space.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/exceptions.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/exceptions.m
index c8d6f6f2..c8d6f6f2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/exceptions.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/exceptions.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/extern-c-attribute.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/extern-c-attribute.m
index fb84ce73..fb84ce73 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/extern-c-attribute.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/extern-c-attribute.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/for.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for.m
index fc159fc6..fc159fc6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/for.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/for2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for2.m
index 535bc50b..535bc50b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/for2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/for2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
index 16f98ce9..16f98ce9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.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
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/func_def.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func_def.mm
index b3655728..b3655728 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/func_def.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/func_def.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh137.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh137.m
index 779e0f2f..779e0f2f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh137.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh137.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh293.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh293.m
index bb4cb52c..bb4cb52c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh293.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh293.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh511.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh511.m
index cee32794..cee32794 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/gh511.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/gh511.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/i1213.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/i1213.m
index f47e5964..f47e5964 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/i1213.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/i1213.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent-inside-ternary-operator.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-inside-ternary-operator.m
index ff979acf..ff979acf 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent-inside-ternary-operator.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-inside-ternary-operator.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent-objc-block.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-objc-block.m
index b882abf5..b882abf5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent-objc-block.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent-objc-block.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_boxed.m
index c7df968f..c7df968f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_boxed.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_oc_inside_msg_sel.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_oc_inside_msg_sel.m
index f20cd048..f20cd048 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_oc_inside_msg_sel.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_oc_inside_msg_sel.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_single_newline.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_single_newline.m
index 27e79e8a..27e79e8a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/indent_single_newline.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/indent_single_newline.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2629.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2629.m
index e690ea58..e690ea58 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2629.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2629.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2631.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2631.m
index 7989b020..7989b020 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2631.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2631.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2675.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2675.m
index 1d4cafe2..1d4cafe2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2675.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2675.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2722.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2722.m
index 65dcb131..65dcb131 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2722.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2722.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2724.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2724.m
index 51c90671..51c90671 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2724.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2724.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2727.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2727.m
index f15542f1..f15542f1 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_2727.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_2727.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_3031.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_3031.mm
index 028d55d9..028d55d9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/issue_3031.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/issue_3031.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/kw.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/kw.m
index a4d25624..a4d25624 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/kw.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/kw.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/literals.mm b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/literals.mm
index 98522f3d..98522f3d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/literals.mm
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/literals.mm
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/macro-close-brace.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/macro-close-brace.m
index 0eb3fa81..0eb3fa81 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/macro-close-brace.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/macro-close-brace.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/main.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/main.m
index f2fdf16a..f2fdf16a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/main.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/main.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/method_ends_semicolon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/method_ends_semicolon.m
index e3c5637e..e3c5637e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/method_ends_semicolon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/method_ends_semicolon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/misc.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/misc.m
index 5038a14c..5038a14c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/misc.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/misc.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/more_blocks.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks.m
index eab01db0..eab01db0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/more_blocks.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/more_blocks_2.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks_2.m
index 55636ae5..55636ae5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/more_blocks_2.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/more_blocks_2.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/msg.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg.m
index cca460f9..cca460f9 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/msg.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/msg_align.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg_align.m
index 3b61a051..3b61a051 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/msg_align.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/msg_align.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/negative_value.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/negative_value.m
index 9aa4dc80..9aa4dc80 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/negative_value.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/negative_value.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/nelem.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nelem.m
index d42ce3b6..d42ce3b6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/nelem.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nelem.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m
index ea132bab..ea132bab 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/nl_func_call_args_multi_line_ignore_closures.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/oc/ns_enum-i.m
new file mode 100644
index 00000000..e5caad06
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum-i.m
@@ -0,0 +1,2 @@
+typedef NS_ENUM (NSUInteger, MyEnum) {MyValue1, MyValue2, MyValue3};
+typedef NS_OPTIONS(NSUInteger, MyBitmask) {MyBit1, MyBit2, MyBit3};
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/ns_enum.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum.m
index cdd729d8..cdd729d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/ns_enum.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ns_enum.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc-split.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc-split.m
index 3b656bfc..3b656bfc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc-split.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc-split.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc_cond_colon.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_cond_colon.m
index 50cf56b5..50cf56b5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc_cond_colon.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_cond_colon.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc_msg_in_pp.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_msg_in_pp.m
index 8496973b..8496973b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/oc_msg_in_pp.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/oc_msg_in_pp.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/pp_bool.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/pp_bool.m
index b1bf896c..b1bf896c 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/pp_bool.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/pp_bool.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/properties.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/properties.m
index 4de60057..4de60057 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/properties.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/properties.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/protocol.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/protocol.m
index 31a8b86f..31a8b86f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/protocol.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/protocol.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/react_native.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/react_native.m
index eadf314f..eadf314f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/react_native.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/react_native.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/real_world_file.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/real_world_file.m
index 26ec3cb2..26ec3cb2 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/real_world_file.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/real_world_file.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/receiver.m
index 274d4130..274d4130 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/return_type.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/return_type.m
index 62a5c246..62a5c246 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/return_type.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/return_type.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/selector.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/selector.m
index a5a89475..a5a89475 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/selector.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/selector.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sort_import.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import.m
index 1a227b7e..1a227b7e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sort_import.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sort_import_group.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import_group.m
index 9e14f0fc..9e14f0fc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sort_import_group.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sort_import_group.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_after_angle.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_angle.m
index 259d2011..259d2011 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_after_angle.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_angle.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_after_oc_msg_receiver.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_oc_msg_receiver.m
index aad36be5..aad36be5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_after_oc_msg_receiver.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_after_oc_msg_receiver.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_before_oc_proto_list.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_before_oc_proto_list.m
index c0d96bdb..c0d96bdb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_before_oc_proto_list.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/oc/sp_cond_ternary_short.m
new file mode 100644
index 00000000..6c1ce050
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_cond_ternary_short.m
@@ -0,0 +1 @@
+NSString *str = (otherString ?: @"this is the placeholder");
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_inside_braces_oc_dict.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_inside_braces_oc_dict.m
index 272a2f28..272a2f28 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_inside_braces_oc_dict.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_inside_braces_oc_dict.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_boxed.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_boxed.m
index 0c6948c0..0c6948c0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_boxed.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/oc/sp_oc_catch.m
new file mode 100644
index 00000000..fe04844d
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_catch.m
@@ -0,0 +1,18 @@
+
+- (void) foo:(NSString*) inString
+{
+ @try {
+ }@catch(NSException* const inException)
+ {
+ }
+}
+
+- (void) bar:(NSString*) inString
+{
+ @try {
+ }
+ @catch (NSException* const inException){
+ }
+ @finally {
+ }
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_classname_paren-r.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_classname_paren-r.m
index 1076bbb3..1076bbb3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_classname_paren-r.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_classname_paren-r.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_synchronized.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_synchronized.m
index e4de748b..e4de748b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/sp_oc_synchronized.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/sp_oc_synchronized.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/string.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/string.m
index f3fca80f..f3fca80f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/string.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/string.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/ternary.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ternary.m
index 3fdddd93..3fdddd93 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/ternary.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/ternary.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/typeof.m b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/typeof.m
index d5183a1d..d5183a1d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/oc/typeof.m
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/oc/typeof.m
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/Issue_2586.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2586.pawn
index 89558691..89558691 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/Issue_2586.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/pawn/Issue_2665.pawn
new file mode 100644
index 00000000..ddcb045a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/Issue_2665.pawn
@@ -0,0 +1,3 @@
+static Entrypoint()
+{
+}
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/comment.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/comment.p
index 785521ac..785521ac 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/comment.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/comment.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/crusty_ex-1.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/crusty_ex-1.sma
index 35ee0515..35ee0515 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/crusty_ex-1.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/crusty_ex-1.sma
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/enum.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/enum.pawn
index 588efc35..588efc35 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/enum.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/enum.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/functions.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/functions.pawn
index cdda5e05..cdda5e05 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/functions.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/functions.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/gh419.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/gh419.pawn
index 9db7b08f..9db7b08f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/gh419.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/gh419.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/preproc.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/preproc.pawn
index e15d360e..e15d360e 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/preproc.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/preproc.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/rpn_calc.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/rpn_calc.pawn
index 2965d9c7..2965d9c7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/rpn_calc.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/rpn_calc.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/str-escape.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/str-escape.p
index 5600eae3..5600eae3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/str-escape.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/str-escape.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/switch-vsemi.sma b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/switch-vsemi.sma
index c2efacfb..c2efacfb 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/switch-vsemi.sma
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/input/pawn/tags.pawn
new file mode 100644
index 00000000..56bdd2b9
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/tags.pawn
@@ -0,0 +1,63 @@
+
+enum token
+ {
+ t_type,
+ Rational: t_value,
+ t_word[20],
+ }
+
+
+new bool:flag = true /* "flag" can only hold "true" or "false" */
+const error:success = 0
+const error:fatal= 1
+const error:nonfatal = 2
+error:errno = fatal
+
+native printf(const format[], {Float, _}: ...);
+
+ new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
+ 1.00 : (float( p_resists[id][RESISTIDX_FIRE] ) / float( RESIST_MAX_VALUE ))
+
+ xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
+ floatround( float( j / 20 ) * XP_PER_LEVEL_LT );
+
+
+main() {
+ new Float:xpos
+ new Float:ypos
+
+ new apple:elstar /* variable "elstar" with tag "apple" */
+ new orange:valencia /* variable "valencia" with tag "orange" */
+ new x /* untagged variable "x" */
+ elstar = valencia /* tag mismatch */
+ elstar = x /* tag mismatch */
+ x = valencia /* ok */
+
+ new Float:chance_to_avoid = (p_resists[id][RESISTIDX_FIRE] >= RESIST_MAX_VALUE) ?
+ 1.00 : (float( p_resists[id][RESISTIDX_FIRE] ) / float( RESIST_MAX_VALUE ))
+
+ xplevel_lev[j] = XP_PER_LEVEL_BASE_LT + ( (j - 10) * XP_PER_LEVEL_LT) +
+ floatround( float( j / 20 ) * XP_PER_LEVEL_LT );
+
+ if (apple:valencia < elstar)
+ valencia = orange:elstar
+
+some_label: // target for a goto
+ #pragma rational Float
+
+ new Float:limit = -5.0
+ new Float:value = -1.0
+ if (value < limit)
+ printf("Value %f below limit %f\n", _:value, _:limit)
+ else
+ printf("Value above limit\n")
+ goto some_label
+}
+
+foo()
+ if (ape)
+ dofunc(1)
+ else if (monkey)
+ dofunc(2)
+ else
+ dofunc(3)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/test1.pawn b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/test1.pawn
index ecefe6e0..ecefe6e0 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/test1.pawn
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/test1.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/traffic.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/traffic.p
index f5cf0f7f..f5cf0f7f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/traffic.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/traffic.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/unbraced.p b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/unbraced.p
index 10c41663..10c41663 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/pawn/unbraced.p
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/pawn/unbraced.p
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/issue_527.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/issue_527.sqc
index 5514ff31..5514ff31 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/issue_527.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/issue_527.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/mysql.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/mysql.sqc
index 197c2847..197c2847 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/mysql.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/mysql.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/sta-select.sqc b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/sta-select.sqc
index 863edf5b..863edf5b 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/sql/sta-select.sqc
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/sql/sta-select.sqc
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/Issue_2090.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2090.vala
index 22698792..22698792 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/Issue_2090.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2090.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/Issue_2270.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2270.vala
index 7bb897d8..7bb897d8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/Issue_2270.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/Issue_2270.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/advanced.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/advanced.vala
index 2b85c031..2b85c031 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/advanced.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/advanced.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/gh287.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/gh287.vala
index fcb6fca6..fcb6fca6 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/gh287.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/gh287.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/list.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/list.vala
index e9b48acc..e9b48acc 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/list.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/list.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/preproc.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/preproc.vala
index 3ab2ccc8..3ab2ccc8 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/preproc.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/preproc.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/verbatim_str.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str.vala
index 11f19c01..11f19c01 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/verbatim_str.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str.vala
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/verbatim_str2.vala b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/input/vala/verbatim_str2.vala
index 9d8798b7..9d8798b7 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/input/vala/verbatim_str2.vala
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/java.test
new file mode 100644
index 00000000..9085dc14
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/java.test
@@ -0,0 +1,44 @@
+#
+# Test cases specifically for the Java language.
+#
+# Range: 80000 - 89999
+# test.name config.file input.file
+
+80000 java/ben_099.cfg java/assert.java
+80010 java/annotation.cfg java/annotation1.java
+80011 common/empty.cfg java/annotation2.java
+80012 java/nl_after_annotation-f.cfg java/annotation2.java
+80013 java/nl_between_annotation-f.cfg java/annotation2.java
+80014 java/annotation.cfg java/annotation2.java
+80020 java/java_foreach.cfg java/foreach.java
+80030 common/indent_var_def.cfg java/variable_aligns.java
+80040 common/empty.cfg java/try.java
+80050 java/jdbi-r.cfg java/double_brace.java
+80051 java/jdbi-f.cfg java/double_brace.java
+80060 java/java_synchronized_1.cfg java/synchronized.java
+80061 java/java_synchronized_2.cfg java/synchronized.java
+80062 java/sp_this_paren.cfg java/sp_this_paren.java
+80063 common/empty.cfg java/i1121.java
+80064 java/mod_add_long_class_closebrace_comment-1.cfg java/long_cl_cmt.java
+80065 common/empty.cfg java/Java8DoubleColon.java
+80066 java/sp_after_for_colon.cfg java/sp_after_for_colon.java
+80067 java/doxy-javadoc-alignment.cfg java/doxy-javadoc-alignment.java
+80068 common/nl_before_ignore_after_case.cfg java/nl_before_ignore_after_case.java
+
+80100 common/align_same_func_call_params-t.cfg java/sf567.java
+
+80200 common/sp_before_byref-r.cfg java/sp_before_byref.java
+80201 java/template_angles.cfg java/generics.java
+80202 common/aet.cfg java/generics_wildcard.java
+80203 common/aet.cfg java/generics_return_type.java
+80204 common/aet.cfg java/cast.java
+80205 common/aet.cfg java/sp_after_angle.java
+80206 common/aet.cfg java/annotation3.java
+
+80300 java/Issue_670.cfg java/Issue_670.java
+80301 common/issue_672.cfg java/issue_672.java
+80302 java/Issue_1845.cfg java/Issue_1845.java
+80303 java/Issue_1122.cfg java/Issue_1122.java
+80304 java/Issue_1124-f.cfg java/Issue_1124.java
+80305 java/Issue_1124-r.cfg java/Issue_1124.java
+80306 java/leading-tabs-for-java-lambda.cfg java/leading-tabs-for-java-lambda.java
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
new file mode 100644
index 00000000..f9d84477
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/objective-c.test
@@ -0,0 +1,187 @@
+# 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/pawn.test b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/pawn.test
new file mode 100644
index 00000000..7946465e
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/pawn.test
@@ -0,0 +1,25 @@
+#
+# Test cases specifically for the Pawn language.
+#
+# Range: 60000 - 69999
+# test.name config.file input.file
+
+60000 pawn/pawn.cfg pawn/functions.pawn
+60001 pawn/pawn.cfg pawn/comment.p
+60002 pawn/pawn.cfg pawn/traffic.p
+60003 pawn/pawn.cfg pawn/tags.pawn
+60004 pawn/pawn.cfg pawn/enum.pawn
+60005 pawn/pawn.cfg pawn/unbraced.p
+
+60010 pawn/pawn-escape.cfg pawn/str-escape.p
+
+60020 pawn/pawn-escape.cfg pawn/switch-vsemi.sma
+
+60030 pawn/amxmodx.cfg pawn/crusty_ex-1.sma
+
+60040 pawn/amxmodx.cfg pawn/preproc.pawn
+
+60050 pawn/mod_full_brace_function-f.cfg pawn/gh419.pawn
+
+60100 pawn/Issue_2586.cfg pawn/Issue_2586.pawn
+60101 pawn/Issue_2665.cfg pawn/Issue_2665.pawn
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_format_tests.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_format_tests.py
index 671188c2..671188c2 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_format_tests.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_format_tests.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_sources_tests.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_sources_tests.py
index ebbc6623..ebbc6623 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_sources_tests.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_sources_tests.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_test.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/run_test.py
index 7b5a9d57..7b5a9d57 100755
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/run_test.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/staging.test
new file mode 100644
index 00000000..e71faddf
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/staging.test
@@ -0,0 +1,8 @@
+#
+# This file contains tests that are failing and need resolution
+#
+# Range: reserve ID from dedicated language range
+# test.name config.file input.file lang
+
+19000~ staging/UNI-58354.cfg cs/UNI-58354.cs CS
+39000~ staging/UNI-64325.cfg cpp/UNI-64325.cpp CPP
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/__init__.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/__init__.py
index bf83b667..bf83b667 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/__init__.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/__init__.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/ansicolor.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/ansicolor.py
index 44d6dbd5..44d6dbd5 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/ansicolor.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/ansicolor.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/config.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/config.py
index 4370816d..4370816d 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/config.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/config.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/failure.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/failure.py
index 0972930f..0972930f 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/failure.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/failure.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/selector.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/selector.py
index 93646257..93646257 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/selector.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.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.74.0/tests/test_uncrustify/test.py
new file mode 100644
index 00000000..f621f40f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/test.py
@@ -0,0 +1,296 @@
+# Class encapsulating a unit test.
+#
+# * @author Ben Gardner October 2009
+# * @author Guy Maurel October 2015
+# * @author Matthew Woehlke June 2018
+#
+
+import filecmp
+import os
+import re
+import subprocess
+import sys
+import errno
+
+from .ansicolor import printc
+from .config import (config, test_dir, FAIL_ATTRS, PASS_ATTRS,
+ MISMATCH_ATTRS, UNSTABLE_ATTRS)
+from .failure import (ExecutionFailure, MismatchFailure, MissingFailure,
+ TestDeclarationParseError, UnexpectedlyPassingFailure,
+ UnstableFailure)
+
+
+# =============================================================================
+class SourceTest(object):
+ # -------------------------------------------------------------------------
+ def __init__(self):
+ self.test_result_dir = 'results'
+
+ self.diff_text = 'MISMATCH'
+ self.diff_attrs = MISMATCH_ATTRS
+ self.diff_exception = MismatchFailure
+
+ # -------------------------------------------------------------------------
+ def _check_attr(self, name):
+ if not hasattr(self, name) or getattr(self, name) is None:
+ raise AttributeError(
+ 'Test is missing required attribute {!r}'.format(name))
+
+ # -------------------------------------------------------------------------
+ def _make_abs(self, name, base):
+ path = getattr(self, name)
+ if not os.path.isabs(path):
+ setattr(self, name, os.path.join(test_dir, base, path))
+
+ # -------------------------------------------------------------------------
+ def _diff(self, expected, actual):
+ sys.stdout.flush()
+ cmd = [config.git_exe, 'diff', '--no-index', expected, actual]
+ subprocess.call(cmd)
+
+ # -------------------------------------------------------------------------
+ def build(self, test_input, test_lang, test_config, test_expected):
+ self.test_name = os.path.basename(test_input)
+ self.test_lang = test_lang
+ self.test_input = test_input
+ self.test_config = test_config
+ self.test_expected = test_expected
+ self.test_xfail = False
+
+ # -------------------------------------------------------------------------
+ def _check(self):
+ self._check_attr('test_name')
+ self._check_attr('test_lang')
+ self._check_attr('test_input')
+ self._check_attr('test_config')
+ self._check_attr('test_expected')
+ self._check_attr('test_xfail')
+
+ # -------------------------------------------------------------------------
+ def run(self, args):
+ self._check()
+
+ _expected = self.test_expected
+ _result = os.path.join(args.result_dir, self.test_result_dir,
+ os.path.basename(os.path.dirname(_expected)),
+ os.path.basename(_expected))
+
+ if args.verbose:
+ print(self.test_name)
+ print(' Language : {}'.format(self.test_lang))
+ print(' Input : {}'.format(self.test_input))
+ print(' Config : {}'.format(self.test_config))
+ print(' Expected : {}'.format(_expected))
+ print(' Result : {}'.format(_result))
+ print(' XFail : {}'.format(self.test_xfail))
+
+ if not os.path.exists(os.path.dirname(_result)):
+ try:
+ os.makedirs(os.path.dirname(_result))
+ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
+
+ cmd = [
+ config.uncrustify_exe,
+ '-q',
+ '-l', self.test_lang,
+ '-c', self.test_config,
+ '-f', self.test_input,
+ '-o', _result
+ ]
+ if args.debug:
+ cmd += [
+ '-LA',
+ '-p', _result + '.unc'
+ ]
+
+ else:
+ cmd += ['-LA']
+
+ if args.show_commands:
+ printc('RUN: ', repr(cmd))
+
+ try:
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as exc:
+ output = exc.output
+ if not self.test_xfail:
+ print(output.rstrip())
+ msg = '{} (Uncrustify error code {})'
+ msg = msg.format(self.test_name, exc.returncode)
+ printc('FAILED: ', msg, **FAIL_ATTRS)
+ raise ExecutionFailure(exc)
+ elif args.xdiff:
+ print(output.rstrip())
+ finally:
+ if args.debug:
+ with open(_result + '.log', 'wt') as f:
+ f.write(output)
+
+ try:
+ has_diff = not filecmp.cmp(_expected, _result)
+ if has_diff and not self.test_xfail:
+ if args.diff:
+ self._diff(_expected, _result)
+ printc('{}: '.format(self.diff_text),
+ self.test_name, **self.diff_attrs)
+ raise self.diff_exception(_expected, _result)
+ if not has_diff and self.test_xfail:
+ raise UnexpectedlyPassingFailure(_expected, _result)
+ if has_diff and self.test_xfail:
+ if args.xdiff:
+ self._diff(_expected, _result)
+ if not args.show_all:
+ printc('XFAILED: ', self.test_name, **PASS_ATTRS)
+ except OSError as exc:
+ printc('MISSING: ', self.test_name, **self.diff_attrs)
+ raise MissingFailure(exc, _expected)
+
+
+# =============================================================================
+class FormatTest(SourceTest):
+ pass_config = ['test_config', 'test_rerun_config']
+ pass_input = ['test_input', 'test_expected']
+ pass_expected = ['test_expected', 'test_rerun_expected']
+
+ re_test_declaration = re.compile(r'^(?P<num>\d+)(?P<mark>[~!]*)\s+'
+ r'(?P<config>\S+)\s+(?P<input>\S+)'
+ r'(?:\s+(?P<lang>\S+))?$')
+
+ # -------------------------------------------------------------------------
+ def _build_pass(self, i):
+ p = SourceTest()
+
+ p.test_name = self.test_name
+ p.test_lang = self.test_lang
+ p.test_config = getattr(self, self.pass_config[i])
+ p.test_input = getattr(self, self.pass_input[i])
+ p.test_expected = getattr(self, self.pass_expected[i])
+ p.test_xfail = self.test_xfail
+ if i == 1 and not os.path.exists(p.test_expected):
+ p.test_expected = getattr(self, self.pass_expected[0])
+
+ return p
+
+ # -------------------------------------------------------------------------
+ def _build_passes(self):
+ self._check()
+ self._check_attr('test_rerun_config')
+ self._check_attr('test_rerun_expected')
+
+ self._make_abs('test_input', 'input')
+ self._make_abs('test_config', 'config')
+ self._make_abs('test_expected', 'expected')
+ self._make_abs('test_rerun_config', 'config')
+ self._make_abs('test_rerun_expected', 'expected')
+
+ self.test_passes = [
+ self._build_pass(0),
+ self._build_pass(1)]
+
+ self.test_passes[1].test_name = self.test_name + ' (re-run)'
+ self.test_passes[1].test_result_dir = 'results_2'
+ self.test_passes[1].diff_text = 'UNSTABLE'
+ self.test_passes[1].diff_attrs = UNSTABLE_ATTRS
+ self.test_passes[1].diff_exception = UnstableFailure
+
+ # -------------------------------------------------------------------------
+ def build_from_declaration(self, decl, group, line_number):
+ match = self.re_test_declaration.match(decl)
+ if not match:
+ raise TestDeclarationParseError(group, line_number)
+
+ num = match.group('num')
+ is_rerun = ('!' in match.group('mark'))
+ is_xfail = ('~' in match.group('mark'))
+
+ self.test_xfail = is_xfail
+
+ self.test_config = match.group('config')
+ self.test_input = match.group('input')
+
+ test_dir = os.path.dirname(self.test_input)
+ test_filename = os.path.basename(self.test_input)
+
+ if match.group('lang'):
+ self.test_lang = match.group('lang')
+ else:
+ self.test_lang = test_dir
+
+ self.test_expected = os.path.join(
+ test_dir, '{}-{}'.format(num, test_filename))
+
+ def rerun_file(name):
+ parts = name.split('.')
+ return '.'.join(parts[:-1] + ['rerun'] + parts[-1:])
+
+ if is_rerun:
+ self.test_rerun_config = rerun_file(self.test_config)
+ self.test_rerun_expected = rerun_file(self.test_expected)
+ else:
+ self.test_rerun_config = self.test_config
+ self.test_rerun_expected = self.test_expected
+
+ self.test_name = '{}:{}'.format(group, num)
+
+ self._build_passes()
+
+ # -------------------------------------------------------------------------
+ def build_from_args(self, args):
+ self.test_name = args.name
+ self.test_lang = args.lang
+ self.test_input = args.input
+ self.test_config = args.config
+ self.test_expected = args.expected
+ self.test_rerun_config = args.rerun_config or args.config
+ self.test_rerun_expected = args.rerun_expected or args.expected
+ self.test_xfail = args.xfail
+
+ self._build_passes()
+
+ # -------------------------------------------------------------------------
+ def print_as_ctest(self, out_file=sys.stdout):
+ self._check()
+
+ def to_cmake_path(obj):
+ if type(obj) is dict:
+ return {k: to_cmake_path(v) for k, v in obj.items()}
+ if type(obj) is str:
+ return obj.replace(os.sep, '/')
+ return obj
+
+ runner = os.path.join(test_dir, 'run_test.py')
+
+ out_file.write(
+ ('add_test({test_name}\n' +
+ ' "{python_exe}" -S "{test_runner}" "{test_name}"\n' +
+ ' --executable "{uncrustify_exe}"\n' +
+ ' --lang "{test_lang}"\n' +
+ ' --input "{test_input}"\n' +
+ ' --config "{test_config}"\n' +
+ ' --expected "{test_expected}"\n' +
+ ' --rerun-config "{test_rerun_config}"\n' +
+ ' --rerun-expected "{test_rerun_expected}"\n' +
+ ' -d --git "{git_exe}"\n' +
+ '{xfail}' +
+ ')\n').format(
+ test_runner=to_cmake_path(runner),
+ python_exe=to_cmake_path(config.python_exe),
+ uncrustify_exe=to_cmake_path(config.uncrustify_exe),
+ git_exe=to_cmake_path(config.git_exe),
+ xfail=(' --xfail\n' if self.test_xfail else ''),
+ **to_cmake_path(self.__dict__)))
+ out_file.write(
+ ('set_tests_properties({}\n' +
+ ' PROPERTIES LABELS "{}"\n)\n').format(
+ self.test_name, self.test_name.split(':')[0]))
+ #out_file.write(
+ # ('set_tests_properties({}\n' +
+ # ' PROPERTIES DEPENDS "sources_format"\n)\n').format(
+ # self.test_name))
+
+ # -------------------------------------------------------------------------
+ def run(self, args):
+ for p in self.test_passes:
+ p.run(args)
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/utilities.py b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/utilities.py
index 2d930222..2d930222 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/test_uncrustify/utilities.py
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/test_uncrustify/utilities.py
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/tests.vpj b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/tests.vpj
index a5ed4fd3..a5ed4fd3 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/tests/tests.vpj
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/tests.vpj
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
new file mode 100644
index 00000000..56fbf00f
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/vala.test
@@ -0,0 +1,15 @@
+#
+# 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.73.0/uncrustify.vpj b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpj
index 97b2b50a..97b2b50a 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/uncrustify.vpj
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpj
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/uncrustify.vpw b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpw
index 245d8153..245d8153 100644
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/uncrustify.vpw
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/uncrustify.vpw
diff --git a/debian/uncrustify-trinity/uncrustify-trinity_0.73.0.orig.tar.gz b/debian/uncrustify-trinity/uncrustify-trinity_0.73.0.orig.tar.gz
deleted file mode 100644
index 78ba6a62..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity_0.73.0.orig.tar.gz
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000..defc012a
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity_0.74.0.orig.tar.gz
Binary files differ