version 1.105, 2002/10/20 18:39:36
|
version 1.106, 2002/10/21 16:58:21
|
Line 488 sub get_max_ids_indices {
|
Line 488 sub get_max_ids_indices {
|
my $maxindex=10; |
my $maxindex=10; |
my $maxid=10; |
my $maxid=10; |
my $needsfixup=0; |
my $needsfixup=0; |
|
my $duplicateids=0; |
|
|
|
my %allids; |
|
my %duplicatedids; |
|
|
my $parser=HTML::LCParser->new($content); |
my $parser=HTML::LCParser->new($content); |
my $token; |
my $token; |
Line 498 sub get_max_ids_indices {
|
Line 502 sub get_max_ids_indices {
|
if ($counter eq 'id') { |
if ($counter eq 'id') { |
if (defined($token->[2]->{'id'})) { |
if (defined($token->[2]->{'id'})) { |
$maxid=($token->[2]->{'id'}>$maxid)?$token->[2]->{'id'}:$maxid; |
$maxid=($token->[2]->{'id'}>$maxid)?$token->[2]->{'id'}:$maxid; |
|
if (exists($allids{$token->[2]->{'id'}})) { |
|
$duplicateids=1; |
|
$duplicatedids{$token->[2]->{'id'}}=1; |
|
} else { |
|
$allids{$token->[2]->{'id'}}=1; |
|
} |
} else { |
} else { |
$needsfixup=1; |
$needsfixup=1; |
} |
} |
Line 511 sub get_max_ids_indices {
|
Line 521 sub get_max_ids_indices {
|
} |
} |
} |
} |
} |
} |
return ($needsfixup,$maxid,$maxindex); |
return ($needsfixup,$maxid,$maxindex,$duplicateids, |
|
(keys(%duplicatedids))); |
} |
} |
|
|
######################################### |
######################################### |
Line 580 sub fix_ids_and_indices {
|
Line 591 sub fix_ids_and_indices {
|
$content=join('',<$org>); |
$content=join('',<$org>); |
} |
} |
|
|
my ($needsfixup,$maxid,$maxindex)=&get_max_ids_indices(\$content); |
my ($needsfixup,$maxid,$maxindex,$duplicateids,@duplicatedids)= |
|
&get_max_ids_indices(\$content); |
|
|
|
print $logfile ("Got $needsfixup,$maxid,$maxindex,$duplicateids--". |
|
join(', ',@duplicatedids)); |
|
if ($duplicateids) { |
|
print $logfile "Duplicate ID(s) exist, ".join(', ',@duplicatedids)."\n"; |
|
my $outstring='<font color="red">Unable to publish file, it contains duplicated ID(s), ID(s) need to be unique. The duplicated ID(s) are: '.join(', ',@duplicatedids).'</font>'; |
|
return ($outstring,1); |
|
} |
if ($needsfixup) { |
if ($needsfixup) { |
print $logfile "Needs ID and/or index fixup\n". |
print $logfile "Needs ID and/or index fixup\n". |
"Max ID : $maxid (min 10)\n". |
"Max ID : $maxid (min 10)\n". |
Line 705 sub fix_ids_and_indices {
|
Line 724 sub fix_ids_and_indices {
|
print $logfile "Does not need ID and/or index fixup\n"; |
print $logfile "Does not need ID and/or index fixup\n"; |
} |
} |
|
|
return ($outstring,%allow); |
return ($outstring,0,%allow); |
} |
} |
|
|
######################################### |
######################################### |
Line 810 sub publish {
|
Line 829 sub publish {
|
} |
} |
# ------------------------------------------------------------- IDs and indices |
# ------------------------------------------------------------- IDs and indices |
|
|
my $outstring; |
my ($outstring,$error); |
($outstring,%allow)=&fix_ids_and_indices($logfile,$source,$target); |
($outstring,$error,%allow)=&fix_ids_and_indices($logfile,$source, |
|
$target); |
|
if ($error) { return $outstring; } |
# ------------------------------------------------------------ Construct Allows |
# ------------------------------------------------------------ Construct Allows |
|
|
$scrout.='<h3>Dependencies</h3>'; |
$scrout.='<h3>Dependencies</h3>'; |