--- loncom/interface/Attic/lonspreadsheet.pm 2001/01/02 23:27:11 1.32 +++ loncom/interface/Attic/lonspreadsheet.pm 2001/01/20 01:07:03 1.34 @@ -3,7 +3,7 @@ # # 11/11,11/15,11/27,12/04,12/05,12/06,12/07, # 12/08,12/09,12/11,12/12,12/15,12/16,12/18,12/19,12/30, -# 01/01/01,02/01 Gerd Kortemeyer +# 01/01/01,02/01,03/01,19/01 Gerd Kortemeyer package Apache::lonspreadsheet; @@ -20,7 +20,11 @@ use HTML::TokeParser; # These cache hashes need to be independent of user, resource and course # (user and course can/should be in the keys) # -use vars qw(%spreadsheets %courserdatas %userrdatas %defaultsheets); + +my %spreadsheets; +my %courserdatas; +my %userrdatas; +my %defaultsheets; # # These global hashes are dependent on user, course and resource, @@ -423,22 +427,22 @@ ENDDEFS # ------------------------------------------------ Add or change formula values sub setformulas { - my ($safeeval,@f)=@_; - $safeeval->reval('%f='."('".join("','",@f)."');"); + my ($safeeval,%f)=@_; + %{$safeeval->varglob('f')}=%f; } # ------------------------------------------------ Add or change formula values sub setconstants { - my ($safeeval,@c)=@_; - $safeeval->reval('%c='."('".join("','",@c)."');"); + my ($safeeval,%c)=@_; + %{$safeeval->varglob('c')}=%c; } # ------------------------------------------------ Add or change formula values sub setrowlabels { - my ($safeeval,@rl)=@_; - $safeeval->reval('%rl='."('".join("','",@rl)."');"); + my ($safeeval,%rl)=@_; + %{$safeeval->varglob('rl')}=%rl; } # ------------------------------------------------------- Calculate spreadsheet @@ -459,7 +463,7 @@ sub getvalues { sub getformulas { my $safeeval=shift; - return $safeeval->reval('%f'); + return %{$safeeval->varglob('f')}; } # -------------------------------------------------------------------- Get type @@ -1572,6 +1576,9 @@ ENDSCRIPT &outsheet($r,$asheet); $r->print(''); +# --------------------------------- We know this leaks, so terminate this child + + $r->child_terminate(); # ------------------------------------------------------------------------ Done } else {