Meta/indent-cpp-directive: C preprocessor directive indentation rules
Junio C Hamano committed
Jul 15, 2025 at 14:19 UTC
f4840fd2243ec8d6fc6cd985bcc4c891bd728c1b
1 file changed
+32
indent-cpp-directive.perl
+32
new file mode 100755
index 0000000000..d87180f340
--- /dev/null
+++ b/indent-cpp-directive.perl
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+my $indent_level = -1;
+
+sub emit {
+ my $indent = $indent_level <= 0 ? "" : " " x $indent_level;
+ printf "#%s%s", $indent, $_;
+}
+
+while (<>) {
+ unless (s/^\s*#\s*//) {
+ print;
+ next;
+ }
+
+ if (/^if/) {
+ emit($_);
+ $indent_level++;
+ } elsif (/^el/) {
+ $indent_level--;
+ emit($_);
+ $indent_level++;
+ } elsif (/^endif/) {
+ $indent_level--;
+ emit($_);
+ } else {
+ emit($_);
+ }
+}