]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/build-docdep.perl
path.c: clarify trie_find()'s in-code comment
[thirdparty/git.git] / Documentation / build-docdep.perl
CommitLineData
a5ae8e64
JH
1#!/usr/bin/perl
2
3my %include = ();
fb612d54 4my %included = ();
a5ae8e64 5
fb612d54 6for my $text (<*.txt>) {
a5ae8e64 7 open I, '<', $text || die "cannot read: $text";
a5ae8e64
JH
8 while (<I>) {
9 if (/^include::/) {
10 chomp;
11 s/^include::\s*//;
12 s/\[\]//;
fb612d54
JH
13 $include{$text}{$_} = 1;
14 $included{$_} = 1;
a5ae8e64
JH
15 }
16 }
17 close I;
18}
19
20# Do we care about chained includes???
fb612d54
JH
21my $changed = 1;
22while ($changed) {
23 $changed = 0;
24 while (my ($text, $included) = each %include) {
fb612d54 25 for my $i (keys %$included) {
fb612d54
JH
26 # $text has include::$i; if $i includes $j
27 # $text indirectly includes $j.
28 if (exists $include{$i}) {
fb612d54 29 for my $j (keys %{$include{$i}}) {
fb612d54
JH
30 if (!exists $include{$text}{$j}) {
31 $include{$text}{$j} = 1;
32 $included{$j} = 1;
33 $changed = 1;
34 }
35 }
36 }
37 }
a5ae8e64 38 }
a5ae8e64
JH
39}
40
fb612d54
JH
41while (my ($text, $included) = each %include) {
42 if (! exists $included{$text} &&
43 (my $base = $text) =~ s/\.txt$//) {
2ba91e96 44 print "$base.html $base.xml : ", join(" ", keys %$included), "\n";
fb612d54
JH
45 }
46}