version 1.380, 2005/07/08 10:39:49
|
version 1.383, 2005/09/26 21:39:53
|
Line 665 sub setup_globals {
|
Line 665 sub setup_globals {
|
|
|
sub init_safespace { |
sub init_safespace { |
my ($target,$safeeval,$safehole,$safeinit) = @_; |
my ($target,$safeeval,$safehole,$safeinit) = @_; |
|
$safeeval->deny_only(':dangerous'); |
|
$safeeval->reval('use Math::Complex;'); |
|
$safeeval->permit_only(":default"); |
$safeeval->permit("entereval"); |
$safeeval->permit("entereval"); |
$safeeval->permit(":base_math"); |
$safeeval->permit(":base_math"); |
$safeeval->permit("sort"); |
$safeeval->permit("sort"); |
Line 722 sub init_safespace {
|
Line 725 sub init_safespace {
|
$safehole->wrap(\&Math::Cephes::stdtr ,$safeeval,'&stdtr' ); |
$safehole->wrap(\&Math::Cephes::stdtr ,$safeeval,'&stdtr' ); |
$safehole->wrap(\&Math::Cephes::stdtri,$safeeval,'&stdtri'); |
$safehole->wrap(\&Math::Cephes::stdtri,$safeeval,'&stdtri'); |
|
|
|
$safehole->wrap(\&Math::Cephes::Matrix::mat,$safeeval,'&mat'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::new,$safeeval, |
|
'&Math::Cephes::Matrix::new'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::coef,$safeeval, |
|
'&Math::Cephes::Matrix::coef'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::clr,$safeeval, |
|
'&Math::Cephes::Matrix::clr'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::add,$safeeval, |
|
'&Math::Cephes::Matrix::add'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::sub,$safeeval, |
|
'&Math::Cephes::Matrix::sub'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::mul,$safeeval, |
|
'&Math::Cephes::Matrix::mul'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::div,$safeeval, |
|
'&Math::Cephes::Matrix::div'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::inv,$safeeval, |
|
'&Math::Cephes::Matrix::inv'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::transp,$safeeval, |
|
'&Math::Cephes::Matrix::transp'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::simq,$safeeval, |
|
'&Math::Cephes::Matrix::simq'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::mat_to_vec,$safeeval, |
|
'&Math::Cephes::Matrix::mat_to_vec'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::vec_to_mat,$safeeval, |
|
'&Math::Cephes::Matrix::vec_to_mat'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::check,$safeeval, |
|
'&Math::Cephes::Matrix::check'); |
|
$safehole->wrap(\&Math::Cephes::Matrix::check,$safeeval, |
|
'&Math::Cephes::Matrix::check'); |
|
|
# $safehole->wrap(\&Math::Cephes::new_fract,$safeeval,'&new_fract'); |
# $safehole->wrap(\&Math::Cephes::new_fract,$safeeval,'&new_fract'); |
# $safehole->wrap(\&Math::Cephes::radd,$safeeval,'&radd'); |
# $safehole->wrap(\&Math::Cephes::radd,$safeeval,'&radd'); |
# $safehole->wrap(\&Math::Cephes::rsub,$safeeval,'&rsub'); |
# $safehole->wrap(\&Math::Cephes::rsub,$safeeval,'&rsub'); |
Line 893 sub get_all_text_unbalanced {
|
Line 926 sub get_all_text_unbalanced {
|
$tag='<'.$tag.'>'; |
$tag='<'.$tag.'>'; |
while ($token = $$pars[-1]->get_token) { |
while ($token = $$pars[-1]->get_token) { |
if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) { |
if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) { |
$result.=$token->[1]; |
if ($token->[2]) { |
|
$result.='<![CDATA['.$token->[1].']]>'; |
|
} else { |
|
$result.=$token->[1]; |
|
} |
} elsif ($token->[0] eq 'PI') { |
} elsif ($token->[0] eq 'PI') { |
$result.=$token->[2]; |
$result.=$token->[2]; |
} elsif ($token->[0] eq 'S') { |
} elsif ($token->[0] eq 'S') { |
Line 959 sub get_all_text {
|
Line 996 sub get_all_text {
|
while (($depth >=0) && ($token = $$pars[-1]->get_token)) { |
while (($depth >=0) && ($token = $$pars[-1]->get_token)) { |
#&Apache::lonxml::debug("e token:$token->[0]:$depth:$token->[1]:".$#$pars.":".$#Apache::lonxml::pwd); |
#&Apache::lonxml::debug("e token:$token->[0]:$depth:$token->[1]:".$#$pars.":".$#Apache::lonxml::pwd); |
if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) { |
if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) { |
$result.=$token->[1]; |
if ($token->[2]) { |
|
$result.='<![CDATA['.$token->[1].']]>'; |
|
} else { |
|
$result.=$token->[1]; |
|
} |
} elsif ($token->[0] eq 'PI') { |
} elsif ($token->[0] eq 'PI') { |
$result.=$token->[2]; |
$result.=$token->[2]; |
} elsif ($token->[0] eq 'S') { |
} elsif ($token->[0] eq 'S') { |
Line 1011 sub get_all_text {
|
Line 1052 sub get_all_text {
|
#&Apache::lonxml::debug("s token:$token->[0]:$depth:$token->[1]"); |
#&Apache::lonxml::debug("s token:$token->[0]:$depth:$token->[1]"); |
if (($token->[0] eq 'T')||($token->[0] eq 'C')|| |
if (($token->[0] eq 'T')||($token->[0] eq 'C')|| |
($token->[0] eq 'D')) { |
($token->[0] eq 'D')) { |
$result.=$token->[1]; |
if ($token->[2]) { |
|
$result.='<![CDATA['.$token->[1].']]>'; |
|
} else { |
|
$result.=$token->[1]; |
|
} |
} elsif ($token->[0] eq 'PI') { |
} elsif ($token->[0] eq 'PI') { |
$result.=$token->[2]; |
$result.=$token->[2]; |
} elsif ($token->[0] eq 'S') { |
} elsif ($token->[0] eq 'S') { |
Line 1148 sub createnewhtml {
|
Line 1193 sub createnewhtml {
|
my $title=&mt('Title of document goes here'); |
my $title=&mt('Title of document goes here'); |
my $body=&mt('Body of document goes here'); |
my $body=&mt('Body of document goes here'); |
my $filecontents=(<<SIMPLECONTENT); |
my $filecontents=(<<SIMPLECONTENT); |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml/11/DTD/xhtml11.dtd"> |
|
<html> |
<html> |
<head> |
<head> |
<title>$title</title> |
<title>$title</title> |
Line 1337 ENDNOTFOUND
|
Line 1381 ENDNOTFOUND
|
} else { |
} else { |
unless ($env{'request.state'} eq 'published') { |
unless ($env{'request.state'} eq 'published') { |
if ($filecontents=~/BEGIN LON-CAPA Internal/) { |
if ($filecontents=~/BEGIN LON-CAPA Internal/) { |
&Apache::lonxml::error(&mt('This file appears to be a rendering of a Lon-CAPA resource. If this is correct, this resource will act very oddly and incorrectly.')); |
&Apache::lonxml::error(&mt('This file appears to be a rendering of a LON-CAPA resource. If this is correct, this resource will act very oddly and incorrectly.')); |
} |
} |
# |
# |
# we are in construction space, see if edit mode forced |
# we are in construction space, see if edit mode forced |