version 1.227, 2003/02/03 18:03:53
|
version 1.231, 2003/02/12 22:45:01
|
Line 145 $Apache::lonxml::registered=0;
|
Line 145 $Apache::lonxml::registered=0;
|
$Apache::lonxml::request=''; |
$Apache::lonxml::request=''; |
|
|
# a problem number counter, and check on ether it is used |
# a problem number counter, and check on ether it is used |
$Apache::lonxml::counter=1; |
$Apache::lonxml::counter=4; |
$Apache::lonxml::counter_changed=0; |
$Apache::lonxml::counter_changed=0; |
|
|
#internal check on whether to look at style defs |
#internal check on whether to look at style defs |
Line 668 sub htmlclean {
|
Line 668 sub htmlclean {
|
} |
} |
|
|
sub latex_special_symbols { |
sub latex_special_symbols { |
my ($current_token,$stack,$parstack)=@_; |
my ($current_token,$stack,$parstack,$where)=@_; |
$current_token=~s/\\ /\\char92 /g; |
if ($where=='header') { |
$current_token=~s/\^/\\char94 /g; |
$current_token =~ s/_/ /g; |
$current_token=~s/\~/\\char126 /g; |
$current_token =~ s/\^/ /g; |
$current_token=~s/(&[^a-z\#])/\\$1/g; |
$current_token =~ s/&/\\&/g; |
$current_token=~s/([^&])\#/$1\\#/g; |
} else { |
$current_token=~s/(\$|_|{|})/\\$1/g; |
$current_token=~s/\\ /\\char92 /g; |
$current_token=~s/\\char92 /\\texttt{\\char92}/g; |
$current_token=~s/\^/\\char94 /g; |
$current_token=~s/>/\$>\$/g; #more |
$current_token=~s/\~/\\char126 /g; |
$current_token=~s/</\$<\$/g; #less |
$current_token=~s/(&[^a-z\#])/\\$1/g; |
if ($current_token=~m/\d%/) {$current_token =~ s/(\d)%/$1\\%/g;} #percent after digit |
$current_token=~s/([^&])\#/$1\\#/g; |
if ($current_token=~m/\s%/) {$current_token =~ s/(\s)%/$1\\%/g;} #persent after space |
$current_token=~s/(\$|_|{|})/\\$1/g; |
|
$current_token=~s/\\char92 /\\texttt{\\char92}/g; |
|
$current_token=~s/>/\$>\$/g; #more |
|
$current_token=~s/</\$<\$/g; #less |
|
if ($current_token=~m/\d%/) {$current_token =~ s/(\d)%/$1\\%/g;} #percent after digit |
|
if ($current_token=~m/\s%/) {$current_token =~ s/(\s)%/$1\\%/g;} #persent after space |
|
} |
return $current_token; |
return $current_token; |
} |
} |
|
|
Line 1144 sub get_all_text {
|
Line 1150 sub get_all_text {
|
} |
} |
} |
} |
} |
} |
|
if (($depth >=0) && ($#$pars == 0) ) { $top_empty=1; } |
if (($depth >=0) && ($#$pars > 0) ) { |
if (($depth >=0) && ($#$pars > 0) ) { |
pop(@$pars); |
pop(@$pars); |
pop(@Apache::lonxml::pwd); |
pop(@Apache::lonxml::pwd); |
} |
} |
if (($depth >=0) && ($#$pars == 0) ) { &debug("here4");$top_empty=1; } |
|
} |
} |
if ($top_empty && $depth >= 0) { |
if ($top_empty && $depth >= 0) { |
#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 |
Line 1210 sub parstring {
|
Line 1216 sub parstring {
|
foreach (@{$token->[3]}) { |
foreach (@{$token->[3]}) { |
unless ($_=~/\W/) { |
unless ($_=~/\W/) { |
my $val=$token->[2]->{$_}; |
my $val=$token->[2]->{$_}; |
$val =~ s/([\%\@\\\"])/\\$1/g; |
$val =~ s/([\%\@\\\"\'])/\\$1/g; |
#if ($val =~ m/^[\%\@]/) { $val="\\".$val; } |
#if ($val =~ m/^[\%\@]/) { $val="\\".$val; } |
$temp .= "my \$$_=\"$val\";" |
$temp .= "my \$$_=\"$val\";" |
} |
} |
Line 1500 sub get_param_var {
|
Line 1506 sub get_param_var {
|
if ( ! $context ) { $context = -1; } |
if ( ! $context ) { $context = -1; } |
my $args =''; |
my $args =''; |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
|
&Apache::lonxml::debug("Args are $args param is $param"); |
if ($case_insensitive) { |
if ($case_insensitive) { |
if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) { |
if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) { |
return undef; |
return undef; |
} |
} |
} elsif ( $args !~ /my \$\Q$param\E=\"/ ) { return undef; } |
} elsif ( $args !~ /my \$\Q$param\E=\"/ ) { return undef; } |
my $value=&Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #' |
my $value=&Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #' |
if ($value =~ /^[\$\@\%]/) { |
&Apache::lonxml::debug("first run is $value"); |
return &Apache::run::run("return $value",$safeeval,1); |
if ($value =~ /^[\$\@\%]\w+$/) { |
|
&Apache::lonxml::debug("doing second"); |
|
my @result=&Apache::run::run("return $value",$safeeval,1); |
|
if (!defined($result[0])) { |
|
return $value |
|
} else { |
|
if (wantarray) { return @result; } else { return $result[0]; } |
|
} |
} else { |
} else { |
return $value; |
return $value; |
} |
} |