[LON-CAPA-cvs] cvs: doc /help rebuildLabelHash.pl
albertel
lon-capa-cvs-allow@mail.lon-capa.org
Tue, 07 Aug 2007 21:02:59 -0000
albertel Tue Aug 7 17:02:59 2007 EDT
Modified files:
/doc/help rebuildLabelHash.pl
Log:
- does more error checking on the .tex files and their labels (BUG#5352)
Index: doc/help/rebuildLabelHash.pl
diff -u doc/help/rebuildLabelHash.pl:1.6 doc/help/rebuildLabelHash.pl:1.7
--- doc/help/rebuildLabelHash.pl:1.6 Mon Mar 31 22:20:01 2003
+++ doc/help/rebuildLabelHash.pl Tue Aug 7 17:02:58 2007
@@ -33,47 +33,56 @@
# 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", <F>);
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);