diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl
index ae0d7b1a24..98603c7f17 100644
--- a/Doc/perl/python.perl
+++ b/Doc/perl/python.perl
@@ -8,6 +8,8 @@
package main;
+use File::Basename;
+
sub next_argument{
my $param;
@@ -23,6 +25,30 @@ sub next_optional_argument{
return $param;
}
+sub make_icon_filename($){
+ my($myname, $mydir, $myext) = fileparse(@_[0], '\..*');
+ chop $mydir;
+ if ($mydir eq '.') {
+ $mydir = $ICONSERVER;
+ }
+ $myext = ".$IMAGE_TYPE"
+ unless $myext;
+ return "$mydir$dd$myname$myext";
+}
+
+$OFF_SITE_LINK_ICON = '';
+
+sub get_link_icon($){
+ my $url = @_[0];
+ if ($OFF_SITE_LINK_ICON && ($url =~ /^[-a-zA-Z0-9.]+:/)) {
+ # absolute URL; assume it points off-site
+ my $icon = make_icon_filename($OFF_SITE_LINK_ICON);
+ return (" ");
+ }
+ return '';
+}
# This is a fairly simple hack; it supports \let when it is used to create
# (or redefine) a macro to exactly be some other macro: \let\newname=\oldname.
@@ -211,8 +237,9 @@ sub do_cmd_refmodule{
sub do_cmd_newsgroup{
local($_) = @_;
my $newsgroup = next_argument();
+ my $icon = get_link_icon("news:$newsgroup");
my $stuff = ""
- . "$newsgroup";
+ . "$newsgroup$icon";
return $stuff . $_;
}
@@ -233,8 +260,9 @@ sub do_cmd_url{
# use the URL as both text and hyperlink
local($_) = @_;
my $url = next_argument();
+ my $icon = get_link_icon($url);
$url =~ s/~/~/g;
- return "$url" . $_;
+ return "$url$icon" . $_;
}
sub do_cmd_manpage{
@@ -255,11 +283,12 @@ sub do_cmd_pep{
my $rfcnumber = next_argument();
my $id = "rfcref-" . ++$global{'max_id'};
my $href = get_pep_url($rfcnumber);
+ my $icon = get_link_icon($href);
# Save the reference
my $nstr = gen_index_id("Python Enhancement Proposals!PEP $rfcnumber", '');
$index{$nstr} .= make_half_href("$CURRENT_FILE#$id");
- return ("PEP $rfcnumber"
- . $_);
+ return ("PEP $rfcnumber"
+ . "$icon" . $_);
}
sub get_rfc_url{
@@ -272,23 +301,25 @@ sub do_cmd_rfc{
my $rfcnumber = next_argument();
my $id = "rfcref-" . ++$global{'max_id'};
my $href = get_rfc_url($rfcnumber);
+ my $icon = get_link_icon($href);
# Save the reference
my $nstr = gen_index_id("RFC!RFC $rfcnumber", '');
$index{$nstr} .= make_half_href("$CURRENT_FILE#$id");
- return ("RFC $rfcnumber"
- . $_);
+ return ("RFC $rfcnumber"
+ . "$icon" . $_);
}
sub do_cmd_citetitle{
local($_) = @_;
my $url = next_optional_argument();
my $title = next_argument();
+ my $icon = get_link_icon($url);
my $repl = '';
if ($url) {
$repl = ("$title");
+ . " >$title$icon");
}
else {
$repl = "$title";
@@ -632,7 +663,6 @@ $REFCOUNTS_LOADED = 0;
sub load_refcounts{
$REFCOUNTS_LOADED = 1;
- use File::Basename;
my $myname, $mydir, $myext;
($myname, $mydir, $myext) = fileparse(__FILE__, '\..*');
chop $mydir; # remove trailing '/'
@@ -1253,16 +1283,8 @@ sub make_my_titlepage() {
return $the_title;
}
-use File::Basename;
-
sub make_my_titlegraphic() {
- my($myname, $mydir, $myext) = fileparse($TITLE_PAGE_GRAPHIC, '\..*');
- chop $mydir;
- if ($mydir eq '.') {
- $mydir = $ICONSERVER;
- }
- $myext = ".$IMAGE_TYPE"
- unless $myext;
+ my $filename = make_icon_filename($TITLE_PAGE_GRAPHIC);
my $graphic = "