summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-05-29 19:53:46 (GMT)
committerFred Drake <fdrake@acm.org>2001-05-29 19:53:46 (GMT)
commit9a374186fcb824ec1cc022348d2a7c77316b54cc (patch)
treefb392fe9fedaf900b4a39c772fd4a7ad7549bfa6
parent96a2a80065603746e655ec4e7f2d6e488a5b9b36 (diff)
downloadcpython-9a374186fcb824ec1cc022348d2a7c77316b54cc.zip
cpython-9a374186fcb824ec1cc022348d2a7c77316b54cc.tar.gz
cpython-9a374186fcb824ec1cc022348d2a7c77316b54cc.tar.bz2
New solution to the "Someone stuck a colon in that filename!" problem:
Allow colons in the labels used for internal references, but do not expose them when generating filename.
-rwxr-xr-xDoc/tools/node2label.pl13
1 files changed, 10 insertions, 3 deletions
diff --git a/Doc/tools/node2label.pl b/Doc/tools/node2label.pl
index f8bc1a6..69f396a 100755
--- a/Doc/tools/node2label.pl
+++ b/Doc/tools/node2label.pl
@@ -10,9 +10,16 @@ require "labels.pl";
my $key;
# sort so that we get a consistent assignment for nodes with multiple labels
foreach $label (sort keys %external_labels) {
- $key = $external_labels{$label};
- $key =~ s|^/||;
- $nodes{$key} = $label;
+ #
+ # If the label can't be used as a filename on non-Unix platforms,
+ # skip it. Such labels may be used internally within the documentation,
+ # but will never be used for filename generation.
+ #
+ if ($label =~ /^([-.a-zA-Z0-9]+)$/) {
+ $key = $external_labels{$label};
+ $key =~ s|^/||;
+ $nodes{$key} = $label;
+ }
}
# This adds the "internal" labels added for indexing. These labels will not