version 1.304, 2004/03/02 20:59:24
|
version 1.309, 2004/03/09 20:37:58
|
Line 409 sub latex_special_symbols {
|
Line 409 sub latex_special_symbols {
|
$string=~s/\~/\\char126 /g; |
$string=~s/\~/\\char126 /g; |
#fixup & if it doesn't look like |
#fixup & if it doesn't look like |
# { or α |
# { or α |
$string=~s/(&(?!((\#[0-9]+)|([a-z]+));))/\\$1/gi; |
$string=~s/(&(?!((\#[0-9]+)|([a-z][a-z0-9]*));))/\\$1/gi; |
$string=~s/([^&\\])\#/$1\\#/g; |
$string=~s/([^&\\])\#/$1\\#/g; |
$string=~s/\#\#/\#\\#/g; |
$string=~s/\#\#/\#\\#/g; |
$string=~s/(\$|_|{|})/\\$1/g; |
$string=~s/(\$|_|{|})/\\$1/g; |
Line 750 sub init_safespace {
|
Line 750 sub init_safespace {
|
$safehole->wrap(\&Math::Random::random_set_seed_from_phrase,$safeeval,'&random_set_seed_from_phrase'); |
$safehole->wrap(\&Math::Random::random_set_seed_from_phrase,$safeeval,'&random_set_seed_from_phrase'); |
$safehole->wrap(\&Math::Random::random_get_seed,$safeeval,'&random_get_seed'); |
$safehole->wrap(\&Math::Random::random_get_seed,$safeeval,'&random_get_seed'); |
$safehole->wrap(\&Math::Random::random_set_seed,$safeeval,'&random_set_seed'); |
$safehole->wrap(\&Math::Random::random_set_seed,$safeeval,'&random_set_seed'); |
|
$safehole->wrap(\&Apache::lonxml::error,$safeeval,'&LONCAPA_INTERNAL_ERROR'); |
|
|
#need to inspect this class of ops |
#need to inspect this class of ops |
# $safeeval->deny(":base_orig"); |
# $safeeval->deny(":base_orig"); |
Line 765 sub init_safespace {
|
Line 766 sub init_safespace {
|
sub __LC_INTERNAL_EVALUATE__ { |
sub __LC_INTERNAL_EVALUATE__ { |
my ($__LC__a,$__LC__b,$__LC__c)=@_; |
my ($__LC__a,$__LC__b,$__LC__c)=@_; |
my $__LC__prefix; |
my $__LC__prefix; |
my $__LC__msg; |
|
while(1){ |
while(1){ |
{ |
{ |
use strict; |
use strict; |
|
no strict "vars"; |
if (eval(defined(eval($__LC__a.$__LC__b)))) { |
if (eval(defined(eval($__LC__a.$__LC__b)))) { |
return $__LC__msg.$__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c); |
return $__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c); |
} |
} |
} |
} |
$__LC__prefix.=substr($__LC__a,0,1,""); |
$__LC__prefix.=substr($__LC__a,0,1,""); |
if ($__LC__a!~/^(\$|&|\#)/) { last; } |
if ($__LC__a!~/^(\$|&|\#)/) { last; } |
} |
} |
return $__LC__prefix.$__LC__a.$__LC__b.$__LC__c.$__LC__msg; |
return $__LC__prefix.$__LC__a.$__LC__b.$__LC__c; |
} |
} |
EVALUATESUB |
EVALUATESUB |
$safeeval->permit("require"); |
$safeeval->permit("require"); |
Line 1236 sub handler {
|
Line 1237 sub handler {
|
unless ($ENV{'request.state'} eq 'published') { |
unless ($ENV{'request.state'} eq 'published') { |
if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) { |
if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) { |
if (&storefile($file,$ENV{'form.filecont'})) { |
if (&storefile($file,$ENV{'form.filecont'})) { |
$request->print("<font COLOR=\"#0000FF\">".&mt('Updated').": ". |
&Apache::lonxml::info("<font COLOR=\"#0000FF\">". |
&Apache::lonlocal::locallocaltime(time)." </font>"); |
&mt('Updated').": ". |
|
&Apache::lonlocal::locallocaltime(time). |
|
" </font>"); |
} |
} |
} |
} |
} |
} |
Line 1289 ENDNOTFOUND
|
Line 1292 ENDNOTFOUND
|
if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) { |
if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) { |
my $displayfile=$request->uri; |
my $displayfile=$request->uri; |
$displayfile=~s/^\/[^\/]*//; |
$displayfile=~s/^\/[^\/]*//; |
$result='<html><body bgcolor="#FFFFFF"><h3>'.$displayfile. |
$result='<html><body bgcolor="#FFFFFF">'. |
|
&Apache::lonxml::message_location().'<h3>'. |
|
$displayfile. |
'</h3></body></html>'; |
'</h3></body></html>'; |
$result=&inserteditinfo($result,$filecontents,$filetype); |
$result=&inserteditinfo($result,$filecontents,$filetype); |
} |
} |
Line 1297 ENDNOTFOUND
|
Line 1302 ENDNOTFOUND
|
if ($filetype eq 'html') { writeallows($request->uri); } |
if ($filetype eq 'html') { writeallows($request->uri); } |
|
|
|
|
|
&Apache::lonxml::add_messages(\$result); |
$request->print($result); |
$request->print($result); |
|
|
return OK; |
return OK; |
Line 1331 sub error {
|
Line 1336 sub error {
|
if (!$request) { $request=Apache->request; } |
if (!$request) { $request=Apache->request; } |
if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) { |
if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) { |
# If printing in construction space, put the error inside <pre></pre> |
# If printing in construction space, put the error inside <pre></pre> |
$request->print($Apache::lonxml::warnings_error_header. |
push(@Apache::lonxml::error_messages, |
"<b>ERROR:</b>".join("\n",@_)."\n"); |
$Apache::lonxml::warnings_error_header. |
|
"<b>ERROR:</b>".join("<br />\n",@_)."<br />\n"); |
$Apache::lonxml::warnings_error_header=''; |
$Apache::lonxml::warnings_error_header=''; |
} else { |
} else { |
$request->print("<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />"); |
push(@Apache::lonxml::error_messages, |
|
"<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />"); |
#notify author |
#notify author |
&Apache::lonmsg::author_res_msg($ENV{'request.filename'},join('<br />',@_)); |
&Apache::lonmsg::author_res_msg($ENV{'request.filename'},join('<br />',@_)); |
#notify course |
#notify course |
Line 1358 sub warning {
|
Line 1365 sub warning {
|
if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) { |
if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) { |
my $request=$Apache::lonxml::request; |
my $request=$Apache::lonxml::request; |
if (!$request) { $request=Apache->request; } |
if (!$request) { $request=Apache->request; } |
$request->print($Apache::lonxml::warnings_error_header. |
push(@Apache::lonxml::warning_messages, |
"<b>W</b>ARNING<b>:</b>".join('<br />',@_)."<br />\n"); |
$Apache::lonxml::warnings_error_header. |
|
"<b>W</b>ARNING<b>:</b>".join('<br />',@_)."<br />\n"); |
$Apache::lonxml::warnings_error_header=''; |
$Apache::lonxml::warnings_error_header=''; |
} |
} |
} |
} |
} |
} |
|
|
|
sub info { |
|
if ($ENV{'form.grade_target'} ne 'tex' |
|
&& $ENV{'request.state'} eq 'construct') { |
|
push(@Apache::lonxml::info_messages,join('<br />',@_)."<br />\n"); |
|
} |
|
} |
|
|
|
sub message_location { |
|
return '__LONCAPA_INTERNAL_MESSAGE_LOCATION__'; |
|
} |
|
|
|
sub add_messages { |
|
my ($msg)=@_; |
|
my $result=join(' ', |
|
@Apache::lonxml::info_messages, |
|
@Apache::lonxml::error_messages, |
|
@Apache::lonxml::warning_messages); |
|
undef(@Apache::lonxml::info_messages); |
|
undef(@Apache::lonxml::error_messages); |
|
undef(@Apache::lonxml::warning_messages); |
|
$$msg=~s/__LONCAPA_INTERNAL_MESSAGE_LOCATION__/$result/; |
|
$$msg=~s/__LONCAPA_INTERNAL_MESSAGE_LOCATION__//g; |
|
} |
|
|
sub get_param { |
sub get_param { |
my ($param,$parstack,$safeeval,$context,$case_insensitive) = @_; |
my ($param,$parstack,$safeeval,$context,$case_insensitive) = @_; |
if ( ! $context ) { $context = -1; } |
if ( ! $context ) { $context = -1; } |