blob: 1d643dbb49077efc9f4b6a58f7df655422012961 [file] [log] [blame]
Fred Drake9acafa81998-02-18 14:52:24 +00001#!/depot/gnu/plat/bin/perl -i
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +00002
3# read the labels, then reverse the mappings
4require "labels.pl";
5
6%nodes = ();
Jeremy Hylton9caa1101998-02-18 16:10:22 +00007# sort so that we get a consistent assignment for nodes with multiple labels
8foreach $label (sort keys %external_labels) {
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +00009 $nodes{$external_labels{$label}} = $label;
10}
11
12# collect labels that have been used
13%newnames = ();
14
15while (<>) {
16 # don't want to do one s/// per line per node
17 # so look for lines with hrefs, then do s/// on nodes present
18 if (/HREF=\"([^\#\"]*)html[\#\"]/) {
19 @parts = split(/HREF\=\"/);
20 shift @parts;
21 for $node (@parts) {
22 $node =~ s/[\#\"].*$//g;
23 chop($node);
24 if (defined($nodes{$node})) {
25 $label = $nodes{$node};
26 if (s/HREF=\"$node([\#\"])/HREF=\"$label.html$1/g) {
27 s/HREF=\"$label.html#SECTION\d+/HREF=\"$label.html/g;
28 $newnames{$node} = "$label.html";
29 }
30 }
31 }
32 }
33 print;
34}
35
36foreach $oldname (keys %newnames) {
Fred Drake9acafa81998-02-18 14:52:24 +000037# or ln -s
38 system("mv $oldname $newnames{$oldname}");
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +000039}