--- loncom/xml/lonxml.pm 2001/01/12 20:38:05 1.48
+++ loncom/xml/lonxml.pm 2001/02/19 20:40:55 1.54
@@ -31,7 +31,6 @@ sub printalltags {
&Apache::lonxml::debug("$temp -- $Apache::lonxml::alltags{$temp}");
}
}
-
use Apache::style;
use Apache::lontexconvert;
use Apache::run;
@@ -121,7 +120,7 @@ sub xmlparse {
#clear out any tags that didn't end
while ($token->[1] ne $stack[$#stack]
&& ($#stack > -1)) {
- &Apache::lonxml::error("Unbalanced tags in resource $stack['-1']");
+ &Apache::lonxml::warning("Unbalanced tags in resource $stack['-1']");
pop @stack;pop @parstack;&decreasedepth($token);
}
@@ -195,7 +194,7 @@ sub recurse {
#clear out any tags that didn't end
while ($tokenpat->[1] ne $innerstack[$#innerstack]
&& ($#innerstack > -1)) {
- &Apache::lonxml::error("Unbalanced tags in resource $innerstack['-1']");
+ &Apache::lonxml::warning("Unbalanced tags in resource $innerstack['-1']");
pop @innerstack;pop @innerparstack;&decreasedepth($tokenpat);
}
$partstring = &callsub("end_$tokenpat->[1]",
@@ -237,13 +236,13 @@ sub callsub {
my $sub1;
no strict 'refs';
if (my $space=$Apache::lonxml::alltags{$token->[1]}) {
- #&Apache::lonxml::debug("Calling sub $sub in $space
\n");
+ #&Apache::lonxml::debug("Calling sub $sub in $space
\n");
$sub1="$space\:\:$sub";
$Apache::lonxml::curdepth=join('_',@Apache::lonxml::depthcounter);
$currentstring = &$sub1($target,$token,$parstack,$parser,
$safeeval,$style);
} else {
- #&Apache::lonxml::debug("NOT Calling sub $sub in $space
\n");
+ #&Apache::lonxml::debug("NOT Calling sub $sub in $space
\n");
if (defined($token->[4])) {
$currentstring = $token->[4];
} else {
@@ -270,7 +269,7 @@ sub increasedepth {
}
my $curdepth=join('_',@Apache::lonxml::depthcounter);
&Apache::lonxml::debug("s $Apache::lonxml::depth : $Apache::lonxml::olddepth : $curdepth : $token->[1]\n");
-#print "
s $Apache::lonxml::depth : $Apache::lonxml::olddepth : $curdepth : $token->[1]\n";
+#print "
s $Apache::lonxml::depth : $Apache::lonxml::olddepth : $curdepth : $token->[1]\n";
}
sub decreasedepth {
@@ -281,12 +280,12 @@ sub decreasedepth {
$Apache::lonxml::olddepth=$Apache::lonxml::depth+1;
}
if ( $Apache::lonxml::depth < -1) {
- &Apache::lonxml::error("Unbalanced tags in resource");
+ &Apache::lonxml::warning("Unbalanced tags in resource");
$Apache::lonxml::depth='-1';
}
my $curdepth=join('_',@Apache::lonxml::depthcounter);
&Apache::lonxml::debug("e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n");
-#print "
e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n";
+#print "
e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n";
}
sub get_all_text {
@@ -296,8 +295,9 @@ sub get_all_text {
my $token;
my $result='';
my $tag=substr($tag,1); #strip the / off the tag
-# &Apache::lonxml::debug("have:$tag:");
+ #&Apache::lonxml::debug("have:$tag:");
while (($depth >=0) && ($token = $pars->get_token)) {
+ #&Apache::lonxml::debug("token:$token->[0]:$depth:$token->[1]");
if ($token->[0] eq 'T') {
$result.=$token->[1];
} elsif ($token->[0] eq 'S') {
@@ -311,6 +311,7 @@ sub get_all_text {
}
}
}
+# &Apache::lonxml::debug("Exit:$result:");
return $result
}
@@ -332,7 +333,8 @@ sub parstring {
map {
unless ($_=~/\W/) {
my $val=$token->[2]->{$_};
- if ($val =~ m/^[\%\@]/) { $val="\\".$val; }
+ $val =~ s/([\%\@\\])/\\$1/g;
+ #if ($val =~ m/^[\%\@]/) { $val="\\".$val; }
$temp .= "my \$$_=\"$val\";"
}
} @{$token->[3]};
@@ -377,12 +379,19 @@ sub handler {
$request->print('