update pod2man, pod2text and related Pod:: modules with the
[p5sagit/p5-mst-13.2.git] / pod / pod2latex.PL
index ebace22..feed98e 100644 (file)
@@ -2,6 +2,7 @@
 
 use Config;
 use File::Basename qw(&basename &dirname);
+use Cwd;
 
 # List explicitly here the variables you want Configure to
 # generate.  Metaconfig only looks for shell variables, so you
@@ -12,10 +13,10 @@ use File::Basename qw(&basename &dirname);
 
 # This forces PL files to create target in same directory as PL file.
 # This is so that make depend always knows where to find PL derivatives.
-chdir(dirname($0));
-($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$//
-       if ($^O eq 'VMS' or $^O eq 'os2');  # "case-forgiving"
+$origdir = cwd;
+chdir dirname($0);
+$file = basename($0, '.PL');
+$file .= '.com' if $^O eq 'VMS';
 
 open OUT,">$file" or die "Can't create $file: $!";
 
@@ -124,11 +125,21 @@ open(LATEX,">$pod.tex");
 &do_hdr();
 
 $cutting = 1;
+$begun = "";
 while (<POD>) {
     if ($cutting) {
        next unless /^=/;
        $cutting = 0;
     }
+    if ($begun) {
+       if (/^=end\s+$begun/) {
+           $begun = "";
+       }
+       elsif ($begun =~ /^(tex|latex)$/) {
+           print LATEX $_;
+       }
+       next;
+    }
     chop;
     length || (print LATEX  "\n") && next;
 
@@ -146,6 +157,22 @@ while (<POD>) {
        next;
     }
 
+    if (/^=for\s+(\S+)\s*/s) {
+       if ($1 eq "tex" or $1 eq "latex") {
+           print LATEX $',"\n";
+       } else {
+           # ignore unknown for
+       }
+       next;
+    }
+    elsif (/^=begin\s+(\S+)\s*/s) {
+       $begun = $1;
+       if ($1 eq "tex" or $1 eq "latex") {
+           print LATEX $'."\n";
+       }
+       next;
+    }
+
     # preserve '=item' line with pod quotes as they are.
     if (/^=item/) {
        ($bareitem = $_) =~ s/^=item\s*//;
@@ -447,6 +474,12 @@ while (<POD>) {
          noindex:
            ;
        }
+       elsif ($cmd eq 'pod') {
+           ;   # recognise the pod directive, as no op (hs)
+       }
+       elsif ($cmd eq 'pod') {
+           ;    # recognise the pod directive, as no op (hs)
+       }
        else {
            warn "Unrecognized directive: $cmd\n";
        }
@@ -651,7 +684,7 @@ BEGIN {
     "otilde"   =>      "\\~{o}",       #   small o, tilde
     "Ouml"     =>      '\\"{O}',       #   capital O, dieresis or umlaut mark
     "ouml"     =>      '\\"{o}',       #   small o, dieresis or umlaut mark
-    "szlig"    =>      '\\ss',         #   small sharp s, German (sz ligature)
+    "szlig"    =>      '\\ss{}',       #   small sharp s, German (sz ligature)
     "THORN"    =>      '\\L',          #   capital THORN, Icelandic
     "thorn"    =>      '\\l',,         #   small thorn, Icelandic
     "Uacute"   =>      "\\'{U}",       #   capital U, acute accent
@@ -672,3 +705,4 @@ BEGIN {
 close OUT or die "Can't close $file: $!";
 chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
 exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
+chdir $origdir;