#
# uncrustify config file for the linux kernel
#

indent_with_tabs	= 2		# 1=indent to level only, 2=indent with tabs
input_tab_size		= 8		# original tab size
output_tab_size		= 8		# new tab size
indent_columns		= output_tab_size

indent_label		= 1		# pos: absolute col, neg: relative column


#
# inter-symbol newlines
#

nl_enum_brace		= remove	# "enum {" vs "enum \n {"
nl_union_brace		= remove	# "union {" vs "union \n {"
nl_struct_brace		= remove	# "struct {" vs "struct \n {"
nl_do_brace 		= remove	# "do {" vs "do \n {"
nl_if_brace 		= remove	# "if () {" vs "if () \n {"
nl_for_brace 		= remove	# "for () {" vs "for () \n {"
nl_else_brace 		= remove	# "else {" vs "else \n {"
nl_while_brace 		= remove	# "while () {" vs "while () \n {"
nl_switch_brace 	= remove	# "switch () {" vs "switch () \n {"
nl_brace_while		= remove	# "} while" vs "} \n while" - cuddle while
nl_brace_else		= remove	# "} else" vs "} \n else" - cuddle else
sp_brace_else		= force
sp_else_brace		= force
nl_func_var_def_blk	= 1
nl_fcall_brace		= remove	# "list_for_each() {" vs "list_for_each()\n{"
nl_fdef_brace		= add		# "int foo() {" vs "int foo()\n{"
nl_after_label_colon	= true		# "fail:\nfree(foo);" vs "fail: free(foo);"
# nl_after_return		= TRUE;
# nl_before_case	= 1


#
# Source code modifications
#

mod_paren_on_return	= remove	# "return 1;" vs "return (1);"
#mod_full_brace_if	= remove	# "if (a) a--;" vs "if (a) { a--; }"
mod_full_brace_if_chain	= true
mod_full_brace_for	= remove	# "for () a--;" vs "for () { a--; }"
mod_full_brace_do	= remove	# "do a--; while ();" vs "do { a--; } while ();"
mod_full_brace_while	= remove	# "while (a) a--;" vs "while (a) { a--; }"
mod_full_brace_nl	= 3		# don't remove if more than 3 newlines


#
# inter-character spacing options
#

sp_return_paren		= force		# "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_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();"


#
# Aligning stuff
#

align_with_tabs		= TRUE		# use tabs to align
align_on_tabstop	= TRUE 		# align on tabstops
# align_keep_tabs		= true
align_enum_equ_span	= 4		# '=' in enum definition
# align_nl_cont		= TRUE
# align_var_def_span	= 2
# align_var_def_inline	= TRUE
# align_var_def_star	= FALSE
# align_var_def_colon	= TRUE
# align_assign_span	= 1
align_struct_init_span	= 3		# align stuff in a structure init '= { }'
align_right_cmt_span	= 3
# align_pp_define_span	= 8;
# align_pp_define_gap	= 4;

cmt_star_cont = true

# indent_brace		= 0

nl_func_paren = remove
nl_func_decl_start = remove
nl_func_decl_empty = remove
nl_func_decl_args = remove
nl_func_decl_end = remove
sp_inside_paren = remove
sp_inside_square = remove
sp_inside_paren_cast = remove
sp_inside_fparen = remove
sp_inside_sparen = remove
sp_paren_paren = remove
sp_before_ptr_star = force
sp_after_ptr_star = remove
sp_between_ptr_star = remove
align_func_params = true
align_var_struct_span = 6

eat_blanks_after_open_brace   = true
eat_blanks_before_close_brace = true
pp_indent = remove

nl_start_of_file   = remove
nl_end_of_file     = force
nl_end_of_file_min = 1
nl_comment_func_def = 1
