Diff for /doc/help/rebuildLabelHash.pl between versions 1.8 and 1.11

version 1.8, 2007/08/07 21:40:40 version 1.11, 2008/07/24 21:51:38
Line 31  use strict; Line 31  use strict;
 use GDBM_File;  use GDBM_File;
 use File::Spec;  use File::Spec;
   
   my $path = '../../../../../doc/help';
 # I had to chdir, because neither glob nor bsd_glob accept globs  # I had to chdir, because neither glob nor bsd_glob accept globs
 # with ".." in them... sucky.  # with ".." in them... sucky.
 chdir("../../loncom/html/adm/help/");  chdir("../../loncom/html/adm/help/");
Line 86  if ($error == 0) { Line 87  if ($error == 0) {
   
 my $found_ref=0;  my $found_ref=0;
 foreach my $file ( glob("*.tex") ) {  foreach my $file ( glob("*.tex") ) {
     open(F, $file);      open(my $fh , '<', $file);
     if ( index($file, "/") != "/" ) {      if ( index($file, "/") != "/" ) {
  $file = substr($file, index($file, "/") + 1);   $file = substr($file, index($file, "/") + 1);
     }       } 
     my $contents = join("\n", <F>);      my $contents;
       foreach my $line (<$fh>) {
    next if ($line =~ /^%/);
    $contents .= $line;
       }
     my $label;      my $label;
   
   
     # Search for labels, of the form '\label{labelname}'      # Search for references, of the form '\ref{labelname}', and whether
       # we have logged the associated \label before
     foreach my $ref ( $contents =~ /\\ref\{([^\}]*)\}/g ) {      foreach my $ref ( $contents =~ /\\ref\{([^\}]*)\}/g ) {
  if (!exists($fragmentLabels{$ref})   if (!exists($fragmentLabels{$ref})
     && $ref ne 'course.manual.access.hlp'      && $ref ne 'course.manual.access.hlp'
     && $ref ne 'author.manual.access.hlp') {      && $ref ne 'author.manual.access.hlp'
               && $ref ne 'domain.manual.access.hlp') {
     $error++;      $error++;
     print("***ERROR: ref $ref in $file doesn't exist in label hash. \n");      print("***ERROR: ref $ref in $file doesn't exist in label hash. \n");
  } else {   } else {
Line 106  foreach my $file ( glob("*.tex") ) { Line 113  foreach my $file ( glob("*.tex") ) {
  }   }
     }      }
 }  }
   
   use HTML::TokeParser;
   foreach my $manual ('course.manual.texxml','author.manual.texxml','domain.manual.texxml') {
       my $p = HTML::TokeParser->new($path.'/'.$manual);
       if (!-e $path.'/'.$manual) {
    $error++;
    print("***ERROR: can't find manual $manual \n");
       }
       while (my $token = $p->get_token()) {
    if ($token->[0] eq 'S' && $token->[1] eq 'file') {
       my $ref = $token->[2]{'name'};
       $ref =~ s/\.tex//;
       if (!exists($fragmentLabels{$ref})) {
    $error++;
    print("***ERROR: ref $ref in $manual doesn't exist in label hash. \n");
       }
    }
       }
   }
   
 if ($error == 0) {  if ($error == 0) {
     print("There were no dangling references. $found_ref were checked.\n");      print("There were no dangling references. $found_ref were checked.\n");

Removed from v.1.8  
changed lines
  Added in v.1.11


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>