Fix bogus file names in error messages
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 13 Jan 2008 10:25:32 +0000 (11:25 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 13 Jan 2008 10:25:32 +0000 (11:25 +0100)
info/findsubj.pl

index ceb33c82643e6ed093c7c8f2c43bcf6de0bbb38a..129ffe77696033f9a929aadb881d1a270b94ad20 100644 (file)
@@ -40,6 +40,8 @@
 #       --- Global variables ---
 # @Subjects       Existing subjects
 # $filename       The name of the current info file
+# $filename{TOPIC}
+#                 TOPIC's info file name
 # $chapter{TOPIC} TOPIC's chapter (first arg to .TH)
 # $see_also{TOPIC}
 #                 TOPIC's SEE ALSO items (.SA argument)
@@ -62,13 +64,11 @@ use warnings;
 
 use Errno qw(ENOENT);
 
-our (%chapter, %see_also, %sanr);
+our (%filename, %chapter, %see_also, %sanr);
 our ($filename, %subjfil);
 
 # Get known subjects
 our @Subjects = split(' ', read_make_var("subjects", "subjects.mk", ""));
-# Get source directory
-my $srcdir = read_make_var("srcdir", "GNUmakefile");
 
 # Parse the .t files
 for my $f (@ARGV) {
@@ -100,6 +100,7 @@ for my $t (keys %subjfil) {
 # Update subjects.mk
 open(F, ">subjects.mk")
     or die "Can't open subjects.mk for writing: $!";
+print F "# DO NOT EDIT THIS FILE.  It was automatically generated by findsubj.pl\n";
 print F "subjects := " . join(' ', @Subjects) . "\n";
 for my $t (@Subjects) {
     print F "info/$t.t:$subjfil{$t}\n";
@@ -136,7 +137,8 @@ sub parse_file {
 
     $topic = $filename;
     $topic =~ s,.*/([^/]*)\.t$,$1,;
-    
+    $filename{$topic} = $filename;
+
     open(F, "<$filename")
        or die "Can't open $filename: $!";
   
@@ -177,7 +179,7 @@ sub parse_see_also {
     my $found;                # found a subject?
 
     $wanted = undef if $wanted eq 'Concept' or $wanted eq 'Command';
-    $filename = "$srcdir/$topic";
+    $filename = $filename{$topic};
 
     for (@see_also) {
        if (!exists $see_also{$_}) { # is this entry a subject?