#
# My favorite format
#

indent_with_tabs		= 0		# 1=indent to level only, 2=indent with tabs
input_tab_size			= 8		# original tab size
output_tab_size			= 3		# new tab size
indent_columns			= output_tab_size
indent_label			= 2		# pos: absolute col, neg: relative column
indent_align_string		= False		# align broken strings
indent_brace			= 0

nl_assign_brace			= add		# "= {" vs "= \n {"
nl_enum_brace			= add		# "enum {" vs "enum \n {"
nl_union_brace			= add		# "union {" vs "union \n {"
nl_struct_brace			= add		# "struct {" vs "struct \n {"
nl_do_brace			= add		# "do {" vs "do \n {"
nl_if_brace			= add		# "if () {" vs "if () \n {"
nl_for_brace			= add		# "for () {" vs "for () \n {"
nl_else_brace			= add		# "else {" vs "else \n {"
nl_while_brace			= add		# "while () {" vs "while () \n {"
nl_switch_brace			= add		# "switch () {" vs "switch () \n {"
nl_func_var_def_blk		= 1
nl_before_case			= 1
nl_fcall_brace			= add		# "foo() {" vs "foo()\n{"
nl_fdef_brace			= add		# "int foo() {" vs "int foo()\n{"
nl_after_return			= TRUE
nl_brace_while			= remove
nl_brace_else			= add
nl_squeeze_ifdef		= TRUE

mod_paren_on_return		= add		# "return 1;" vs "return (1);"
mod_full_brace_if		= add		# "if (a) a--;" vs "if (a) { a--; }"
mod_full_brace_for		= add		# "for () a--;" vs "for () { a--; }"
mod_full_brace_do		= add		# "do a--; while ();" vs "do { a--; } while ();"
mod_full_brace_while		= add		# "while (a) a--;" vs "while (a) { a--; }"

sp_before_byref			= remove
sp_before_semi			= remove
sp_paren_paren			= remove	# space between (( and ))
sp_return_paren			= remove	# "return (1);" vs "return(1);"
sp_sizeof_paren			= remove	# "sizeof (int)" vs "sizeof(int)"
sp_before_sparen		= force		# "if (" vs "if("
sp_after_sparen			= force		# "if () {" vs "if (){"
sp_after_cast			= remove	# "(int) a" vs "(int)a"
sp_inside_braces		= force		# "{ 1 }" vs "{1}"
sp_inside_braces_struct		= force		# "{ 1 }" vs "{1}"
sp_inside_braces_enum		= force		# "{ 1 }" vs "{1}"
sp_inside_paren			= remove
sp_inside_fparen		= remove
sp_inside_sparen		= remove
sp_inside_square		= remove
#sp_type_func			= ignore
sp_assign			= force
sp_arith			= force
sp_bool				= force
sp_compare			= force
sp_assign			= force
sp_after_comma			= force
sp_func_def_paren		= remove	# "int foo (){" vs "int foo(){"
sp_func_call_paren		= remove	# "foo (" vs "foo("
sp_func_proto_paren		= remove	# "int foo ();" vs "int foo();"

align_with_tabs			= FALSE		# use tabs to align
align_on_tabstop		= FALSE		# align on tabstops

align_enum_equ_span		= 4

align_nl_cont			= TRUE
align_func_params               = FALSE
align_var_def_span		= 2
align_var_def_thresh		= 16
align_var_def_inline		= TRUE
align_var_def_star_style	= 0
align_var_def_colon		= TRUE
align_assign_span		= 2
align_assign_thresh		= 3
align_struct_init_span		= 3
align_var_struct_span		= 3
align_var_struct_thresh		= 16
align_right_cmt_span		= 3
align_pp_define_span		= 3
align_pp_define_gap		= 4
align_number_left		= TRUE
align_typedef_span		= 5
align_typedef_gap		= 3

cmt_star_cont			= TRUE

eat_blanks_before_close_brace	= TRUE
eat_blanks_after_open_brace	= TRUE

