--- loncom/xml/lonxml.pm	2002/12/09 22:40:18	1.220
+++ loncom/xml/lonxml.pm	2003/03/19 21:57:59	1.221.2.3
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.220 2002/12/09 22:40:18 albertel Exp $
+# $Id: lonxml.pm,v 1.221.2.3 2003/03/19 21:57:59 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -352,7 +352,7 @@ sub printtokenheader {
     if ($target eq 'web') {
         my %idhash=&Apache::lonnet::idrget($tudom,($tuname));
 	return 
- '<img align="right" src="/cgi-bin/barcode.gif?encode='.$token.'" />'.
+ '<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'.
                'Checked out for '.$plainname.
                '<br />User: '.$tuname.' at '.$tudom.
 	       '<br />ID: '.$idhash{$tuname}.
@@ -693,7 +693,8 @@ sub inner_xmlparse {
 	if ($metamode<1) {
 	    my $text=$token->[1];
 	    if ($token->[0] eq 'C' && $target eq 'tex') {
-		$text = '%'.$text."\n";
+		$text = '';
+#		$text = '%'.$text."\n";
 	    }
 	    $result.=$text;
 	}
@@ -771,7 +772,7 @@ sub inner_xmlparse {
       if ($token->[0] eq 'E') { 
 	&end_tag($stack,$parstack,$token);
       }
-    }
+    }	
     if ($#$pars > -1) {
 	pop @$pars;
 	pop @Apache::lonxml::pwd;
@@ -1113,7 +1114,9 @@ sub store_counter {
 sub get_all_text {
  my($tag,$pars)= @_;
  &Apache::lonxml::debug("Got a ".ref($pars));
+ my $gotfullstack=1;
  if (ref($pars) ne 'ARRAY') {
+     $gotfullstack=0;
      $pars=[$pars];
  }
  my $depth=0;
@@ -1122,7 +1125,8 @@ sub get_all_text {
  if ( $tag =~ m:^/: ) { 
    my $tag=substr($tag,1); 
    #&Apache::lonxml::debug("have:$tag:");
-   while (($depth >=0) && ($#$pars > -1)) {
+   my $top_empty=0;
+   while (($depth >=0) && ($#$pars > -1) && (!$top_empty)) {
      while (($depth >=0) && ($token = $$pars[-1]->get_token)) {
        #&Apache::lonxml::debug("e token:$token->[0]:$depth:$token->[1]:".$#$pars.":".$#Apache::lonxml::pwd);
        if (($token->[0] eq 'T')||($token->[0] eq 'C')||($token->[0] eq 'D')) {
@@ -1144,6 +1148,16 @@ sub get_all_text {
        pop(@$pars);
        pop(@Apache::lonxml::pwd);
      }
+     if (($depth >=0) && ($#$pars == 0) ) {        &debug("here4");$top_empty=1; }
+   }
+   if ($top_empty && $depth >= 0) {
+       #never found the end tag ran out of text, throw error send back blank
+       &error('Never found end tag for &lt;'.$tag.'&gt;');
+       if ($gotfullstack) {
+	   my $newstring='</'.$tag.'>'.$result;
+	   &Apache::lonxml::newparser($pars,\$newstring);
+       }
+       $result='';
    }
  } else {
      while ($#$pars > -1) {