@ -3164,17 +3164,40 @@ sub process {
# function brace can't be on same line, except for #defines of do while,
# or if closed on same line
if ( ( $ line =~ /$Type\s*$Ident\(.*\).*\s{/ ) and
if ( ( $ line =~ /$Type\s*$Ident\(.*\).*\s* {/ ) and
! ( $ line =~ /\#\s*define.*do\s{/ ) and ! ( $ line =~ /}/ ) ) {
ERROR ( "OPEN_BRACE" ,
"open brace '{' following function declarations go on the next line\n" . $ herecurr ) ;
if ( ERROR ( "OPEN_BRACE" ,
"open brace '{' following function declarations go on the next line\n" . $ herecurr ) &&
$ fix ) {
fix_delete_line ( $ fixlinenr , $ rawline ) ;
my $ fixed_line = $ rawline ;
$ fixed_line =~ /(^..*$Type\s*$Ident\(.*\)\s*){(.*)$/ ;
my $ line1 = $ 1 ;
my $ line2 = $ 2 ;
fix_insert_line ( $ fixlinenr , ltrim ( $ line1 ) ) ;
fix_insert_line ( $ fixlinenr , "\+{" ) ;
if ( $ line2 !~ /^\s*$/ ) {
fix_insert_line ( $ fixlinenr , "\+\t" . trim ( $ line2 ) ) ;
}
}
}
# open braces for enum, union and struct go on the same line.
if ( $ line =~ /^.\s*{/ &&
$ prevline =~ /^.\s*(?:typedef\s+)?(enum|union|struct)(?:\s+$Ident)?\s*$/ ) {
ERROR ( "OPEN_BRACE" ,
"open brace '{' following $1 go on the same line\n" . $ hereprev ) ;
if ( ERROR ( "OPEN_BRACE" ,
"open brace '{' following $1 go on the same line\n" . $ hereprev ) &&
$ fix && $ prevline =~ /^\+/ && $ line =~ /^\+/ ) {
fix_delete_line ( $ fixlinenr - 1 , $ prevrawline ) ;
fix_delete_line ( $ fixlinenr , $ rawline ) ;
my $ fixedline = rtrim ( $ prevrawline ) . " {" ;
fix_insert_line ( $ fixlinenr , $ fixedline ) ;
$ fixedline = $ rawline ;
$ fixedline =~ s/^(.\s*){\s*/$1\t/ ;
if ( $ fixedline !~ /^\+\s*$/ ) {
fix_insert_line ( $ fixlinenr , $ fixedline ) ;
}
}
}
# missing space after union, struct or enum definition