input_tab_size = 2
output_tab_size = 2

indent_columns = 2
indent_with_tabs = 0
indent_case_brace = 2
indent_label=-16

code_width=80
#cmd_width=80

# Leave most comments alone for now
cmt_indent_multi=false
sp_cmt_cpp_start=add

sp_not=add

sp_func_call_user_paren_paren=remove
sp_inside_fparen=remove
sp_after_cast=add

ls_for_split_full=true
ls_func_split_full=true
ls_code_width=true

# Arithmetic operations in wrapped expressions should be at the start
# of the line.
pos_arith=lead

# Fully parenthesize boolean exprs
mod_full_paren_if_bool=false

# Braces should be on their own line
nl_fdef_brace=add
nl_enum_brace=add
nl_struct_brace=add
nl_union_brace=add
nl_if_brace=add
nl_brace_else=add
nl_elseif_brace=add
nl_while_brace=add
nl_switch_brace=add

# no newline between "else" and "if"
nl_else_if=remove

nl_func_paren=remove
nl_assign_brace=remove

# No extra newlines that cause noisy diffs
nl_start_of_file=remove
nl_after_func_proto = 2
nl_after_func_body = 3
# If there's no new line, it's not a text file!
nl_end_of_file=add
nl_max_blank_in_func = 3
nl_max = 3

sp_inside_paren = remove

sp_arith = add
sp_arith_additive = add

# We want spaces before and after "="
sp_before_assign = add
sp_after_assign = add

# we want "char *foo;"
sp_after_ptr_star = remove
sp_between_ptr_star = remove

# we want "if (foo) { ... }"
sp_before_sparen = add

sp_inside_fparen = remove
sp_inside_sparen = remove

# add space before function call and decl: "foo (x)"
sp_func_call_paren = add
sp_func_proto_paren = add
sp_func_proto_paren_empty = add
sp_func_def_paren = add
sp_func_def_paren_empty = add

# We'd want it for "if ( (foo) || (bar) )", but not for "if (m())",
# so as uncrustify doesn't give exactly what we want => ignore
sp_paren_paren = ignore
sp_inside_paren = remove
sp_bool = force

nl_func_type_name = force
#nl_branch_else = add
nl_else_brace = add
nl_elseif_brace = add
nl_for_brace = add
