14 $n = int(($n+49)/50)*50 - 1;
24 print STDERR
"$file:$linenum: line too long\n";
30 for($i=0; $i<@lines; ){
31 # Skip leading blank lines.
32 $i++ while $i<@lines && $lines[$i] =~ /^$/;
35 # If the rest of the file fits, use the whole thing.
36 if(@lines <= $i+50 && !grep { /PAGEBREAK/ } @lines){
37 $breakbefore = @lines;
39 # Find a good next page break;
40 # Hope for end of function.
41 # but settle for a blank line (but not first blank line
42 # in function, which comes after variable declarations).
46 $breaksize = 15; # 15 lines to get to function
47 for($j=$i; $j<$i+50 && $j < @lines; $j++){
48 if($lines[$j] =~ /PAGEBREAK!/){
54 if($lines[$j] =~ /PAGEBREAK:\s*([0-9]+)/){
59 if($lines[$j] =~ /^};?$/){
63 if($lines[$j] =~ /^{$/){
66 if($lines[$j] =~ /^$/){
74 if($j<@lines && $lines[$j] =~ /^$/){
78 # If we are not putting enough on a page, try a blank line.
79 if($breakbefore - $i < 50 - $breaksize && $lastblank > $breakbefore && $lastblank >= $i+50 - 5){
81 print STDERR
"breakbefore $breakbefore i $i breaksize $breaksize\n";
83 $breakbefore = $lastblank;
84 $breaksize = 5; # only 5 lines to get to blank line
87 # If we are not putting enough on a page, force a full page.
88 if($breakbefore - $i < 50 - $breaksize && $breakbefore != @lines){
89 $breakbefore = $i + 50;
90 $breakbefore = @lines if @lines < $breakbefore;
93 if($breakbefore < $i+2){
100 for(; $i<$breakbefore; $i++){
101 printf "%04d %s\n", ++$n, $lines[$i];
105 for($j=$i; $j<$i50; $j++){
106 printf "%04d \n", ++$n;