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"); |