--- loncom/xml/lonxml.pm	2003/02/14 19:35:55	1.234
+++ loncom/xml/lonxml.pm	2003/02/19 17:48:05	1.238
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.234 2003/02/14 19:35:55 www Exp $
+# $Id: lonxml.pm,v 1.238 2003/02/19 17:48:05 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -145,7 +145,7 @@ $Apache::lonxml::registered=0;
 $Apache::lonxml::request='';
 
 # a problem number counter, and check on ether it is used
-$Apache::lonxml::counter=4;
+$Apache::lonxml::counter=1;
 $Apache::lonxml::counter_changed=0;
 
 #internal check on whether to look at style defs
@@ -457,22 +457,20 @@ sub htmlclean {
 
 sub latex_special_symbols {
     my ($current_token,$stack,$parstack,$where)=@_;
-    if ($where=='header') {
-      $current_token =~ s/_/ /g;
-      $current_token =~ s/\^/ /g;
-      $current_token =~ s/&/\\&/g;
+    if ($where eq 'header') {
+	$current_token =~ s/(\\|_|\^)/ /g;
+	$current_token =~ s/(\$|%|\#|&|\{|\})/\\$1/g;
     } else {
-     $current_token=~s/\\ /\\char92 /g;
-     $current_token=~s/\^/\\char94 /g;
-     $current_token=~s/\~/\\char126 /g;
-     $current_token=~s/(&[^a-z\#])/\\$1/g;
-     $current_token=~s/([^&])\#/$1\\#/g;
-     $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
+	$current_token=~s/\\ /\\char92 /g;
+	$current_token=~s/\^/\\char94 /g;
+	$current_token=~s/\~/\\char126 /g;
+	$current_token=~s/(&[^a-z\#])/\\$1/g;
+	$current_token=~s/([^&])\#/$1\\#/g;
+	$current_token=~s/(\$|_|{|})/\\$1/g;
+	$current_token=~s/\\char92 /\\texttt{\\char92}/g;
+	$current_token=~s/(>|<)/\$$1\$/g; #more or 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;
 }
@@ -592,6 +590,8 @@ sub callsub {
     my $sub1;
     no strict 'refs';
     my $tag=$token->[1];
+# get utterly rid of extended html tags
+    if ($tag=~/^x\-/i) { return ''; }
     my $space=$Apache::lonxml::alltags{$tag}[-1];
     if (!$space) {
      	$tag=~tr/A-Z/a-z/;
@@ -893,7 +893,7 @@ sub increment_counter {
 sub init_counter {
     if (defined($ENV{'form.counter'})) {
 	$Apache::lonxml::counter=$ENV{'form.counter'};
-    } elsif (not defined($Apache::lonxml::counter)) {
+    } else {
 	$Apache::lonxml::counter=1;
 	&store_counter();
     }