--- doc/help/rebuildLabelHash.pl 2007/08/07 21:02:58 1.7 +++ doc/help/rebuildLabelHash.pl 2007/08/07 21:40:40 1.8 @@ -50,17 +50,16 @@ foreach my $file ( glob("*.tex") ) { $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 ) { + foreach my $label ( $contents =~ /\\label\{([^\}]*)\}/g ) { $found = 1; if ($file eq "$label.tex") { $found_me = 1; } - if (exists $fragmentLabels{$label} ) { + if (exists($fragmentLabels{$label}) ) { print("***ERROR: '$label' in both $fragmentLabels{$label} " . "and $file. \n"); $error++; @@ -81,8 +80,39 @@ foreach my $file ( glob("*.tex") ) { 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"); + print("There were $error errors. You must correct the labels.\n"); exit(-1); } +my $found_ref=0; +foreach my $file ( glob("*.tex") ) { + open(F, $file); + if ( index($file, "/") != "/" ) { + $file = substr($file, index($file, "/") + 1); + } + my $contents = join("\n", ); + my $label; + + + # Search for labels, of the form '\label{labelname}' + foreach my $ref ( $contents =~ /\\ref\{([^\}]*)\}/g ) { + if (!exists($fragmentLabels{$ref}) + && $ref ne 'course.manual.access.hlp' + && $ref ne 'author.manual.access.hlp') { + $error++; + print("***ERROR: ref $ref in $file doesn't exist in label hash. \n"); + } else { + $found_ref++; + } + } +} + +if ($error == 0) { + print("There were no dangling references. $found_ref were checked.\n"); +} else { + print("There were $error errors. You must correct the dangling references.\n"); + exit(-1); +} + + untie(%fragmentLabels);