--- loncom/xml/style.pm	2001/03/27 16:57:54	1.12
+++ loncom/xml/style.pm	2002/10/16 20:37:46	1.14
@@ -1,6 +1,41 @@
 # The LearningOnline Network with CAPA
 # Style Parser Module (new version)
 #
+# $Id: style.pm,v 1.14 2002/10/16 20:37:46 albertel Exp $
+#
+# Copyright Michigan State University Board of Trustees
+#
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
+#
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
+# Copyright for TtHfunc and TtMfunc by Ian Hutchinson. 
+# TtHfunc and TtMfunc (the "Code") may be compiled and linked into 
+# binary executable programs or libraries distributed by the 
+# Michigan State University (the "Licensee"), but any binaries so 
+# distributed are hereby licensed only for use in the context
+# of a program or computational system for which the Licensee is the 
+# primary author or distributor, and which performs substantial 
+# additional tasks beyond the translation of (La)TeX into HTML.
+# The C source of the Code may not be distributed by the Licensee
+# to any other parties under any circumstances.
+#
 # written 01/08/01 by Alexander Sakharuk
 #
 
@@ -42,24 +77,27 @@ sub styleparser {
 		if ($stoken->[0] eq 'T') {
 		    $current_value .= $stoken->[1];
 		} elsif ($stoken->[0] eq 'S') {
-		    my $number = &testkey($stoken->[0],$stoken->[1],@keys);
+		    my $number=-1;
+		    if ($stoken->[1] ne "$current_key") {
+			$number = &testkey($stoken->[0],$stoken->[1],@keys);
+		    }
 		    if ($number != -1) {
 			$current_value .= &testvalue($number,$stoken->[0],$stoken->[2],@values);
 		    } else {
 			$current_value .= $stoken->[4];
-		    } 
+		    }
 	        } else {
-		    my $number = &testkey($stoken->[0],$stoken->[1],@keys);
+		    my $number=-1;
+		    if (('/'.$stoken->[1]) ne "$current_key") {
+			$number = &testkey($stoken->[0],$stoken->[1],@keys);
+		    }
 		    if ($number != -1) {
 			$current_value .= &testvalue($number,$stoken->[0],$stoken->[2],@values);
 		    } else {
 			$current_value .= $stoken->[2];
-		    } 
+		    }
 	        }
-
-
-
-	    } 
+	    }
 	}
         $current_value =~ s/\n//g;
 ###########
@@ -115,12 +153,12 @@ sub testvalue {
     my ($number,$zeroth,$second,@values) = @_;   
     my $current_content = $values[$number];
     if ($zeroth eq 'S') {
-    my %tempo_hash = %$second;
-    while ((my $current_k,my $current_v) = each %tempo_hash) {
-        $current_content =~ s/\$$current_k/$current_v/g;
-    }
+	my %tempo_hash = %$second;
+	while ((my $current_k,my $current_v) = each %tempo_hash) {
+	    $current_content =~ s/\$$current_k/$current_v/g;
+	}
     } elsif ($zeroth eq 'E') {
-        $current_content = $values[$number];
+	$current_content = $values[$number];
     }
     return $current_content;
 }