summaryrefslogtreecommitdiffstats
path: root/indent-cpp-directive.perl
blob: d87180f3402c2f3b0decfe68bd26145ab7b42f9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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($_);
	}
}