Apparently the code to forestall Tk eating events was too aggressive (Tk user input...
[python/dscho.git] / Doc / tools / node2label.pl
blobf8bc1a68e6bf2f51764a05b696e358436a2324c8
1 #! /usr/bin/env perl
3 use English;
4 $INPLACE_EDIT = '';
6 # read the labels, then reverse the mappings
7 require "labels.pl";
9 %nodes = ();
10 my $key;
11 # sort so that we get a consistent assignment for nodes with multiple labels
12 foreach $label (sort keys %external_labels) {
13 $key = $external_labels{$label};
14 $key =~ s|^/||;
15 $nodes{$key} = $label;
18 # This adds the "internal" labels added for indexing. These labels will not
19 # be used for file names.
20 require "intlabels.pl";
21 foreach $label (keys %internal_labels) {
22 $key = $internal_labels{$label};
23 $key =~ s|^/||;
24 if (defined($nodes{$key})) {
25 $nodes{$label} = $nodes{$key};
29 # collect labels that have been used
30 %newnames = ();
32 while (<>) {
33 # don't want to do one s/// per line per node
34 # so look for lines with hrefs, then do s/// on nodes present
35 if (/(HREF|href)=[\"\']([^\#\"\']*)html[\#\"\']/) {
36 @parts = split(/(HREF|href)\=[\"\']/);
37 shift @parts;
38 for $node (@parts) {
39 $node =~ s/[\#\"\'].*$//g;
40 chop($node);
41 if (defined($nodes{$node})) {
42 $label = $nodes{$node};
43 if (s/(HREF|href)=([\"\'])$node([\#\"\'])/href=$2$label.html$3/g) {
44 s/(HREF|href)=([\"\'])$label.html/href=$2$label.html/g;
45 $newnames{$node} = "$label.html";
50 print;
53 foreach $oldname (keys %newnames) {
54 rename($oldname, $newnames{$oldname});