forked from uncrustify/uncrustify
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
1187 lines (1039 loc) · 47.2 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Change highlights in current git (December 2017)
-------------------------------------------------------------------------------
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, 10050,
10052, 10054, 10055, 10060, 10062, 10065, 10067, 10069, 10070, 10071,
10072, 10073, 10077, 10078, 10079, 10080, 10100, 10102, 10103, 10104,
60001, 60002, 60003, 60006, 60008, 60012, 60013, 60016, 60017, 60019,
60020, 60022, 60024, 60025, 60026, 60027, 60028, 60029, 60030, 60031,
60032, 60033, 60034, 60036, 60038, 60039, 60040
New:
- Add crash handling for Windows
Change highlights in uncrustify-0.66 (November 2017)
-------------------------------------------------------------------------------
New options:
- indent_ignore_asm_block Nov 05
- 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
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)