--- rat/lonambiguous.pm 2001/11/29 19:23:48 1.4 +++ rat/lonambiguous.pm 2003/01/14 18:47:50 1.8 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to resolve ambiguous file locations # -# $Id: lonambiguous.pm,v 1.4 2001/11/29 19:23:48 www Exp $ +# $Id: lonambiguous.pm,v 1.8 2003/01/14 18:47:50 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,6 +38,16 @@ use Apache::lonnet; use Apache::Constants qw(:common REDIRECT); use GDBM_File; +my %bighash; + +sub cleanup { + if (tied(%bighash)){ + &Apache::lonnet::logthis('Cleanup ambiguous: bighash'); + unless (untie(%bighash)) { + &Apache::lonnet::logthis('Failed cleanup ambiguous: bighash'); + } + } +} # ----------------------------------------------------------- Could not resolve @@ -63,13 +73,11 @@ sub handler { } # ---------------------------------------------------------- Is this selecting? - - my %bighash; - + if ($ENV{'form.selecturl'}) { my $envkey; if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', - &GDBM_READER,0640)) { + &GDBM_READER(),0640)) { foreach $envkey (keys %ENV) { if ($envkey=~/^form\.(\d+)\.(\d+)$/) { # ---------------------------------------------------- Update symb and redirect @@ -106,7 +114,7 @@ sub handler { my $syval=''; if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', - &GDBM_READER,0640)) { + &GDBM_READER(),0640)) { $syval=$hash{$thisfn}; untie(%hash); } @@ -132,9 +140,9 @@ sub handler { # ------------------------------------------------ Would be standalone resource if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', - &GDBM_READER,0640)) { + &GDBM_READER(),0640)) { # ---------------------------------------------- Get ID(s) for current resource - my $ids=$bighash{'ids_/res/'.$thisfn}; + my $ids=$bighash{'ids_'.&Apache::lonnet::clutter($thisfn)}; if ($ids) { # ------------------------------------------------------------------- Has ID(s) my @possibilities=split(/\,/,$ids);