In buildtoc, fold multiple newlines just before output.
authorNicholas Clark <nick@ccl4.org>
Fri, 21 Jan 2011 14:33:46 +0000 (14:33 +0000)
committerNicholas Clark <nick@ccl4.org>
Fri, 21 Jan 2011 15:06:46 +0000 (15:06 +0000)
Previously output() tracked newlines, and ignored more than 2 in a row. That
used more code, and a "global" variable for state.

pod/buildtoc

index 2131bcd..af9f525 100644 (file)
@@ -406,6 +406,7 @@ EOPOD2B
   output $_;
   output "\n";                    # flush $LINE
 
+  $OUT =~ s/\n{3,}/\n\n/g;
   open OUT, '>', $filename or die "$0: creating $filename failed: $!";
   print OUT $OUT;
   close OUT;
@@ -493,7 +494,6 @@ sub unitem {
     $initem = 0;
 }
 
-my $NEWLINE = 0;       # how many newlines have we seen recently
 my $LINE;              # what remains to be printed
 
 sub output ($) {
@@ -503,14 +503,10 @@ sub output ($) {
                $OUT .=  wrap('', '', $LINE);
                $LINE = '';
            }
-           if (($NEWLINE) < 2) {
-               $OUT .= $_;
-               $NEWLINE++;
-           }
+           $OUT .= $_;
        }
        elsif (/\S/) {
            $LINE .= $_;
-           $NEWLINE = 0;
        }
     }
 }