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($_); + } +}