version 1.23, 2003/09/05 01:57:54
|
version 1.25, 2003/09/12 18:59:48
|
Line 48 Spreadsheet
|
Line 48 Spreadsheet
|
package Apache::Spreadsheet; |
package Apache::Spreadsheet; |
|
|
use strict; |
use strict; |
use warnings FATAL=>'all'; |
#use warnings FATAL=>'all'; |
no warnings 'uninitialized'; |
#no warnings 'uninitialized'; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
use Apache::lonnet; |
use Apache::lonnet; |
use Safe; |
use Safe; |
Line 299 Returns the safe space required by a Spr
|
Line 299 Returns the safe space required by a Spr
|
=cut |
=cut |
|
|
###################################################### |
###################################################### |
|
{ |
|
|
|
my $safeeval; |
|
|
sub initialize_safe_space { |
sub initialize_safe_space { |
my $self = shift; |
my $self = shift; |
my $safeeval = new Safe(shift); |
if (! defined($safeeval)) { |
my $safehole = new Safe::Hole; |
$safeeval = new Safe(shift); |
$safeeval->permit("entereval"); |
my $safehole = new Safe::Hole; |
$safeeval->permit(":base_math"); |
$safeeval->permit("entereval"); |
$safeeval->permit("sort"); |
$safeeval->permit(":base_math"); |
$safeeval->deny(":base_io"); |
$safeeval->permit("sort"); |
$safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT'); |
$safeeval->deny(":base_io"); |
$safehole->wrap(\&mask,$safeeval,'&mask'); |
$safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT'); |
$safeeval->share('$@'); |
$safehole->wrap(\&mask,$safeeval,'&mask'); |
my $code=<<'ENDDEFS'; |
$safeeval->share('$@'); |
|
my $code=<<'ENDDEFS'; |
# ---------------------------------------------------- Inside of the safe space |
# ---------------------------------------------------- Inside of the safe space |
# |
# |
# f: formulas |
# f: formulas |
Line 677 sub calc {
|
Line 682 sub calc {
|
|
|
# ------------------------------------------- End of "Inside of the safe space" |
# ------------------------------------------- End of "Inside of the safe space" |
ENDDEFS |
ENDDEFS |
$safeeval->reval($code); |
$safeeval->reval($code); |
|
} |
$self->{'safe'} = $safeeval; |
$self->{'safe'} = $safeeval; |
$self->{'root'} = $self->{'safe'}->root(); |
$self->{'root'} = $self->{'safe'}->root(); |
# |
# |
Line 691 ENDDEFS
|
Line 697 ENDDEFS
|
$self->{'safe'}->reval($initstring); |
$self->{'safe'}->reval($initstring); |
return $self; |
return $self; |
} |
} |
|
|
|
} |
|
|
###################################################### |
###################################################### |
|
|
=pod |
=pod |