summaryrefslogtreecommitdiffstats
path: root/scripts/whitespace.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/whitespace.pl')
-rw-r--r--scripts/whitespace.pl16
1 files changed, 16 insertions, 0 deletions
diff --git a/scripts/whitespace.pl b/scripts/whitespace.pl
index ba97873cf..0340d25fb 100644
--- a/scripts/whitespace.pl
+++ b/scripts/whitespace.pl
@@ -11,9 +11,25 @@ $source =~ s/^(\s*static\s+struct[^()\n]*)\n\s*{\s*$/$1 {/img;
$source =~ s/^(\s*union[^()\n]*)\n\s*{\s*$/$1 {/img;
$source =~ s/^(\s*static\s+union[^()\n]*)\n\s*{\s*$/$1 {/img;
$source =~ s/^(\s*class.*)\n\s*{\s*$/$1 {/img;
+# colon goes at the end of a line
$source =~ s/^(\S*::\S*.*)\n\s*: /$1 : /img;
+# odd indentations from flang-format:
+# six spaces or four spaces after tabs (for continuation strings)
$source =~ s/(?:\G|^)[ ]{6}/\t/mg;
$source =~ s/(?:\G|^)(\t*)[ ]{4}"/$1\t"/mg;
+# the next ones are rather awkward
+# they capture multi line #define and #if definded statements
+# that clang-format messes up (where does that 4 space indentation come
+# from?
+# I couldn't figure out how to make it apply to an arbitrary number of
+# intermediate lines, so I hardcoded 0 through 5 lines between the #define
+# or #id defined statements and the end of the multi line statement
+$source =~ s/^(#(?:if |)define.*)\n +([^*].*)$/$1\n\t$2/mg;
+$source =~ s/^(#(?:if |)define.*)((?:\\\n.*){1})\n +([^*].*)$/$1$2\n\t$3/mg;
+$source =~ s/^(#(?:if |)define.*)((?:\\\n.*){2})\n +([^*].*)$/$1$2\n\t$3/mg;
+$source =~ s/^(#(?:if |)define.*)((?:\\\n.*){3})\n +([^*].*)$/$1$2\n\t$3/mg;
+$source =~ s/^(#(?:if |)define.*)((?:\\\n.*){4})\n +([^*].*)$/$1$2\n\t$3/mg;
+$source =~ s/^(#(?:if |)define.*)((?:\\\n.*){5})\n +([^*].*)$/$1$2\n\t$3/mg;
# don't put line break before the last single term argument of a
# calculation
$source =~ s/(?:\G|^)(.*[+-])\n\s*(\S*\;)$/$1 $2/mg;