Change highlights in uncrustify-0.81.0 (May 2025)
-------------------------------------------------------------------------------
   61fe771bf1facb01f291f24564bba1af96636270
     Added   : nl_bool_expr_hierarchical            Nov 18 2024
   344657f2c0b7e4db246787c377e16965ade10679
     Added   : indent_bool_nested_all               Nov 18 2024

Change highlights in uncrustify-0.80.1 (November 2024)
-------------------------------------------------------------------------------
   d0ad61170436df7afab2b8041b49837f06f087ec
     Removed : sp_pragma_open_parenthesis           Nov 16 2024
     Removed : sp_inside_gparen                     Nov 16 2024

Change highlights in uncrustify-0.80.0 (November 2024)
-------------------------------------------------------------------------------
   273a37afbf5500d19011d4a392339160fffbfb11
     Added   : sp_inside_gparen                     Jul  5 2024
     Added   : sp_pragma_open_parenthesis           Jul  5 2024
   6337585b03cdfdfa1f9b8ba33d8e31048a5c2eee
     Added   : sp_struct_type                       Sep 30 2024
   fc325e3a2ff8eeff5011f9bb2905b30ccc0a4772
     Added   : sp_emb_cmt_priority                  Oct 11 2024

Change highlights in uncrustify-0.79.0 (May 2024)
-------------------------------------------------------------------------------
   881cd25e1f0854481b002a58a7dff68f146d7ee3
     Added   : sp_cpp_before_struct_binding_after_byref    Dec  8 2023
   1f48216e0d87ba84bf10268c46943c47ce473512
     Added   : sp_string_string                            Dec 19 2023
   364f8d77120001783c2e792821bcb4052748631d
     Added   : pp_unbalanced_if_action                     Feb 10 2024
     Removed : pp_warn_unbalanced_if                       Feb 10 2024
   9a821fe71d307613916805d4c3fee1c9ee01d96f
     Removed : sp_balance_nested_parens                    Apr 11 2024
   71e9c30da59606a2ce32c561d47d6fafa49d2d7f
     Added   : debug_print_version                         May  3 2024
   a50dd5480fe646059c9ea2b84243b674f9fbb575
     Added   : nl_oc_msg_args_finish_multi_line            May  7 2024

Change highlights in uncrustify-0.78.1 (November 2023)
-------------------------------------------------------------------------------
   24ca784086c31ce6aa0817ac9c99539a5ac52d00
     Improve line splitting logic to avoid awkward splits  Nov 19 2023

Change highlights in uncrustify-0.78.0 (November 2023)
-------------------------------------------------------------------------------
   50b364e02d4e6ebe5fa99d2d1de642f1a3fb6570
     Added   : align_nl_cont_spaces                 May 11 2023
   7c53d3cc66d939dc5b0de25868e947508e2353d5
     Added   : sp_after_bit_colon                   Jun 28 2023
     Added   : sp_before_bit_colon                  Jun 28 2023
   b4af21a59630315f79ec28bc5449c31f48194111
     Added   : sp_between_ptr_ref                   Jul 14 2023
   84780fef16da0552e7f44785d63d23a2b0e6a8b4
     Added   : nl_min_after_func_body               Aug  3 2023
   d8931537292a5cb897cfd561adf581d27087bfe4
     Added   : sp_before_keyword_ptr_star           Aug 10 2023
   8ffe999d3382c6f516372627bd529917bc6611ae
     Added   : sp_before_global_scope_ptr_star      Aug 10 2023
     Added   : sp_before_scope_ptr_star             Aug 10 2023
   f493e4d9e003648753e6574ba2cd61f5c0bd1352
     Added   : sp_before_operator_ptr_star          Aug 10 2023
     Added   : sp_before_qualifier_ptr_star         Aug 10 2023
     Removed : sp_before_keyword_ptr_star           Aug 10 2023
   adbb82b0f6e551ef976e64a1351ca0eb05acf932
     Added   : debug_use_the_exit_function_pop      Aug 15 2023
   2e0e019dc28cac0844b5cff81d05859ee1a02394
     Added   : nl_max_after_func_body               Aug 28 2023
   cb44fe733a2c1e0391cfa5afdac77f7e66d688e1
     Added   : sp_cpp_lambda_argument_list_empty    Sep 12 2023
   e058aafd4ee5e407e250a6b921886d2c00d6a622
     Added   : align_func_proto_span_ignore_cont_lines Oct 21 2023

Change highlights in uncrustify-0.77.0 (May 2023)
-------------------------------------------------------------------------------
   ea6c54eefe2f3272a4867d30920408c327167199
     Added   : sp_cmt_cpp_pvs                       Jan 28 2023
   74cf6ca40a0ce1b0d2499a92128ccde34bb48428
     Added   : sp_inside_rparen                     Feb 15 2023
     Added   : sp_func_call_user_inside_rparen      Feb 15 2023
     Added   : sp_inside_rparens                    Feb 15 2023
   70fac8d68b8a697132a21c5c59a09fd91e0a0486
     Added   : sp_cmt_cpp_lint                      Mar 18 2023
   73d9ab72ce736e9689f56406302f6d62ddfc3835
     Added   : sp_qualifier_ptr_star_trailing       Apr 13 2023
     Added   : sp_qualifier_unnamed_ptr_star        Apr 13 2023
     Added   : sp_qualifier_ptr_star_func           Apr 13 2023
   8b639a0b31637204da3d17dc29cc659def6f4cf7
     Added   : mod_add_force_c_closebrace_comment   Apr 19 2023

Change highlights in uncrustify-0.76.0 (November 2022)
-------------------------------------------------------------------------------
   1aea3d1fcb55dc2ca40dfe2b1d548685a415ef3a
     Added   : nl_collapse_empty_body_functions     Apr 29 2022
   c7f5df072f56bb0e3a9b897e16b8e5fc283f3bcf
     Added   : set_numbering_for_html_output        May 29 2022
   92e4a36a5a78d9af523008aeb71e7acfe199269a
     Added   : mod_infinite_loop                    Jun 22 2022
   6e807bcec01382b164562c8ae5939d2b5ee76877
     Added   : mod_short_int                        Jun 28 2022
     Added   : mod_long_int                         Jun 28 2022
     Added   : mod_unsigned_int                     Jun 28 2022
     Added   : mod_signed_int                       Jun 28 2022
   baad5db83faf5fb771cea8898760ad582227ccda
     Added   : mod_int_prefer_int_on_left           Jul  6 2022
     Added   : mod_int_long                         Jul  6 2022
     Added   : mod_int_signed                       Jul  6 2022
     Added   : mod_int_unsigned                     Jul  6 2022
     Added   : mod_int_short                        Jul  6 2022
   e6a5458d32ca26c8b7d24f514115ebc36fce2348
     Added   : nl_oc_msg_args_min_params            Jul  9 2022
   862369a315763ce1286732da3713414cd2533227
     Added   : pp_space_after                       Jul 14 2022
     Added   : pp_space_before                      Jul 14 2022
     Removed : pp_space                             Jul 14 2022
   be0d1664f901d1cbfa7bf7697a883adf4b709444
     Added   : nl_throw_expr                        Jul 19 2022
     Added   : mod_paren_on_throw                   Jul 19 2022
   9e65feefa2d66c5d08049e53468cae682f66800d
     Added   : debug_sort_the_tracks                Aug  2 2022
   b58f1298a3ddcd256ecb0688f6b18ca7c623f594
     Removed : pp_space_before                      Aug  6 2022
   a31e5c100de768b4fec45a3e1c2d1e008824b2c6
     Added   : nl_var_def_blk_end_func_top          Aug 11 2022
     Removed : nl_func_var_def_blk                  Aug 11 2022
   56e2159b29c372ebd1e240d427c842b5bb0b2147
     Added   : pp_indent_with_tabs                  Sep  6 2022
   35075d50967014dd7127640d2505bca5dc21dfe5
     Added   : pp_multiline_define_body_indent      Sep 15 2022
   5b88110f5bb685a9b298b247207e32c305366d18
     Added   : nl_oc_msg_args_max_code_width        Sep 20 2022
   0c8e5e827d3b5a007247ef3d5ed937cf18378680
     Added   : debug_decode_the_flags               Oct  9 2022

Change highlights in uncrustify-0.75.0 (May 2022)
-------------------------------------------------------------------------------
  52131d9fa22fd0c655ae2510563ff85306d4bd27
    Added   : mod_move_case_return                 Nov 25 2021
  d0008e933daca163ef8f7258f526e75fb8b5b160
    Added   : sp_ptr_star_func_type                Dec  8 2021
  a17751ae534cb7d1a8b505a111d7b8b50c9842d4
    Added   : pp_indent_at_level0                  Dec 14 2021
  498c1b3a6c96c9dd8ec13a4c0f616acdb7a03cc5
    Added   : align_braced_init_list_thresh        Dec 16 2021
    Added   : align_braced_init_list_span          Dec 16 2021
  8e811b9a57bc43d280aa592d8838cff93227968e
    Added   : align_assign_on_multi_var_defs       Dec 18 2021
  75d3c536789ef23d2d8568d891a4e3ba73aa7045
    Added   : sp_byref_paren                       Dec 24 2021
  d8507bb212aa317dce0f51227b8fd862354e03c2
    Added   : sp_not_not                           Dec 28 2021
  d9e2ae9aad5481f9da818909893e2f55d51ba392
    Added   : indent_ignore_comma_paren            Jan  4 2022
    Added   : indent_ignore_comma_brace            Jan  4 2022
  8eff5202a58732e17f063af8360ff3e2691713aa
    Added   : indent_ignore_bool_paren             Jan 13 2022
  2c02f5c8285882ddf756992d842db12d0f98188a
    Added   : indent_ignore_arith                  Jan 18 2022
  0664cacee7689cf838425e83f38fb84f5e71bc63
    Added   : mod_full_paren_return_bool           Jan 21 2022
    Added   : mod_full_paren_assign_bool           Jan 21 2022
  d593f257e88161a3ed1cff15b354c85e3da68992
    Added   : sp_type_colon                        Jan 25 2022
  026162b8da51660126863b42d00245e21a47d7c0
    Removed : indent_ignore_comma_paren            Jan 28 2022
    Removed : indent_ignore_bool_paren             Jan 28 2022
    Removed : indent_ignore_comma_brace            Jan 28 2022
  6cb50031c5e2e3681d69c3dafdbb865a5b6b6a2c
    Added   : indent_ignore_semicolon              Feb  1 2022
  b6f55dd25fb6a12c7f81c0090f8ee42e8823ee93
    Added   : sp_enum_brace                        Feb  2 2022
  8aa0522fcc2ad468f1122943443f5ebf426fffc1
    Added   : indent_ignore_before_class_colon     Feb  4 2022
  133fe55d6fc0b2e1695bd7a70ccd6d2dcd1b2262
    Added   : indent_ignore_before_constr_colon    Feb  4 2022
  c95460809c74a73459c61712ff2d9142dff101d7
    Added   : indent_ignore_bool                   Feb 25 2022
  b37091110063b5c24b64516a49af09b8ca3cc18c
    Added   : indent_ignore_first_continue         Feb 25 2022
  e84f08879a7cf53b0301099a64faadeacf04a3a5
    Added   : indent_ignore_assign                 Mar  1 2022
  6ef69ee2a359f2e1bd8517ba4af25b969951fa71
    Added   : indent_ignore_case_brace             Mar  9 2022
  02a5e50419fd1bf7c9bf0ff9d208035b47db6fbf
    Added   : indent_namespace_inner_only          Apr 12 2022
  9040b9f068a179c3a09e0cf202a5ed7f91b2a12b
    Added   : pp_warn_unbalanced_if                Apr 15 2022
  df2ef721c95105b62a9e0cb0e9985947a739a44b
    Removed : sp_type_question                     Apr 30 2022

Change highlights in uncrustify-0.74.0 (November 2021)
-------------------------------------------------------------------------------
  4714d5d673d5b9c8f45d70c179f508d60130b18a
    Added   : nl_before_struct                     Mar 12 2021
  dbb2903a94668e147b588d3eebc3be917ac4ebca
    Added   : nl_before_ignore_after_case          Jun 22 2021
  e97b93418c03cde680d6fd46209d7e43c5e09bfe
    Added   : sp_before_ptr_star_trailing          Jul  1 2021
    Added   : sp_after_ptr_star_trailing           Jul  1 2021
  dd5a7c3b2ab64b903e888a264693a9edb7a98ee5
    Added   : sp_sparen_paren                      Jul 19 2021
  94941c2f9aa8952debab1f8257eb0625bc459392
    Added   : pp_indent_in_guard                   Jul 28 2021
  84d3b9276c007642c4bb73ff562008253e4fe014
    Added   : indent_single_line_comments_before   Jul 31 2021
    Added   : indent_single_line_comments_after    Jul 31 2021
    Removed : indent_sing_line_comments            Jul 31 2021
  0d956a006d64fddd4f8131e6a16a23f7e447cca3
    Added   : sp_after_ellipsis                    Jul 31 2021
  40bbb979ecf7ad36128150f5540a462c890d5e2c
    Added   : mod_remove_duplicate_include         Aug 15 2021
  97d24f3a05a53521ff2ce94928534f4bab0cc0af
    Added   : sp_between_semi_for_empty            Aug 22 2021
  63109e6253387480b8bfe7f73a7f2949865fc380
    Added   : nl_before_brace_open                 Aug 27 2021
  03c9ac261c9282b3cf5e92d69de70d6b4566d8e9
    Added   : cmt_trailing_single_line_c_to_cpp    Sep  1 2021
  1525722486dba45aa053f2c83e3015fa64880443
    Added   : sp_ellipsis_parameter_pack           Sep 16 2021
    Added   : sp_parameter_pack_ellipsis           Sep 16 2021
  2e33ac4314dfbfc18c56ec694b0eba3e6a1318f5
    Added   : sp_byref_ellipsis                    Sep 21 2021
    Added   : sp_ptr_type_ellipsis                 Sep 21 2021
  f19bf09cdce5822cf3d71065cb3900ea52f6e5c7
    Added   : indent_ctor_init_following           Sep 30 2021
  b1274c20bea3f8e2a8d6cd05cbb23c8d66f187a7
    Added   : sp_before_emb_cmt                    Oct  8 2021
    Added   : sp_num_after_emb_cmt                 Oct  8 2021
    Added   : sp_before_tr_cmt                     Oct  8 2021
    Added   : sp_num_before_emb_cmt                Oct  8 2021
    Added   : sp_num_before_tr_cmt                 Oct  8 2021
    Added   : sp_after_emb_cmt                     Oct  8 2021
    Removed : sp_before_tr_emb_cmt                 Oct  8 2021
    Removed : sp_num_before_tr_emb_cmt             Oct  8 2021
  563d72fcae6e0aad6e5f0ff998992a48a6767986
    Added   : pp_include_at_level                  Oct 11 2021
  28486dbadcc4d0ff9376776eb63f3c3bd800cf2d
    Added   : sp_return                            Oct 12 2021
  86105064d13fc60d14cfd134a8c3d402e7d27492
    Added   : indent_comment_align_thresh          Oct 13 2021
  964db2ac20372c45621a55313cdfb1eeb8298800
    Added   : indent_comment                       Oct 18 2021
  92b9047256ece8d9ace2da5c743be2b9cc2b54d8
    Added   : align_func_proto_amp_style           Oct 23 2021
    Added   : align_func_proto_star_style          Oct 23 2021
  094c79e06f6ec3111684b37b77063cf7af658105
    Added   : indent_case_comment                  Oct 26 2021
  7eb595caa38ced024a42ba1602d69e0387b8e3a1
    Added   : indent_switch_body                   Nov  3 2021
  cf845deb008b45783ff94a1986131eb180fb54a8
    Added   : sp_inside_for_close                  Nov  6 2021
    Added   : sp_inside_for                        Nov  6 2021
    Added   : sp_inside_for_open                   Nov  6 2021
  2caaa17866c3b421de7e28670e85c8f8dade5a77
    Added   : indent_ignore_label                  Nov 10 2021
  d8436ef370027bcfd289b19037c39ffdaf0ad4ff
    Added   : sp_ptr_star_func_var                 Nov 15 2021

Change highlights in uncrustify-0.73.0 (May 2021)
-------------------------------------------------------------------------------

  b514f25120b12db7b1ca57cdb93dd929a5bf43c4
    Added   : indent_before_class_colon            Nov 16 2020
  39c969b69663f6e6cee9673e23d349a308edc44a
    Added   : sp_cmt_cpp_region                    Dec  9 2020
  9ca37d0c32729570de2e51c97338bc567e124ae3
    Added   : cmt_sp_before_doxygen_javadoc_tags   Dec 24 2020
    Added   : cmt_align_doxygen_javadoc_tags       Dec 24 2020
  84e2c750d19b47bbe2547141b092855ec1f64424
    Added   : cmt_reflow_fold_regex_file           Dec 24 2020
  3a8e33a12839ca3bac2e1e0b49eb279362a2ab89
    Added   : processing_cmt_as_regex              Dec 31 2020
  c622135751824705979d37681fe16d9a60e3d77a
    Added   : cmt_reflow_indent_to_paragraph_start Jan  9 2021
  9c0799aa096b68550507980a32a529099caf97c5
    Added   : sp_cpp_lambda_argument_list          Jan 19 2021
  02054b1085166903e8c1384308ac7922cb57bd59
    Added   : nl_do_leave_one_liners               Jan 29 2021
  6a4d27914fca0c64273fad979355e16021626f8a
    Added   : debug_truncate                       Feb  7 2021
  a711e96ef7be6afc9f014c4c7e1e5ea5347aad0d
    Added   : indent_comma_brace                   Mar  9 2021

Change highlights in uncrustify-0.72.0 (November 2020)
-------------------------------------------------------------------------------
  new command option:
  --debug-csv-format : Dump debug info to file in csv-delimited format.

  b29dfb58d6bebb79a961d0e709543a152d260dbc
    Added   : nl_inside_empty_func                 Aug  4 2020
  5068a4a78d7770a7292ea7a016ab7ca0bf49cbf7
    Added   : debug_timeout                        Sep  1 2020
  cf3e5acfb4d55b47b25b7e7daa2844e2998b47cc
    Added   : sp_inside_square_empty               Sep  8 2020
  b66c26c669bf9752f468115f1e6444481c0b9e6d
    Added   : align_eigen_comma_init               Sep  9 2020
  7b5fd82fa5d6fc035ddfb7c087c5aeb7cf6f4bd7
    Added   : pos_shift                            Sep 16 2020
  b61b7952835be3451cd1131baeda7b54cb61a50e
    Added   : donot_indent_func_def_close_paren    Sep 26 2020
  85001632261196dc1c2f3760dc9180e4c443f9ba
    Added   : donot_add_nl_before_cpp_comment      Oct 14 2020

Change highlights in uncrustify-0.71.0 (May 2020)
-------------------------------------------------------------------------------

  6bcfb640d908038402869cb3be7bd80adcdb4708
    Added   : align_oc_msg_colon_xcode_like        Nov 29 2019
  2fd5aaf255e1d0369842f54ae8d444bcbc079c7b
    Added   : indent_compound_literal_return       Nov 19 2019
  4b74315b6cf8e91801b663c4171c1e0a9e12ea5b
    Added   : indent_sparen_extra                  Nov 19 2019
  f012dd24e2d116d867404667ce15c3309466046f
    Added   : sp_word_brace_init_lst               Jan 21 2020
    Removed : sp_word_brace                        Jan 21 2020
  466b8bcf5f8ee04686d2d7af62b5ce76241c777d
    Added   : nl_func_call_args                    Jan 24 2020
  807e27e81112f28ae71b21f43718a1b859ad473a
    Added   : sp_before_oc_proto_list              Feb  4 2020
  94f18ac9c0c7c7fab64f14425aea69f0f49bb240
    Added   : indent_off_after_assign              Feb  7 2020
  25e20f9e4ab389c06fc76bcf0dcb3fe07ab91aea
    Added   : indent_off_after_return              Feb  7 2020
  cee950462787ab3b7725c5fb77fa38b992527e99
    Added   : indent_oc_inside_msg_sel             Feb 10 2020
  2d04118314be95654f29fb32ae50b8cd46af8682
    Added   : nl_func_call_args_multi_line_ignore_closures Dec 17 2019
  369192830c01beedcfe87c432f9c26637c1e6587
    Added   : indent_inside_ternary_operator       Dec  9 2019
  100db726b938d263c6c7f07530385dec0cdd711e
    Added   : use_form_feed_no_more_as_whitespace_character Feb 21 2020
  24e27fe8cdda55e422b1db659f255da353b3022c
    Added   : debug_max_number_of_loops            Feb 27 2020
  30da6cafa6b0819c48a02513cadbc256a5b450c5
    Added   : debug_line_number_to_protocol        Mar 17 2020
  f5d8ee093eb521ecc0c57060b0009dd5f05e039e
    Added   : mod_sort_incl_import_prioritize_filename Mar 27 2020
  8d595cb0721b299db8f1169c22d38d45df899a51
    Added   : mod_sort_incl_import_ignore_extension Mar 27 2020
  9f8b7754f03aa970ede730a5cd4e2cbd94f139cc
    Added   : mod_sort_incl_import_prioritize_extensionless Mar 27 2020
  6d5829551886ee9e643e5d6019c5389dfa738c3b
    Added   : mod_sort_incl_import_prioritize_angle_over_quotes Mar 27 2020
  27b33d779e7aa33c1ebc39a52e54c3a95bc153d4
    Added   : mod_sort_incl_import_grouping_enabled Mar 27 2020
  ac62be9498fa195a54c0e2c76c438c641d68a917
    Added   : disable_processing_nl_cont           Apr 12 2020
  e2b17b724e00c6180c6bd6cb5b592e969c47b6a9
    Added   : nl_before_opening_brace_func_class_def Apr 22 2020
  981c761da5a4a71b059361a883c4bfff69148c49
    Added   : nl_before_whole_file_endif           Apr 24 2020
    Added   : nl_after_whole_file_endif            Apr 24 2020
    Added   : nl_after_whole_file_ifdef            Apr 24 2020
    Added   : nl_before_whole_file_ifdef           Apr 24 2020
  d55e9d21cd6377a38f741854baf1a561b984de36
    Added   : nl_func_call_end                     Apr 29 2020

Change highlights in uncrustify-0.70.1 (November 2019)
-------------------------------------------------------------------------------

  5114ea856acd79cbf52fd4261b83d423fafd98da
    Added   : nl_before_member                     Nov 17 2019
    Added   : nl_after_member                      Nov 17 2019
  1e911250996a7138e33006af1b664362b255f4b5
    Added   : nl_template_end_multi_line           Nov 17 2019
    Added   : nl_template_start_multi_line         Nov 17 2019
    Added   : nl_template_args_multi_line          Nov 17 2019
  948bc227c46f89207346ad596e6199acb12d162f
    Added   : sp_before_vardef_square              Nov 18 2019
  1ff6fc2da0b1cdef35089a2d6ac3364fbba304be
    Added   : nl_template_start                    Nov 21 2019
    Added   : nl_template_args                     Nov 21 2019
    Added   : nl_template_end                      Nov 21 2019
    Removed : nl_template_end_multi_line           Nov 21 2019
    Removed : nl_template_start_multi_line         Nov 21 2019
    Removed : nl_template_args_multi_line          Nov 21 2019
  2df82073bb1e3bc85f75c2165a541ba906f76b8d
    Added   : indent_macro_brace                   Nov 18 2019
  8cb5f1be52bcbcca4148cf0514b103dec5313c55
    Added   : indent_switch_break_with_case        Nov 25 2019

Change highlights in uncrustify-0.70.0 (is not released)
-------------------------------------------------------------------------------

  710b9b90d063e1fac853b77ad9509bed37ff31ee
    Added   : mod_sort_case_sensitive              May 12 2019
  40c028454904f4fc87bd93b9703eaeb58fa57dd0
    Added   : sp_before_square_asm_block           Jul 29 2019
  b9b7f2fffb2c73925906ca7e5c8536d03c93c4bc
    Added   : nl_multi_line_sparen_open            Aug  3 2019
    Added   : nl_multi_line_sparen_close           Aug  3 2019
  83a014197001ea815f92d977fc30aa36dec39e1b
    Added   : sp_cpp_lambda_square_paren           Aug 20 2019
    Added   : sp_cpp_lambda_square_brace           Aug 20 2019
    Added   : sp_cpp_lambda_paren_brace            Aug 20 2019
    Removed : sp_cpp_lambda_paren                  Aug 20 2019
  8b6455c08c4f70b04b03b48c32fa14b9014354b4
    Added   : use_sp_after_angle_always            Sep 13 2019
  264ec3c988b5667c971b0d6508b17d0c9337c82c
    Added   : sp_cpp_lambda_fparen                 Sep 13 2019
  883ccefc3bf8c8cdf6b159f280e22c2d72ce83f5
    Added   : sp_func_type_paren                   Oct 11 2019
  8284db41edbb777829f26d247470c75d3d317641
    Added   : nl_before_namespace                  Oct  8 2019
    Added   : nl_after_namespace                   Oct  8 2019
  3af190ceda3f8025028b5f8aae7541d35bda39c7
    Added   : nl_template_class_def                Oct  2 2019
    Added   : nl_template_func_def_special         Oct  2 2019
    Added   : nl_template_using                    Oct  2 2019
    Added   : nl_template_func_def                 Oct  2 2019
    Added   : nl_template_class_decl               Oct  2 2019
    Added   : nl_template_var                      Oct  2 2019
    Added   : nl_template_class_decl_special       Oct  2 2019
    Added   : nl_template_func                     Oct  2 2019
    Added   : nl_template_func_decl_special        Oct  2 2019
    Added   : nl_template_func_decl                Oct  2 2019
    Added   : nl_template_class_def_special        Oct  2 2019
  e9bc08c3baa3b7545a592b5e1d0d23e530c58b7f
    Added   : sp_trailing_return                   Oct 23 2019
  d783ecfe7f08b525eb882ff3a7c6525d8866d54b
    Added   : nl_oc_before_interface               Oct 28 2019
    Added   : nl_oc_before_implementation          Oct 28 2019
    Added   : nl_oc_before_end                     Oct 28 2019
  3741e59342c5741020b84eba147b0c1dfde0154b
    Added   : indent_func_def_param_paren_pos_threshold Nov  6 2019
  829b4124c02e36156489d06a8b33e3552e58d30b
    Added   : sp_brace_close_while                 Nov  8 2019
    Added   : sp_while_paren_open                  Nov  8 2019
    Added   : sp_do_brace_open                     Nov  8 2019
  ea6f4ac515c0ad5651be020a3295dcae01c3baf9
    Added   : nl_create_list_one_liner             Nov 11 2019

Change highlights in uncrustify-0.69.0 (May 2019)
-------------------------------------------------------------------------------

Changing option:
  - The option name is changed from 'align_assign_func_proto' to 'align_assign_func_proto_span'
      Mar  4 17:19:40 2019

New options:
  - align_constr_value_gap               Apr 24 2019
  - align_constr_value_span              Apr 24 2019
  - align_constr_value_thresh            Apr 24 2019
  - align_func_proto_thresh              Apr  5 2019
  - indent_col1_multi_string_literal     Mar 31 2019
  - sp_paren_noexcept                    Jan 13 2019
  - sp_paren_qualifier                   Jan 11 2019
  - sp_type_question                     Jan 11 2019
  - sp_inside_angle_empty                Dec 27 2018
  - nl_fdef_brace_cond                   Nov 29 2018
  - nl_func_call_start                   Nov 29 2018


Change highlights in uncrustify-0.68 (November 2018)
-------------------------------------------------------------------------------

New options:
  - align_same_func_call_params_span     Nov  9
  - align_same_func_call_params_thresh   Nov  9
  - nl_class_leave_one_liner_groups      Oct 17
  - nl_inside_namespace                  Aug 26
  - sp_return_brace                      Aug 21
  - align_assign_decl_func               Jul 24
  - sp_brace_brace                       Jul 23
  - sp_after_decltype                    Jul 22
  - sp_decltype_paren                    Jul 22
  - align_right_cmt_same_level           Jul 14
  - nl_oc_mdef_brace                     Jul  8
  - mod_enum_last_comma                  Jul  8
  - sp_type_ellipsis                     Jun 15
  - sp_paren_ellipsis                    Jun 15
  - sp_sizeof_ellipsis                   Jun 15
  - sp_sizeof_ellipsis_paren             Jun 15
  - indent_continue_class_head           May 30

Bugfix:
 - Issue # 1709, 1713, 1729, 1736, 1739, 1740, 1748, 1752, 1755, 1758, 1760,
     1762, 1763, 1776, 1778, 1782, 1783, 1784, 1786, 1788, 1789, 1804, 1827,
     1832, 1838, 1839, 1854, 1865, 1867, 1870, 1875, 1876, 1888, 1904, 1916,
     1917, 1918, 1919, 1942, 1946, 1947, 1958, 1960, 1962, 1965, 1969, 1979,
     1982, 1985, 1997, 2000, 2001, 2009, 2014, 2015, 2024, 2028, 2032, 2033,
     2035, 2037, 2046, 2055


Change highlights in uncrustify-0.67 (May 2018)
-------------------------------------------------------------------------------

Changing option:

Removed option:

New options:
  - indent_first_for_expr                Apr 29
  - indent_semicolon_for_paren           Apr 29
  - nl_oc_interface_brace                Apr 13
  - nl_oc_implementation_brace           Apr 13
  - indent_cpp_lambda_only_once          Mar 24
  - indent_cs_delegate_body              Mar 18
  - sp_after_noexcept                    Mar 18
  - indent_single_newlines               Mar  6
  - sp_after_ptr_block_caret             Feb 24
  - sp_after_oc_synchronized             Feb 24
  - sp_inside_square_oc_array            Feb 23
  - sp_oc_catch_paren                    Feb 23
  - sp_oc_catch_brace                    Feb 23
  - sp_oc_brace_catch                    Feb 23
  - nl_oc_catch_brace                    Feb 23
  - nl_oc_brace_catch                    Feb 23
  - nl_cs_property_leave_one_liners      Feb 16
  - indent_member_single                 Feb 10
  - sp_func_call_user_paren_paren        Feb  5
  - sp_func_call_user_inside_fparen      Feb  5
  - sp_inside_braces_oc_dict             Feb  5
  - nl_create_func_def_one_liner         Jan 17
  - nl_namespace_two_to_one_liner        Jan 15
  - nl_squeeze_paren_close               Jan 15
  - sp_fparen_brace_initializer          Jan 12
  - sp_cpp_before_struct_binding    2018 Jan 12
  - indent_align_paren                   Dec 14
  - nl_tsquare_brace                     Dec  9
  - indent_single_after_return           Nov 28
  - indent_off_after_return_new          Nov 28
  - indent_ignore_asm_block         2017 Nov 05

New keyword:
  - __unused                             Apr 21
  - @synchronized                        Feb 24
  - @available                           Feb 23
  - fixed                                Feb 16
  - @protected                           Feb  4
  - @public                              Feb  4
  - __autoreleasing                      Feb  4
  - __bridge                             Feb  4
  - __bridge_retained                    Feb  4
  - __bridge_transfer                    Feb  4
  - __declspec                           Feb  4
  - __has_include                        Feb  4
  - __has_include_next                   Feb  4
  - __strong                             Feb  4
  - __typeof                             Feb  4
  - __unsafe_unretained                  Feb  4
  - __weak                               Feb  4
  - self                                 Feb  4
  - unsafe_unretained               2018 Feb  4
  - where                           2017 Dec  6

Bugfix:
 - Debian issue #881249 "FTBFS on armel/i386/mips64el/s390x: cpp_33057 fails"
     is fixed
 - Adopt many bugfix and tests from UT:
     10000, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10011,
     10012, 10013, 10014, 10015, 10016, 10018, 10019, 10020, 10021, 10022,
     10023, 10024, 10025, 10027, 10028, 10029, 10030, 10031, 10032, 10033,
     10034, 10035, 10036, 10039, 10044, 10045, 10046, 10047, 10048, 10049,
     10050, 10051, 10052, 10053, 10054, 10054, 10055, 10056, 10057, 10058,
     10060, 10062, 10063, 10065, 10066, 10067, 10069, 10070, 10071, 10072,
     10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10100, 10102,
     10103, 10104,
     60001, 60002, 60003, 60004, 60005, 60006, 60007, 60008, 60009, 60011,
     60012, 60013, 60014, 60015, 60016, 60017, 60018, 60019, 60020, 60021,
     60022, 60023, 60024, 60025, 60026, 60027, 60028, 60029, 60030, 60031,
     60032, 60033, 60034, 60036, 60037, 60038, 60039, 60040

New:
  - Add crash handling for Windows

Change highlights in uncrustify-0.66 (November 2017)
-------------------------------------------------------------------------------

New options:
  - sp_arith_additive                    Oct 17
  - sp_angle_colon                       Oct 17
  - nl_func_call_empty                   Sep 30
  - nl_func_call_paren_empty             Sep 30
  - align_func_params_span               Sep 29
  - align_func_params_thresh             Sep 29
  - align_func_params_gap                Sep 29
  - nl_func_call_paren                   Jul 25
  - indent_paren_after_func_def          Jul 21
  - indent_paren_after_func_decl         Jul 21
  - indent_paren_after_func_call         Jul 21
  - nl_func_paren_empty                  Jul 07
  - nl_func_def_paren_empty              Jul 07
  - indent_switch_pp                     Jun 22
  - pp_indent_case                       Jun 22
  - pp_indent_func_def                   Jun 22
  - pp_indent_extern                     Jun 22
  - pp_indent_brace                      Jun 22

Changing option:
  - The option name is changed from 'align_number_left' to 'align_number_right'

Bugfix:
 - Issue # 548, 1098, 1103, 1108, 1112, 1127, 1134, 1158, 1165, 1170, 1187,
     1200, 1203, 1236, 1249, 1310, 1315, 1340, 1349, 1352, 1366 are fixed

Change highlights in uncrustify-0.65 (May 2017)
-------------------------------------------------------------------------------

New options:
  - nl_before_if_closing_paren                     May 12
  - sp_after_type_brace_init_lst_open              May 09
  - sp_before_type_brace_init_lst_close            May 09
  - sp_inside_type_brace_init_lst                  May 09
  - sp_type_brace_init_lst                         May 09
  - nl_type_brace_init_lst                         May 09
  - nl_type_brace_init_lst_open                    May 09
  - nl_type_brace_init_lst_close                   May 09
  - mod_sort_oc_property_class_weight              May 05
  - mod_full_brace_nl_block_rem_mlcond             Mar 17
  - sp_inside_newop_paren_open                     Mar 13
  - sp_inside_newop_paren                          Mar 13
  - sp_after_newop_paren                           Mar 13
  - sp_inside_newop_paren_close                    Mar 13
  - pp_ignore_define_body                          Feb 18
  - sp_enum_colon                                  Feb 13
  - nl_enum_class                                  Feb 13
  - nl_enum_class_identifier                       Feb 13
  - nl_enum_identifier_colon                       Feb 13
  - nl_enum_colon_type                             Feb 13
  - indent_param                                   Feb 01
  - include_category_0                             Jan 24
  - include_category_1                             Jan 24
  - include_category_2                       2017  Jan 24
  - force_tab_after_define                   2016  Dec 29
  - nl_max_blank_in_func                           Nov 26
  - indent_ternary_operator                        Nov 24
  - indent_using_block                             Oct 20

New:
  - emscripten interface
  - removal of autogen / configure build
  - list options that are now AT_UNUM type
  - change option name from align_number_left to align_number_right

Removed option:
  - dont_protect_xcode_code_placeholders

Removed MS calling convention keywords:
  - __cdecl, __clrcall, __fastcall, __stdcall, __thiscall, __vectorcall

Bugfix:
 - Issue # 324, 398, 404, 497, 525, 575, 633, 638, 643, 646, 663, 666,
     679, 682, 687, 726, 752, 753, 793, 815, 825, 842, 857, 859, 869, 870,
     889, 902, 916, 917, 928, 935, 938, 940, 972, 1002, 1005, 1020, 1030,
     1032, 1041, 1068, 1117, 1139 are fixed
 - Proposal #381, 876 are adopted.

Change highlights in uncrustify-0.64 (October 2016)
-------------------------------------------------------------------------------

New:
 - Support for new C#6 language elements. (Bug #672)
    Expression filter with the keyword 'when' in try/catch is now supported.
    Null conditional operator (?.) is now supported.

New options:
 - align_var_class_span                             Aug 23
 - align_var_class_thresh                           Aug 23
 - align_var_class_gap                              Aug 23
 - pos_enum_comma                                   Aug 14
 - indent_token_after_brace                         Aug  3
 - cmt_multi_first_len_minimum                      Aug  2
 - nl_enum_own_lines                                Aug  1
 - nl_func_class_scope                              Jul 26
 - nl_squeeze_ifdef_top_level                       Jul 24
 - sp_super_paren                                   Jul 21
 - sp_this_paren                                    Jul 21
 - sp_angle_paren_empty                             Jul 21
 - sp_after_operator_sym_empty                      Jul 20
 - sp_skip_vbrace_tokens                            Jul 13
 - indent_cs_delegate_brace                         Jul  9
 - cmt_insert_before_inlines                        Jun 29
 - cmt_insert_before_ctor_dtor                      Jun 29
 - mod_full_brace_if_chain_only                     Jun 28
 - nl_func_decl_start_multi_line                    Jun 28
 - nl_func_def_start_multi_line                     Jun 28
 - nl_func_decl_args_multi_line                     Jun 28
 - nl_func_def_args_multi_line                      Jun 28
 - nl_func_decl_end_multi_line                      Jun 28
 - nl_func_def_end_multi_line                       Jun 28
 - nl_func_call_start_multi_line                    Jun 28
 - nl_func_call_args_multi_line                     Jun 28
 - nl_func_call_end_multi_line                      Jun 28
 - use_options_overriding_for_qt_macros             Jun 16
 - sp_func_def_paren_empty                          Jun 15
 - sp_func_proto_paren_empty                        Jun 15
 - sp_func_class_paren_empty                        Jun 15
 - nl_oc_block_brace                                May 26
 - nl_split_if_one_liner                            May 26
 - nl_split_for_one_line                            May 24
 - nl_split_while_one_liner                         May 24
 - nl_after_func_class_proto                        May 12
 - nl_after_func_class_proto_group                  May 12 2016

Bugfix:
 - Bugs #620, #651, #654, #662, #663, #664, #670, #671, #672, #674 are fixed
 - Issues #322, #323, #359, #405, #408, #412, #478, #481, #495, #503, #509, #512, #513, #514,
    #518, #519, #520, #521, #522, #524, #529, #530, #533, #536, #539, #542,
    #543, #544, #546, #568 are fixed
 - Proposals #409, #477 are implemented
 - Issue #411 is partially 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 information 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 extension 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 aggressive in removing unnecessary 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 latest 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 infinite 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 ellipsis 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 ellipsis spacing (remove space before ellipsis)
 - 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
