From 57e52ef07613799632452ed599650aab642d783f Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Fri, 15 Jun 2001 21:31:57 +0000 Subject: [PATCH] Implement the \verbatiminput LaTeX macro; this contains more magic than it should, but only enough that LaTeX2HTML doesn't bite us. --- Doc/perl/python.perl | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl index 39c99317e05..e5cfa6776c4 100644 --- a/Doc/perl/python.perl +++ b/Doc/perl/python.perl @@ -1660,5 +1660,51 @@ sub do_env_alltt { $_; } +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/<>/\>\&\#62;/g; + # Just normal re-writes... + $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 = 'Could not locate requested file $fname!\n'; + } + return ($alltt_start + . $text + . $alltt_end + . $_); +} 1; # This must be the last line