diff options
Diffstat (limited to 'Documentation/lint-delimited-sections.perl')
| -rwxr-xr-x | Documentation/lint-delimited-sections.perl | 48 | 
1 files changed, 48 insertions, 0 deletions
diff --git a/Documentation/lint-delimited-sections.perl b/Documentation/lint-delimited-sections.perl new file mode 100755 index 0000000000..140b852e5d --- /dev/null +++ b/Documentation/lint-delimited-sections.perl @@ -0,0 +1,48 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +my $exit_code = 0; +sub report { +	my ($msg) = @_; +	print STDERR "$ARGV:$.: $msg\n"; +	$exit_code = 1; +} + +my $line_length = 0; +my $in_section = 0; +my $section_header = ""; + + +while (my $line = <>) { +	if (($line =~ /^\+?$/) || +	    ($line =~ /^\[.*\]$/) || +	    ($line =~ /^ifdef::/)) { +		$line_length = 0; +	} elsif ($line =~ /^[^-.]/) { +		$line_length = length($line); +	} elsif (($line =~ /^-{3,}$/) || ($line =~ /^\.{3,}$/)) { +		if ($in_section) { +			if ($line eq $section_header) { +				$in_section = 0; +			} +		next; +		} +		if ($line_length == 0) { +			$in_section = 1; +			$section_header = $line; +			next; +		} +		if (($line_length != 0) && (length($line) != $line_length)) { +			report("section delimiter not preceded by an empty line"); +		} +		$line_length = 0; +	} +} + +if ($in_section) { +	report("section not finished"); +} + +exit $exit_code;  | 
