blob: a59d68ed59916d2499f9081ef4779d1bf5294cdc [file] [log] [blame]
Fred Drake25437691998-03-19 05:17:49 +00001#! /usr/bin/env perl
2
3use English;
4$INPLACE_EDIT = '';
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +00005
6# read the labels, then reverse the mappings
7require "labels.pl";
8
9%nodes = ();
Fred Drakee8179301998-02-26 18:49:58 +000010my $key;
Jeremy Hylton9caa1101998-02-18 16:10:22 +000011# sort so that we get a consistent assignment for nodes with multiple labels
12foreach $label (sort keys %external_labels) {
Fred Drakee8179301998-02-26 18:49:58 +000013 $key = $external_labels{$label};
14 $key =~ s|^/||;
15 $nodes{$key} = $label;
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +000016}
17
Fred Drake19e2ce51998-03-27 05:24:53 +000018# This adds the "internal" labels added for indexing. These labels will not
19# be used for file names.
20require "intlabels.pl";
21foreach $label (keys %internal_labels) {
22 $key = $internal_labels{$label};
23 $key =~ s|^/||;
24 if (defined($nodes{$key})) {
25 $nodes{$label} = $nodes{$key};
26 }
27}
28
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +000029# collect labels that have been used
30%newnames = ();
31
32while (<>) {
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
Fred Drake19e2ce51998-03-27 05:24:53 +000035 if (/(HREF|href)=\"([^\#\"]*)html[\#\"]/) {
36 @parts = split(/(HREF|href)\=\"/);
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +000037 shift @parts;
38 for $node (@parts) {
39 $node =~ s/[\#\"].*$//g;
40 chop($node);
41 if (defined($nodes{$node})) {
42 $label = $nodes{$node};
Fred Drake19e2ce51998-03-27 05:24:53 +000043 if (s/(HREF|href)=\"$node([\#\"])/$1=\"$label.html$2/g) {
Fred Drakeec5c0b41999-02-10 17:08:00 +000044 s/(HREF|href)=\"$label.html#(l2h-)?SECTION\d+/$1=\"$label.html/g;
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +000045 $newnames{$node} = "$label.html";
46 }
47 }
48 }
49 }
50 print;
51}
52
53foreach $oldname (keys %newnames) {
Fred Drakeaf06a0b1998-08-11 18:17:47 +000054 rename($oldname, $newnames{$oldname});
Jeremy Hyltondaa2d5d1998-02-18 13:53:48 +000055}