version 1.309, 2004/03/09 20:37:58
|
version 1.314, 2004/03/30 07:16:24
|
Line 401 sub latex_special_symbols {
|
Line 401 sub latex_special_symbols {
|
my ($string,$where)=@_; |
my ($string,$where)=@_; |
if ($where eq 'header') { |
if ($where eq 'header') { |
$string =~ s/(\\|_|\^)/ /g; |
$string =~ s/(\\|_|\^)/ /g; |
$string =~ s/(\$|%|\#|&|\{|\})/\\$1/g; |
$string =~ s/(\$|%|\{|\})/\\$1/g; |
$string =~ s/_/ /g; |
$string =~ s/_/ /g; |
} else { |
$string=&Apache::lonprintout::character_chart($string); |
$string=~s/\\ /\\char92 /g; |
# any & or # leftover should be safe to just escape |
$string=~s/\^/\\\^\\strut /g; |
$string=~s/([^\\])\&/$1\\\&/g; |
$string=~s/\~/\\char126 /g; |
$string=~s/([^\\])\#/$1\\\#/g; |
#fixup & if it doesn't look like |
} else { |
# { or α |
$string=~s/\\/\\ensuremath{\\backslash}/g; |
$string=~s/(&(?!((\#[0-9]+)|([a-z][a-z0-9]*));))/\\$1/gi; |
$string=~s/([^\\]|^)\%/$1\\\%/g; |
$string=~s/([^&\\])\#/$1\\#/g; |
$string=~s/([^\\]|^)(\$|_)/$1\\$2/g; |
$string=~s/\#\#/\#\\#/g; |
$string=~s/\$\$/\$\\\$/g; |
$string=~s/(\$|_|{|})/\\$1/g; |
$string=~s/\#\#/\#\\\#/g; |
$string=~s/\\char92 /\\texttt{\\char92}/g; |
$string=~s/([^\\]|^)(\~|\^)/$1\\$2\\strut /g; |
$string=~s/(>|<)/\$$1\$/g; #more or less |
$string=~s/(>|<)/\\ensuremath\{$1\}/g; #more or less |
if ($string=~m/\d%/) {$string =~ s/(\d)%/$1\\%/g;} #percent after digit |
$string=&Apache::lonprintout::character_chart($string); |
if ($string=~m/\s%/) {$string =~ s/(\s)%/$1\\%/g;} #percent after space |
# any & or # leftover should be safe to just escape |
if ($string eq '%.') {$string = '\%.';} #percent at the end of statement |
$string=~s/([^\\]|^)\&/$1\\\&/g; |
|
$string=~s/([^\\]|^)\#/$1\\\#/g; |
|
#single { or } How to escape? |
} |
} |
return $string; |
return $string; |
} |
} |
Line 751 sub init_safespace {
|
Line 753 sub init_safespace {
|
$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'); |
$safehole->wrap(\&Apache::lonxml::error,$safeeval,'&LONCAPA_INTERNAL_ERROR'); |
|
$safehole->wrap(\&Apache::lonxml::debug,$safeeval,'&LONCAPA_INTERNAL_DEBUG'); |
|
|
#need to inspect this class of ops |
#need to inspect this class of ops |
# $safeeval->deny(":base_orig"); |
# $safeeval->deny(":base_orig"); |
Line 964 sub get_all_text {
|
Line 967 sub get_all_text {
|
#never found the end tag ran out of text, throw error send back blank |
#never found the end tag ran out of text, throw error send back blank |
&error('Never found end tag for <'.$tag. |
&error('Never found end tag for <'.$tag. |
'> current string <pre>'. |
'> current string <pre>'. |
&HTML::Entities::encode($result). |
&HTML::Entities::encode($result,'<>&"'). |
'</pre>'); |
'</pre>'); |
if ($gotfullstack) { |
if ($gotfullstack) { |
my $newstring='</'.$tag.'>'.$result; |
my $newstring='</'.$tag.'>'.$result; |
Line 1141 SIMPLECONTENT
|
Line 1144 SIMPLECONTENT
|
|
|
sub inserteditinfo { |
sub inserteditinfo { |
my ($result,$filecontents,$filetype)=@_; |
my ($result,$filecontents,$filetype)=@_; |
$filecontents = &HTML::Entities::encode($filecontents); |
$filecontents = &HTML::Entities::encode($filecontents,'<>&"'); |
# my $editheader='<a href="#editsection">Edit below</a><hr />'; |
# my $editheader='<a href="#editsection">Edit below</a><hr />'; |
my $xml_help = ''; |
my $xml_help = ''; |
if ($filetype eq 'html') { |
if ($filetype eq 'html') { |
Line 1326 sub debug {
|
Line 1329 sub debug {
|
$|=1; |
$|=1; |
my $request=$Apache::lonxml::request; |
my $request=$Apache::lonxml::request; |
if (!$request) { $request=Apache->request; } |
if (!$request) { $request=Apache->request; } |
$request->print('<font size="-2"><pre>DEBUG:'.&HTML::Entities::encode($_[0])."</pre></font>\n"); |
$request->print('<font size="-2"><pre>DEBUG:'.&HTML::Entities::encode($_[0],'<>&"')."</pre></font>\n"); |
} |
} |
} |
} |
|
|