Implement the \verbatiminput LaTeX macro; this contains more magic than
it should, but only enough that LaTeX2HTML doesn't bite us.
diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl
index 39c9931..e5cfa677 100644
--- a/Doc/perl/python.perl
+++ b/Doc/perl/python.perl
@@ -1660,5 +1660,51 @@
$_;
}
+sub do_cmd_verbatiminput{
+ local($_) = @_;
+ my $fname = next_argument();
+ my $file;
+ my $found = 0;
+ my $texpath;
+ # Search TEXINPUTS for the input file, the way we're supposed to:
+ foreach $texpath (split /$envkey/, $TEXINPUTS) {
+ $file = "$texpath$dd$fname";
+ last if ($found = (-f $file));
+ }
+ my $text;
+ if ($found) {
+ open(MYFILE, "<$file") || die "\n$!\n";
+ read(MYFILE, $text, 1024*1024);
+ close(MYFILE);
+ #
+ # These rewrites convert the raw text to something that will
+ # be properly visible as HTML and also will pass through the
+ # vagaries of conversion through LaTeX2HTML. The order in
+ # which the specific rewrites are performed is significant.
+ #
+ $text =~ s/\&/\&/g;
+ # These need to happen before the normal < and > re-writes,
+ # since we need to avoid LaTeX2HTML's attempt to perform
+ # ligature processing without regard to context (since it
+ # doesn't have font information).
+ $text =~ s/--/-&\#45;/g;
+ $text =~ s/<</\<\&\#60;/g;
+ $text =~ s/>>/\>\&\#62;/g;
+ # Just normal re-writes...
+ $text =~ s/</\</g;
+ $text =~ s/>/\>/g;
+ # These last isn't needed for the HTML, but is needed to get
+ # past LaTeX2HTML processing TeX macros. We use \ instead
+ # of / since many browsers don't support that.
+ $text =~ s/\\/\&\#92;/g;
+ }
+ else {
+ $text = '<b>Could not locate requested file <i>$fname</i>!</b>\n';
+ }
+ return ($alltt_start
+ . $text
+ . $alltt_end
+ . $_);
+}
1; # This must be the last line