|
@@ -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
|