blob: a1084ef149c183d72d154d924302a22ed3d06bc0 [file] [log] [blame]
Change highlights in uncrustify-0.61 (22 Dec 2014)
-------------------------------------------------------------------------------
This release is just a roll-up of the past two years.
Many bugs were squashed and many options were added.
New options:
- indent_paren_open_brace
- indent_namespace_single_indent
- indent_constr_colon
- indent_oc_msg_prioritize_first_colon
- indent_oc_block_msg_xcode_style
- indent_oc_block_msg_from_keyword
- indent_oc_block_msg_from_colon
- indent_oc_block_msg_from_caret
- indent_oc_block_msg_from_brace
- sp_enum_paren
- sp_cparen_oparen
- sp_after_ptr_star_qualifier
- sp_after_constr_colon
- sp_before_constr_colon
- sp_fparen_dbrace
- sp_word_brace
- sp_word_brace_ns
- sp_cond_colon_before
- sp_cond_colon_after
- sp_cond_question_before
- sp_cond_question_after
- sp_cond_ternary_short
- align_keep_extra_space
- nl_cpp_lambda_leave_one_liners
- nl_brace_square
- nl_brace_fparen
- nl_constr_init_args
- nl_cpp_ldef_brace
- nl_paren_dbrace_open
- nl_constr_colon
- pos_constr_comma
- pos_constr_colon
- mod_add_long_namespace_closebrace_comment
- cmt_convert_tab_to_spaces
Change highlights in uncrustify-0.60 (1 Jan 2013)
-------------------------------------------------------------------------------
Objective C support was greatly enhanced in this release.
Many bugs were squashed and many options were added.
New options:
- align_oc_msg_colon_first
- align_pp_define_together
- indent_ctor_init_leading
- indent_func_def_force_col1
- indent_oc_block
- indent_oc_block_msg
- indent_oc_msg_colon
- ls_code_width
- nl_after_annotation
- nl_before_return
- nl_between_annotation
- nl_brace_struct_var
- nl_oc_msg_args
- nl_oc_msg_leave_one_liner
- nl_remove_extra_newlines
- nl_scope_brace
- nl_typedef_blk_end
- nl_typedef_blk_in
- nl_typedef_blk_start
- nl_unittest_brace
- nl_var_def_blk_end
- nl_var_def_blk_in
- nl_var_def_blk_start
- nl_version_brace
- sp_after_for_colon
- sp_after_oc_dict_colon
- sp_after_oc_msg_receiver
- sp_after_oc_property
- sp_after_throw
- sp_after_tparen_close
- sp_annotation_paren
- sp_before_for_colon
- sp_before_oc_dict_colon
- sp_before_pp_stringify
- sp_before_template_paren
- sp_cpp_lambda_assign
- sp_cpp_lambda_paren
- sp_extern_paren
- sp_inside_sparen_open
- sp_inside_tparen
- sp_permit_cpp11_shift
- sp_ptr_star_paren
Changed default:
- sp_pp_stringify = ignore (was add)
See commit.log for details.
Change highlights in uncrustify-0.59 (4 Oct 2011)
-------------------------------------------------------------------------------
The biggest change in this release was to rework the string handling to add
proper support for UTF-8 and UTF-16.
New options:
- nl_case_colon_brace
- indent_ctor_init
- sp_before_tr_emb_cmt
- sp_num_before_tr_emb_cmt
- utf8_bom
- utf8_byte
- utf8_force
- sp_after_new
- nl_after_struct
- nl_after_class
- nl_property_brace
- nl_after_func_body_class
See commit.log for details.
Change highlights in uncrustify-0.58 (19 May 2011)
-------------------------------------------------------------------------------
New options:
- tok_split_gte
- sp_catch_paren
- sp_scope_paren
- sp_version_paren
- cmt_insert_oc_msg_header
See commit.log for details.
Change highlights in uncrustify-0.57 (25 Nov 2010)
-------------------------------------------------------------------------------
New options:
- sp_func_call_paren_empty
- nl_func_def_start
- nl_func_def_start_single
- nl_func_def_paren
- nl_func_def_args
- nl_func_def_empty
- nl_func_def_end
- nl_func_def_end_single
See commit.log for details.
Change highlights in uncrustify-0.56 (27 Mar 2010)
-------------------------------------------------------------------------------
New options:
- indent_continue
- indent_cmt_with_tabs
- indent_first_bool_expr
- indent_braces_no_class
- indent_braces_no_struct
- indent_var_def_cont
- sp_assign_default
- sp_after_oc_at_sel_parens
- sp_inside_oc_at_sel_parens
- align_oc_decl_colon
- nl_after_vbrace_close
- nl_using_brace
- mod_full_brace_using
See commit.log for details.
Change highlights in uncrustify-0.55 (27 Nov 2009)
-------------------------------------------------------------------------------
- See the GIT history for a full list of changes
- Fix align_left_shift with array indexes
- Objective C changes (Andre Berg)
- Fix a close paren added inside a preprocessor line
- Fix handling of 'mutable'
- New options
- sp_endif_cmt
- nl_func_decl_start_single
- nl_func_decl_end_single
- nl_after_vbrace_open_empty
- Improved options
- sp_before_ellipsis
- nl_struct_brace
- align_on_tabstop
- align_with_tabs
- align_left_shift
- nl_func_type_name
- nl_create_if_one_liner
- pos_assign
Changes in uncrustify-0.54 (16 Oct 2009)
-------------------------------------------------------------------------------
- Add mod_case_brace
- Add sp_after_semi_for and sp_after_semi
- Add align_oc_msg_colon
- ObjC: Do not set the parent of everything in a message at OC_MSG (was breaking casts)
- ObjC: sp_before_square does not apply in "if (i < [a count])"
- Fix crash bug in chunk_get_prev() at the start of the file
- Fix issue with #if COND followed by a cast on the next line
- Add nl_func_decl_empty
- Add nl_func_type_name_class
- Add cmt_reflow_mode (Ger Hobbelt)
- A case statement starts an expression. Fixes "case -1:"
- Improve semicolon removal test
- fix marking of brace/paren pairs that have a preproc inside
- fix nl_func_type_name where the return type contains a template
- Add mod_full_brace_if_chain
- fix detection of deref in a macro function
- fix detection of "std::vector<void (*)(void)> functions;"
- Remove extra semicolons on an 'else if'
- Add sp_before_ellipsis
- treat a constructor the same as a function regarding nl_func_decl_*
- Add nl_brace_brace
- Allow any number of spaces between multi-line comments when combining them
- Add pos_compare
- Add pos_conditional
- Fix indent_relative_single_line_comments
- Add sp_after_oc_return_type and sp_after_oc_at_sel (Andre Berg)
- Add indent_namespace_level (James LewisMoss)
- Add indent_namespace_limit (Maciej Libera)
Changes in uncrustify-0.53 (16 May 2009)
-------------------------------------------------------------------------------
- Fix sp_inside_braces* options, which were broken by the fix to issue #2629652
- Fix sp_after_cast, which was broken by a previous fix
- Be a little more agressive in removing unecessary semicolons
- Fix one case where the parser leaves a preprocessor #define
- Fix indent of line starting with '(' after a function name
- Add align_var_def_attribute
- Fix nl_func_type_name for function without a return type (ie, cast operator)
- Reset up state variables after processing a file
- Fix a case where a semicolon was incorrectly removed
- Fix a case where braces were incorrectly removed
- Fix handling of 'force' setting for many newline options
- Add func_wrap type for use with 'set func_wrap FSUB'
- Add type_wrap type for use with 'set type_wrap STACK_OF'
- Make file replacement more atomic - write to a temp file then rename
- With the 'replace' option, only replace if the file content changes
- Handle C# wide literal string prefix S"foo"
- Handle the ObjC '@protocol' the same as '@interface'
- Add 'make check' and 'make clean' (Ger Hobbelt)
- Add align_right_cmt_at_col (Ger Hobbelt)
- Add sp_pp_concat and sp_pp_stringify (Ger Hobbelt)
- Add mod_add_long_ifdef_{else,endif}_comment (Ger Hobbelt)
- Objective C improvements (Etienne Samson)
- Only mess with escaped newlines in a comment if inside a preprocessor
- Fix pos_xxx options when a preprocessor is near
- Apply Debian patch to man file
- Fix '<<' indenting/aligning (moved from indent.cpp to align.cpp)
- Rework the sp_before_nl_cont option
- Fix a few other bugs
Changes in uncrustify-0.52 (28 Feb 2009)
-------------------------------------------------------------------------------
- Add sp_before_assign and sp_after_assign
- Add sp_enum_before_assign and sp_enum_after_assign
- Add indent_var_def_blk
- Add sp_inside_sparen_close for the 'CGAL' style
- First pass at supporting ECMAScript (.es) files
- Add support for the C# '??' operator
- Fix conflict between nl_after_func_proto_group and nl_squeeze_ifdef
- Add sp_cmt_cpp_start
- Add align_on_operator
- Fix nl_func_type_name for operators
- Allow '$' to be part of identifiers (global change)
- Fix detection of the '*' in 'int a = b[0] * c;'
- Fix and improve the description of nl_multi_line_cond
- Fix handling of global namespace type such as '::sockaddr'
- Add nl_after_brace_close
- Add nl_func_scope_name
- Add cmt_insert_file_footer
Changes in uncrustify-0.51 (27 Nov 2008)
-------------------------------------------------------------------------------
- Prefer to split at ',' and then '=' in for() statements if at paren level
- Fix a NULL deref crash
- Fix nl_namespace_brace when something trails the open brace
- Get sp_after_sparen and sp_sparen_brace to play well together
- Ignore trailing comments when inserting the function header comment
- Combine two C comments when they have no space between them "/***//***/"
- Add cmt_insert_before_preproc
- Add mod_remove_empty_return
- Add nl_comment_func_def
- Fix aligning of anonymous bit fields
- Add indent_align_assign
- Add sp_before_case_colon
- Fix D 'invariant' handling
- Add sp_invariant_after_paren and sp_invariant_paren
- Fix handling of the C# [assembly: xxx] construct
- Fix handling of the C# 'base()' construct
- Add sp_range for the D '..' range operator as in [start .. end]
- Update $(fclass) and $(function) to handle operators
- Improve handling of inserted comments
- Enable 'finally' blocks for C#
- Add nl_after_try_catch_finally
- Add nl_between_get_set and nl_around_cs_property
Changes in uncrustify-0.50 (25-Oct-2008)
-------------------------------------------------------------------------------
- Fix sp_before_unnamed_ptr_star in 'char ** n'
- Fix crash when a open brace is at the end of a file
- ObjC class definitions do not need { }
- Fix ObjC msg detection
- Add sp_after_ptr_star_func, sp_before_ptr_star_func
- Add sp_after_byref_func, sp_before_byref_func
- Treat an ObjC msg decl more like a function def
- Add indent_func_const, indent_func_throw (Thanks, Ron)
- Fix detection of prototype inside extern or namespace braces
- Add align_left_shift to handle aligning of '<<'
- Add sp_cpp_cast_paren
- Add support for ObjC '@property' statements
- Add sp_brace_typedef and sp_case_label
- Merge in the lastest UniversalIndent support (Thanks, Thomas!)
- Fix extra '\r' in multi-line comments and strings
- Add sp_throw_paren
- Assume a '<' in a preprocessor can't be part of a template
- Don't align a constructor with class variables
- Fix ending column error when tokenizing strings
Changes in uncrustify-0.49 (22-Aug-2008)
-------------------------------------------------------------------------------
- Allow the MSVC++ '64' suffix on numbers
- Initialize align_stack class members for the MSVC++ compiler
- Indent a line that starts with '='
- Add pos_arith and pos_assign (Thanks, Ron!)
- Fix pos_bool & code_width interaction (Thanks, Ron!)
- Fix cmt_width, which was going one word over the limit. (Thanks, Ron!)
- Major rework of the aligning code to better handle the gap options
- Indent comments before 'case' at the same level as 'case'
- mod_add_long_*_closebrace_comment adds the right comment type. (Thanks, Ron!)
- Relax number parsing even further to accept stuff like "3A"
- Add sp_after_oc_colon (Thanks, Kevin!)
- Add better detection and labeling of Objective C messages
- Add sp_after_send_oc_colon and sp_before_send_oc_colon (Thanks, Kevin!)
- Fix detection of '*' in "return n * f();"
- Add the 'set' config option which lets you create arbitrary keywords
- Add sp_func_call_user_paren and the 'func_call_user' keyword type
Changes in uncrustify-0.48 (18-Jul-2008)
-------------------------------------------------------------------------------
- Fix classification of '(' in '#if defined (FOO)'
- Add sp_defined_paren
- Fix handling of negative in '#if X < -1'
- Revert a change that broke indent continuation in an assignment
- Fix interaction between nl_squeeze_ifdef and nl_after_{if,for,while,switch,do}
- Preprocessor indents are indents, so indent_with_tabs=1 should do tabs
- Add pp_indent_count
- Handle C++ style casts, such as 'int(42.0)' a bit better
- Another rework of template detection
- Add sp_before_nl_cont, defaults to 'add'
- If a statement starts with 'operator', it is a function call
- Change sp_angle_word to be more generic
- Add sp_after_operator_sym for "operator ++(" vs "operator ++ ("
- Add sp_template_angle for "template<" vs "template <"
- Add support for " *INDENT-OFF* " and " *INDENT-ON* "
- Shuffle around spacing priorities
- Add handling for '...' in variadic templates
- Extend nl_template_class to handle anything after 'template <...>'
- Treat the template '<' the same as '(' for indenting
- Add indent_template_param
- Split internal CT_CAST into CT_C_CAST, CT_CPP_CAST and CT_D_CAST
- Swap priority of sp_after_angle and sp_before_ptr_star
- Change cmt_multi_indent=false to disable all reformatting (needs more work)
- Fix align_var_def_span - it wasn't counting newlines when it recursed
- Add nl_else_if
- mod_full_brace_if: Don't remove braces around certain 'else' statements
- Tweak template detection a bit more
- Rework and simplify multi-line comment indenting
- Add indent_else_if
- Improve right-comment aligning
- Fix detection of functions with a 'const' return type
- Add sp_cond_colon and sp_cond_question
- Fine-tune the right comment align stuff
- Add cmt_multi_check_last
- Add align_right_cmt_gap
- Add nl_return_expr
- Indent FPAREN_OPEN if after a newline but not before a newline
- Give sp_after_operator_sym priority over sp_func_call_paren
- Add align_same_func_call_params
Changes in uncrustify-0.47 (06-Jun-2008)
-------------------------------------------------------------------------------
- Fix inifinite loop bug in reindent_line
- Fix prototype detection with template parameter types
- Fix off-by-1 error on positive values for indent_access_spec and indent_label
- Add indent_extern to control indent extern-type namespaces
- Add initial support for Objective C++ (extension '.mm')
- Add nl_before_throw and indent 'throw' if after a prototype
- Extend line numbers to 32 bits (used for logging)
- Remove alternate token support for '<%', '%>', '<:', ':>', '%:', and '%:%:'
- Fix recently-broken mixing of right-comment aligning (PP_ENDIF/PP_ELSE issue)
- Indent a 'break' that follows a fully-braced 'case' at the level of the
close brace
- Add mod_move_case_break
- Fix '&' and '*' after 'delete'
- Escape opening '/*' when converting C++ comments to C comments
- Add sp_inside_braces_empty
- Fix cmt_sp_after_star_cont
- Fix cmt_sp_before_star_cont
- Explicitly disallow a tab after a space
- Improve multi-line comment indenting a bit
- Add sp_before_unnamed_byref and sp_before_unnamed_ptr_star
Changes in uncrustify-0.46 (22-Apr-2008)
-------------------------------------------------------------------------------
- Load the config file, if available, before handling '--universalindent'
- Add align_var_def_gap, align_var_def_colon_gap, align_var_struct_gap,
align_func_proto_gap, align_mix_var_proto, align_single_line_brace_gap
- (internal) Eliminate the 'trailer' stuff, simplify aligning
Changes in uncrustify-0.45 (7-Mar-2008)
-------------------------------------------------------------------------------
- Fix buffer overflow in logger code
- Add sp_enum_assign
- For elipses handling in the GCC extension "case 1 ... 5:"
- Add sp_after_class_colon, sp_before_class_colon, and sp_after_type
- Send usage text to stdout instead of stderr
- Fix mod_add_long_function_closebrace_comment if the file doesn't end in a newline
- Redo alignments after splitting long lines
- Add indent_relative_single_line_comments
- Add indent_access_spec_body
- Fix indent_func_proto_param to work on constructors
- Add cmt_indent_multi
- Add align_single_line_brace and align_single_line_func
- Fix interaction of virtual braces and #pragma
- Fix indenting problem with an assignment the last part of a for()
- Fix the order of opening files so that '-f' and '-o' can be used together
- Added a man file
- Many improvements thanks to Stas Grabois
- Fix a D problem due the lack of semicolons after struct/enum definitions
- Improve the way aligning is done
Changes in uncrustify-0.44 (12-Feb-2008)
-------------------------------------------------------------------------------
- Fix issue with #else and unmatched braces (issue 1868493)
- Update UnivarsalIndentGUI config output
- Add the version to generated config files
- Add nl_multi_line_define
- Minimize distance between code and the backslash-newline in macros
- Properly handle stuff like '#define MYHEADER <asm/arm.h>'
- Fix detection of 'int foo(int);' in C++ (func proto, not class variable)
- Improve handling of multi-line comments in a macro
- Fix crash bug with some ctype implementations
- Fix incorrect indenting of nested #endif with pp_if_indent_code
- Fix problem with nl_after_if and nl_before_if w/ trailing comments
Changes in uncrustify-0.43 (08-Jan-2008)
-------------------------------------------------------------------------------
- Add align_right_cmt_mix to control aligning of comments after '}' and '#endif'
- Allow a line split after an assignment
- Fix infinite loop bug
- Add sp_sign and sp_incdec
- Fix vbrace conversion where some are converted and some aren't
- Add a vbrace before a #pragma instead of after
- Improve Objective C support
- Add sp_before_oc_colon, sp_after_oc_scope, and sp_after_oc_type for ObjC
- Add align_oc_msg_spec_span for ObjC
- Add sp_member for spacing around '->' and '.'
- More template handling improvements
- Fix a NULL dereference related to __attribute__
Changes in uncrustify-0.42 (30-Nov-2007)
-------------------------------------------------------------------------------
- Fix bug that would remove a newline after a C++ comment
- Add "--mtime" command line option to preserve the mtime
- Remove extra semicolons before inserting newlines after semicolons
- Fix broken struct initializer alignment
- Fix problem with pos_class_comma in a #define
- Fix problem with an incomplete statement in a #define and virtual braces
- Add indent_func_proto_param and indent_func_def_param
- Add nl_func_proto_type_name, split from nl_func_type_name
- Add mod_add_long_switch_closebrace_comment, mod_add_long_function_closebrace_comment
- Add mod_sort_import to sort import statements (Java/D)
- Add mod_sort_using to sort using statements (C#)
- Add mod_sort_include to sort #include (C/C++) and #import (ObjC) statements
- Add indent_func_class_param, indent_func_ctor_var_param, and
indent_func_param_double
- Fix inserting a newline before a preprocessor
- Don't split empty function parens for code_width stuff
Changes in uncrustify-0.41 (07-Nov-2007)
-------------------------------------------------------------------------------
- Add cmt_insert_func_header, cmt_insert_file_header, and cmt_insert_class_header
- Fix detection of prototypes without named parameters
- sp_after_byref and sp_after_ptr_star only are applied if before a word
- internal rework
- Add pp_define_at_level
- Fix detection of deref in "sizeof *x"
- Fix broken output of backslash-newline in certain situations
- Fix pp_indent_if stuff
- Add nl_after_brace_open_cmt
- Properly handle anonymous namespaces
- Add pp_space_count
Changes in uncrustify-0.40 (12-Oct-2007)
-------------------------------------------------------------------------------
- Simplify preprocessor indenting
- Add pp_indent_region and pp_region_indent_code
- Add pp_indent_at_level
- Add pp_indent_if and pp_if_indent_code
- Add initial VALA support
- Fix a problem with mod_full_paren_if_bool and functions
- Add nl_func_paren
- Fix function type parameter marking (broken in the last few releases)
- Don't remove newline chunks before/after a preprocessor
Changes in uncrustify-0.39 (25-Sep-2007)
-------------------------------------------------------------------------------
- Improve conversion operators
- Prevent undesired chunk combining ("~ ~" vs "~~" in D)
- Add nl_after_multiline_comment
- Fix handling of try/catch/finally blocks in virtual braces
- Add sp_inv, sp_not, sp_addr, sp_deref (default to remove)
- Fix nl_class_brace
- Fix indent_func_call_param
- Add nl_create_if_one_liner, nl_create_for_one_liner, nl_create_while_one_liner
- Add indent_preserve_sql
- Fix one-liner detection with multiple statements on one line
- Add nl_func_leave_one_liners and nl_if_leave_one_liners
- More template improvements
Changes in uncrustify-0.38 (04-Sep-2007)
-------------------------------------------------------------------------------
- Fix line splitting WRT the CT_SPACE token
- Improve function call/prototype/definition detection
- Fix some spacing issues
- More template improvements
- Allow for a C++ struct constructor
- Add nl_before_access_spec and nl_after_access_spec
- Add cmt_width, cmt_c_group, cmt_c_nl_start, cmt_c_nl_end
- Handle conversion operators
Changes in uncrustify-0.37 (16-Aug-2007)
-------------------------------------------------------------------------------
- A bunch of D language improvements
- Add sp_d_array_colon, nl_assign_square, nl_after_square_assign
- Fix static keyword sort order
- Improve typedef detection and aligning
- Split nl_ds_struct_enum_close_brace out of nl_ds_struct_enum_cmt
- Add indent_paren_close
- Add indent_comma_paren and indent_bool_paren
Changes in uncrustify-0.36 (04-Aug-2007)
-------------------------------------------------------------------------------
- Add nl_after_vbrace_open
- Improve option descriptions
- Fix seg faults (check for NULL)
- Fix spacing for operators () and []
- Add sp_before_dc and sp_after_dc to control spacing around '::'
- Split pos_class_comma from pos_comma
- Improve line splitting a little - no longer break at '::' or '->' or '.'
- Add nl_enum_leave_one_liners and nl_getset_leave_one_liners
- Add mod_remove_extra_semicolon
- Fix handling of macro-open and macro-close
- Add align_var_struct_thresh
- Improve handling of comments after braces
- Add support for Qt slots and signals
- Add align_typedef_amp_style and align_var_def_amp_style
- Add sp_attribute_paren and handling of the '__attribute__' macro
- Add align_typedef_func, improve aligning of typedefs
- Add sp_after_semi_for_empty
Changes in uncrustify-0.35 (14-Jul-2007)
-------------------------------------------------------------------------------
- Fix bug with nl_func_type_name and empty param list: int foo() { ... }
- Don't parse pragma bodies
- Properly indent multiline #error and #warning
- Change nl_after_func_body to force the newline count (was a minimum)
- Fix handling of CT_PTR_STAR when all options are AV_IGNORE
- Fix problem when the first token in the file isn't in column 1
- Properly mark catch clauses that contain parameters, ie catch (Exception *e)
- Add a newline after the open brace for nl_catch_brace, nl_do_brace,
nl_else_brace, nl_try_brace, nl_getset_brace, nl_finally_brace
- Add nl_multi_line_cond
- Fix a bug with mod_full_paren_if_bool
- Fix handling of templated variables: Buffer<T>* buf
- Fix handling of dynamic_cast<T*>(obj) stuff
- Fix detection of templates in for() statements:
for (std::map<Key, Value*>::iterator it = map.begin(); ...
- Add --no-backup command-line option to replace w/o a backup file
- Fix nl_class_leave_one_liners when set to false
- Add nl_class_colon, which split the functionality of nl_class_init_args
- Improve detection of reference variable declarations (A& B)
Changes in uncrustify-0.34 (11-May-2007)
-------------------------------------------------------------------------------
- Add sp_angle_paren and sp_angle_word
- Properly handle multi-line CPP comments
- Add sp_inside_paren_cast
- improve indent_class_colon
- fix indenting on open parens
- Add sp_before_semi_for_empty
- Fix detection of while if the do is in a preprocessor chunk (1675673)
- (pawn) Don't add vsemi after case/switch brace close (1684840)
- Add nl_assign_leave_one_liners to allow "foo_t foo = { 0, 1 };"
- Change handling of #region stuff so that it is indented at brace level
- Fix handling of missing semicolon after while-of-do.
- Fix crash-bug in handling bad code: "if (a && );"
- Add pos_comma
Changes in uncrustify-0.33 (05-Mar-2007)
-------------------------------------------------------------------------------
- Fix converting C++ comments with embedded C comments
- Fix nl_func_var_def_blk with class variables
- Fix some output issues with the 1st line and C++ comments
- Eliminate indent_case_body, which wasn't used
- Change rules for indenting case braces and the use of indent_case_brace
- Fix variable declaration detection at the start of a code block
- Add support for custom open/close indenting macros
MACRO_OPEN, MACRO_ELSE, MACRO_CLOSE
- Fix the config updating routines to NOT lose custom types and stuff
- Add nl_after_func_body_one_liner
- Fix nl_class_init_args
- Add --universalindent option to output an ini file for UniversalIndentGUI
Changes in uncrustify-0.32 (20-Feb-2007)
-------------------------------------------------------------------------------
- Enable align_proto_var_def for constructors
- Fix while-of-do handling inside virtual braces
- Fix problem with comments between a close brace and else
- Add sp_before_comma
- Change align_var_def_star to align_var_def_star_style
- Change align_proto_var_def to align_func_params
- Add ls_func_split_full and ls_for_split_full
- Rework code width code a bit
- Start Objective C support
- Add cmt_sp_before_star_cont and cmt_sp_after_star_cont
- Fix spacing between (( and ))
- Add nl_try_brace, nl_catch_brace, nl_finally_brace, nl_brace_catch,
nl_brace_finally, sp_catch_brace, sp_brace_catch, sp_finally_brace,
sp_brace_finally, sp_try_brace
- Treat typedef functions the same as other function for param aligning
- Turn any word after a enum/struct/union into a type
- Add sp_getset_brace and nl_getset_brace
- Add mod_full_paren_if_bool
- Add nl_before_c_comment and nl_before_cpp_comment
- Fix nl_class_leave_one_liners
- Add nl_ds_struct_enum_cmt
- Add sp_balance_nested_parens
Changes in uncrustify-0.31 (24-Jan-2007)
-------------------------------------------------------------------------------
- Improve mixed tab indent / space align
- Try to fix spacing around embedded comments
- Add indent_access_spec
- Add __func__ and __FUNCTION__ detection for non-C99 compilers
- General code cleanup (Thanks Tom!)
- Add indent_xml_string
- Add align_proto_var_def to align variables in prototypes
Changes in uncrustify-0.30 (24-Nov-2006)
-------------------------------------------------------------------------------
- Use environment variable UNCRUSTIFY_CONFIG if no '-c' option (non-WIN32)
- Default to ~/.uncrustify.cfg if no '-c' option and no env var (non-WIN32)
- Add '-q' option to the usage info
- Added initial embedded SQL support
- Many bug fixes
- New options: indent_braces_no_func, indent_sing_line_comments, nl_before_if,
nl_before_for, nl_after_for, nl_before_while, nl_after_while,
nl_before_switch, nl_after_switch, nl_before_do, nl_after_do
Changes in uncrustify-0.29 (26-Oct-2006)
-------------------------------------------------------------------------------
- Add support for the 'Klaus' style
- Fix a bunch of c++ template bugs
- Add option nl_class_leave_one_liners
Changes in uncrustify-0.28 (06-Oct-2006)
-------------------------------------------------------------------------------
- Fix D range array detection a[1..4] => a[1 .. 4]
- Fix D delegate variable aligning
- More documentation updates (thanks Dirk!)
- New options: nl_after_semicolon and nl_after_open_brace
Changes in uncrustify-0.27 (23-Sep-2006)
-------------------------------------------------------------------------------
- Improve template detection again (allow CT_TYPE in a template)
- Fix bad formatting in "[ABC * 123]" and "[0xf & *val]"
- Add --replace option to convert files in-place
- Use a map for the options
- Major configuration/option cleanup
- add -o option to write to a file instead of stdout
Changes in uncrustify-0.26 (09-Sep-2006) (removed a number from the version)
-------------------------------------------------------------------------------
- Fix preprocessor labeling WRT comments
- Fix an indenting problem
- Add sp_after_byref
- Fix alignment of global variable definitions
- Fix detection of deref inside squares: a[*p]
- Fix a weird indenting bug
- Fix D template ! spacing
- Add sp_after_operator
- Add nl_template_class
- Add start to detailed docs inside the program
- Add --prefix and --suffix command line args
- Add align_enum_equ_thresh and fix align_enum_equ_span
- Fix formatting of function typedefs
- Add indent_member
- Simplify the indenting code a bit
- Improve type_cast stuff (ie, dynamic_cast<> or static_cast<>) and templates
Changes in uncrustify-0.0.25 (26-Aug-2006)
-------------------------------------------------------------------------------
- Add sp_after_ptr_star, sp_before_ptr_star, sp_between_ptr_star
- Fix D tokenizing for numbers and strings
- Fix a bug with cast detection and with nl_after_func_proto
- Improve template detection
- Rename nl_bool_pos to pos_bool
- Add pos_class_colon
- Add indent_class_colon
- Add nl_class_init_args
- Add nl_collapse_empty_body
- Add indent_square_nl
Changes in uncrustify-0.0.24 (05-Aug-2006)
-------------------------------------------------------------------------------
- Add initial PAWN support (thanks to Derek Evan Mart for testing and motivation!)
- Fix parsing of numbers like 10.0
- Fix double negative (- -x) vs (--x)
- Add ability to convert C++ (//) comments into C (/* */) comments
- Fix usage of indent_columns; output_tab_size is only needed if using tabs
- Add first small step in code width handling
- New options: sp_fparen_brace, sp_macro, sp_marco_func,
nl_elseif_brace, mod_pawn_semicolon, cmt_cpp_to_c, cmt_cpp_group,
cmt_cpp_nl_start, cmt_cpp_nl_end, sp_after_tag
Changes in uncrustify-0.0.23 (22-Jul-2006)
-------------------------------------------------------------------------------
- Fix some crash bugs and some formatting problems
- Fix Windows CRLF issues (binary vs text mode)
- Add indent_class and indent_namespace
- Add nl_class_brace and nl_namespace_brace
- Add handling of operator stuff in CPP
- Improve the test script a bit
- Add sp_inside_fparens
- Add ability to define types in the config file
- Started work on improving #ifdef handling by evaluating the preprocessor
Changes in uncrustify-0.0.22 (15-Jul-2006)
-------------------------------------------------------------------------------
- Implement nl_max, nl_before_block_comment, nl_after_func_body,
nl_after_func_proto, nl_after_func_proto_group
- Improve detection of function prototypes
- Improve marking of function prototype-related tokens
- Improve variable definition aligning
- fix align_var_def threshold
- Improve handling of "private:" style stuff
- Handle types with "::" in them
- Add preprocessor spacing and indenting
- Fix tab indenting style 1 (tab indent, space align)
- Improve multi-line comment formatting
Changes in uncrustify-0.0.21 (01-Jul-2006)
-------------------------------------------------------------------------------
- Clean up some memory leaks & uninitialized variables
- Add option to process multiple files at once
- Change the newlines values from [UNIX, DOS, MAC] to [LF, CRLF, CR]
- Properly mark the parens for functions
- Implement control over the format of the function prototypes and definitions
- Update configuration.txt
Changes in uncrustify-0.0.20 (10-Jun-2006)
-------------------------------------------------------------------------------
- Fix cast on a sizeof: (INT32)sizeof(x)
- Fix this: "#define SOME_JUNK /*lint -e123 */(const mytype_t *)-1"
- Don't align function typedefs (fixed again)
- Finally fix the DOS and MAC line-ending support
- Add line-ending autodetection
- Add Windows build support
Changes in uncrustify-0.0.19 (27-May-2006)
-------------------------------------------------------------------------------
- Fix C/C++/C# casts
- Improve D casts
Changes in uncrustify-0.0.18 (12-May-2006)
-------------------------------------------------------------------------------
- Add nl_bool_pos to move boolean ops between eol and sol
- Improve C99 array initializer aligning/formatting
- Replace nl_eat_start, nl_eat_end, and nl_eof_min with nl_start_of_file,
nl_start_of_file_min, nl_end_of_file, and nl_end_of_file_min
Changes in uncrustify-0.0.17 (03-May-2006)
-------------------------------------------------------------------------------
- Add nl_eat_start to remove newlines at the start of the file
- Add nl_eat_end to remove newlines at the end of the file
- Add nl_eof_min to set the minimum number of newlines at the end of file
- Add newlines setting to configure the newline output
- Add '-q' command line option to turn off logging
- Fix bug in nl_func_var_def_blk handling
Changes in uncrustify-0.0.16 (21-Apr-2006)
-------------------------------------------------------------------------------
- Add a stack alignment helper class
- Improve typedef formatting
- Add aligning thresholds for typedefs and assignments
- update the automake/autoconf stuff
Changes in uncrustify-0.0.15 (14-Apr-2006)
-------------------------------------------------------------------------------
- Switch to C++
- Improve C++ template formatting
- Improve C++ class handling
Changes in uncrustify-0.0.14 (09-Apr-2006)
-------------------------------------------------------------------------------
- Read from stdin if no file is specified
- Build on OS X
Changes in uncrustify-0.0.13 (07-Apr-2006)
-------------------------------------------------------------------------------
- Rewrite the indent code
- Fix a bunch of small problems with C casts
- Rename a few files
- Add more tests
Changes in uncrustify-0.0.12 (30-Mar-2006)
-------------------------------------------------------------------------------
- Add support for D template format "Foo!(int,char)"
- Fix a format bug in a log
- Fix elipsis spacing (remove space before elipsis)
- Don't use getopt as it isn't all that portable (at least for QNX)
- Rename some files
- Bugfix: don't add virtual braces on the same line as a preprocessor
- Bugfix: clean up indexed array aligning
Changes in uncrustify-0.0.11 (27-Mar-2006)
-------------------------------------------------------------------------------
- fix brace analysis on else statement
- allow options to depend on other options
- set the parent for case braces
- handle/indent the C++ class colon thingy
- handle C++ constructors and function defs
- special handling for '::' operator
- implement case indenting
- handle cout '<<' indenting
- handle DOS and MAC line endings in multiline comments
- rename some indent options
- fix ifndef handling
- fix volatile handling
- fix private/public/protected 'label' handling
- alternate punctuators are also part of C++
- handle C++ wide L"strings"
- improve C# get/set handling
- fix spacing bug "a++;" vs "a ++;" due to statement start misdetect
- add nl_assign_brace
- fix parent of vbrace close
- more test enhancements
Changes in uncrustify-0.0.10 (22-Mar-2006)
-------------------------------------------------------------------------------
- Complete rewrite of tokenizer and brace parser
- Added support for D nested comments
- Fixed some virtual brace bugs
- Added some documentation for the brace parsing stuff
- Add more tests to improve coverage (still lacking)
Changes in uncrustify-0.0.9 (18-Mar-2006)
-------------------------------------------------------------------------------
- Major enhancements for D
- Add handling for special "[]" sequence for C#/D
- add some more tests
Changes in uncrustify-0.0.8 (13-Mar-2006)
-------------------------------------------------------------------------------
- update TODO list
- add a threshold for brace removal
- improve brace removal
- keep track of whether a token follows a tab
- add option to preserve non-indenting tabs
- major keyword and operator cleanup for C++, C#, D, and Java
- add 'string' variants for ARITH, COMPARE, etc
- add C# get/set detection
- add template <type> detection
- add colon handling for class stuff and anonymous bitfields
- pop the whole indent stack when leaving a preprocessor
- fix embedded return handling in C#, ie: [ this should return negative ]
- fix a problem with the ifdef frame stack (still a problem lurking...)
- handle literal strings (C#)
- handle non-keyword words (C#) -- example: @if @switch
- set the parent on 'do' braces
- handle C# #region preprocessor stuff
- partially implement align on tabstop
- fix virtual brace spacing (no more "else return;" => "elsereturn;")
- add some more tests