summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-06-15 21:31:57 +0000
committerFred Drake <fdrake@acm.org>2001-06-15 21:31:57 +0000
commitbb6ee84632b64e26e2b67fd28790cb592076ece3 (patch)
tree6c315e27d9d44c9232a3b93173e3556161a213b5
parent065e21ecd768c600cd61a00496f11c07e3c427d8 (diff)
downloadcpython-bb6ee84632b64e26e2b67fd28790cb592076ece3.tar.gz
Implement the \verbatiminput LaTeX macro; this contains more magic than
it should, but only enough that LaTeX2HTML doesn't bite us.
-rw-r--r--Doc/perl/python.perl46
1 files changed, 46 insertions, 0 deletions
diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl
index 39c99317e0..e5cfa6776c 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/\&/\&amp;/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/<</\&lt;\&\#60;/g;
+ $text =~ s/>>/\&gt;\&\#62;/g;
+ # Just normal re-writes...
+ $text =~ s/</\&lt;/g;
+ $text =~ s/>/\&gt;/g;
+ # These last isn't needed for the HTML, but is needed to get
+ # past LaTeX2HTML processing TeX macros. We use &#92; instead
+ # of &sol; 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