--- doc/help/rebuildLabelHash.pl 2003/04/01 03:20:01 1.6 +++ doc/help/rebuildLabelHash.pl 2007/08/07 21:02:58 1.7 @@ -33,47 +33,56 @@ use File::Spec; # I had to chdir, because neither glob nor bsd_glob accept globs # with ".." in them... sucky. -chdir "../../loncom/html/adm/help/"; +chdir("../../loncom/html/adm/help/"); # if the topic hash exists, kill it -unlink 'fragmentLabels.gdbm' if ( -e 'fragmentLabels.gdbm' ); -print "Wiped old fragmentLabels.gdbm.\n"; +unlink('fragmentLabels.gdbm') if ( -e 'fragmentLabels.gdbm' ); +print("Wiped old fragmentLabels.gdbm.\n"); tie (my %fragmentLabels, 'GDBM_File', 'fragmentLabels.gdbm', &GDBM_WRCREAT(), 0660); my $error = 0; -chdir "tex"; +chdir("tex"); -foreach my $file ( glob("*.tex") ) -{ - open F, $file; - if ( index($file, "/") != "/" ) - { +foreach my $file ( glob("*.tex") ) { + open(F, $file); + if ( index($file, "/") != "/" ) { $file = substr($file, index($file, "/") + 1); } my $contents = join("\n", ); my $label; - + + my $found=0; + my $found_me=0; # Search for labels, of the form '\label{labelname}' - foreach $label ( $contents =~ /\\label\{([^}]*)\}/g ) - { - if (exists $fragmentLabels{$label} ) - { - print "***ERROR: '$label' in both $fragmentLabels{$label} " . - "and $file. \n"; - $error = 1; + foreach $label ( $contents =~ /\\label\{([^\}]*)\}/g ) { + $found = 1; + if ($file eq "$label.tex") { + $found_me = 1; + } + if (exists $fragmentLabels{$label} ) { + print("***ERROR: '$label' in both $fragmentLabels{$label} " . + "and $file. \n"); + $error++; } $fragmentLabels{$label} = $file; } + if (!$found) { + $error++; + print("***ERROR: no labels in '$file'. \n"); + } + if (!$found_me) { + $error++; + my ($needed_label) = ($file =~ m/(.*)\.tex/); + print("***ERROR: no labels for $needed_label in '$file'. \n"); + } } -if ($error == 0) -{ - print "There were no duplicate labels. Database rebuilt.\n"; -} -else -{ - print "There were errors. You must correct the duplicate labels.\n"; +if ($error == 0) { + print("There were no duplicate labels. Database rebuilt.\n"); +} else { + print("There were $error errors. You must correct the duplicate labels.\n"); + exit(-1); } -untie %fragmentLabels; +untie(%fragmentLabels);