diff options
Diffstat (limited to 'runoff1')
| -rwxr-xr-x | runoff1 | 108 | 
1 files changed, 0 insertions, 108 deletions
| diff --git a/runoff1 b/runoff1 deleted file mode 100755 index 532f844..0000000 --- a/runoff1 +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/perl - -$n = 0; -$v = 0; -if($ARGV[0] eq "-v") { -	$v = 1; -	shift @ARGV; -} -if($ARGV[0] eq "-n") { -	$n = $ARGV[1]; -	shift @ARGV; -	shift @ARGV; -} -$n = int(($n+49)/50)*50 - 1; - -$file = $ARGV[0]; -@lines = <>; -$linenum = 0; -foreach (@lines) { -	$linenum++; -	chomp; -	s/\s+$//; -	if(length() >= 75){ -		print STDERR "$file:$linenum: line too long\n"; -	} -} -@outlines = (); -$nextout = 0; - -for($i=0; $i<@lines; ){ -	# Skip leading blank lines. -	$i++ while $i<@lines && $lines[$i] =~ /^$/; -	last if $i>=@lines; - -	# If the rest of the file fits, use the whole thing. -	if(@lines <= $i+50 && !grep { /PAGEBREAK/ } @lines){ -		$breakbefore = @lines; -	}else{ -		# Find a good next page break; -		# Hope for end of function. -		# but settle for a blank line (but not first blank line -		# in function, which comes after variable declarations). -		$breakbefore = $i; -		$lastblank = $i; -		$sawbrace = 0; -		$breaksize = 15;  # 15 lines to get to function -		for($j=$i; $j<$i+50 && $j < @lines; $j++){ -			if($lines[$j] =~ /PAGEBREAK!/){ -				$lines[$j] = ""; -				$breakbefore = $j; -				$breaksize = 100; -				last; -			} -			if($lines[$j] =~ /PAGEBREAK:\s*([0-9]+)/){ -				$breaksize = $1; -				$breakbefore = $j; -				$lines[$j] = ""; -			} -			if($lines[$j] =~ /^};?$/){ -				$breakbefore = $j+1; -				$breaksize = 15; -			} -			if($lines[$j] =~ /^{$/){ -				$sawbrace = 1; -			} -			if($lines[$j] =~ /^$/){ -				if($sawbrace){ -					$sawbrace = 0; -				}else{ -					$lastblank = $j; -				} -			} -		} -		if($j<@lines && $lines[$j] =~ /^$/){ -			$lastblank = $j; -		} - -		# If we are not putting enough on a page, try a blank line. -		if($breakbefore - $i < 50 - $breaksize && $lastblank > $breakbefore && $lastblank >= $i+50 - 5){ -			if($v){ -				print STDERR "breakbefore $breakbefore i $i breaksize $breaksize\n"; -			} -			$breakbefore = $lastblank; -			$breaksize = 5;  # only 5 lines to get to blank line -		} - -		# If we are not putting enough on a page, force a full page. -		if($breakbefore - $i < 50 - $breaksize && $breakbefore != @lines){ -			$breakbefore = $i + 50; -			$breakbefore = @lines if @lines < $breakbefore; -		} - -		if($breakbefore < $i+2){ -			$breakbefore = $i+2; -		} -	} - -	# Emit the page. -	$i50 = $i + 50; -	for(; $i<$breakbefore; $i++){ -		printf "%04d %s\n", ++$n, $lines[$i]; -	} - -	# Finish page -	for($j=$i; $j<$i50; $j++){ -		printf "%04d \n", ++$n; -	} -} | 
