--- loncom/xml/lonxml.pm 2000/08/16 18:32:58 1.19
+++ loncom/xml/lonxml.pm 2000/09/19 19:10:01 1.21
@@ -42,7 +42,8 @@ sub xmlparse {
$safeeval->deny(":base_io");
#need to inspect this class of ops
# $safeeval->deny(":base_orig");
- if ( $safeinit ne '') {&Apache::run::run($safeinit,$safeeval);}
+ $safeinit .= ';$external::target='.$target.';';
+ &Apache::run::run($safeinit,$safeeval);
#-------------------- Redefinition of the target in the case of compound target
($target, my @tenta) = split('&&',$target);
@@ -164,13 +165,13 @@ sub callsub {
{
no strict 'refs';
if (my $space=$Apache::lonxml::alltags{$token->[1]}) {
- #print "Calling sub $sub in $space \n";
+ #print "Calling sub $sub in $space
\n";
$sub="$space\:\:$sub";
$Apache::lonxml::curdepth=join('_',@Apache::lonxml::depthcounter);
$currentstring = &$sub($target,$token,$parstack,$parser,
$safeeval,$style);
} else {
- #print "NOT Calling sub $sub\n";
+ #print "NOT Calling sub $sub
\n";
if (defined($token->[4])) {
$currentstring = $token->[4];
} else {
@@ -233,7 +234,11 @@ sub get_all_text {
sub parstring {
my ($token) = @_;
my $temp='';
- map {$temp .= "my \$$_=\"$token->[2]->{$_}\";"} @{$token->[3]};
+ map {
+ if ($_=~/\w+/) {
+ $temp .= "my \$$_=\"$token->[2]->{$_}\";"
+ }
+ } @{$token->[3]};
return $temp;
}
1;