--- loncom/xml/lonxml.pm 2004/03/02 21:31:22 1.305 +++ loncom/xml/lonxml.pm 2004/03/12 17:26:29 1.310 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.305 2004/03/02 21:31:22 albertel Exp $ +# $Id: lonxml.pm,v 1.310 2004/03/12 17:26:29 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -404,20 +404,15 @@ sub latex_special_symbols { $string =~ s/(\$|%|\#|&|\{|\})/\\$1/g; $string =~ s/_/ /g; } else { - $string=~s/\\ /\\char92 /g; - $string=~s/\^/\\\^\\strut /g; - $string=~s/\~/\\char126 /g; - #fixup & if it doesn't look like - # { or α - $string=~s/(&(?!((\#[0-9]+)|([a-z]+));))/\\$1/gi; - $string=~s/([^&\\])\#/$1\\#/g; - $string=~s/\#\#/\#\\#/g; - $string=~s/(\$|_|{|})/\\$1/g; - $string=~s/\\char92 /\\texttt{\\char92}/g; - $string=~s/(>|<)/\$$1\$/g; #more or less - if ($string=~m/\d%/) {$string =~ s/(\d)%/$1\\%/g;} #percent after digit - if ($string=~m/\s%/) {$string =~ s/(\s)%/$1\\%/g;} #percent after space - if ($string eq '%.') {$string = '\%.';} #percent at the end of statement + $string=~s/([^\\])\%/$1\\\%/g; + $string=~s/([^\\])(\$|_)/$1\\$2/g; + $string=~s/\$\$/\$\\\$/g; + $string=~s/([^\\])\&/$1\\\&/g; + $string=~s/([^\\])\#/$1\\\#/g; + $string=~s/\#\#/\#\\\#/g; + $string=~s/([^\\])(\~|\^)/$1\\$2\\strut /g; + $string=~s/(>|<)/\\ensuremath\{$1\}/g; #more or less +#single { or } How to escape? } return $string; } @@ -511,7 +506,7 @@ sub inner_xmlparse { if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) { #Style file definitions should be correct if ($target eq 'tex' && ($Apache::lonxml::usestyle)) { - $result=&latex_special_symbols($result); + $result=&latex_special_symbols(&Apache::lonprintout::character_chart($result)); } } @@ -766,18 +761,18 @@ sub init_safespace { sub __LC_INTERNAL_EVALUATE__ { my ($__LC__a,$__LC__b,$__LC__c)=@_; my $__LC__prefix; - my $__LC__msg; while(1){ { - #use strict; + use strict; + no strict "vars"; if (eval(defined(eval($__LC__a.$__LC__b)))) { - return $__LC__msg.$__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c); + return $__LC__prefix.eval($__LC__a.$__LC__b.$__LC__c); } } $__LC__prefix.=substr($__LC__a,0,1,""); if ($__LC__a!~/^(\$|&|\#)/) { last; } } - return $__LC__prefix.$__LC__a.$__LC__b.$__LC__c.$__LC__msg; + return $__LC__prefix.$__LC__a.$__LC__b.$__LC__c; } EVALUATESUB $safeeval->permit("require"); @@ -1237,8 +1232,10 @@ sub handler { unless ($ENV{'request.state'} eq 'published') { if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) { if (&storefile($file,$ENV{'form.filecont'})) { - $request->print("".&mt('Updated').": ". -&Apache::lonlocal::locallocaltime(time)." "); + &Apache::lonxml::info("". + &mt('Updated').": ". + &Apache::lonlocal::locallocaltime(time). + " "); } } } @@ -1290,7 +1287,9 @@ ENDNOTFOUND if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) { my $displayfile=$request->uri; $displayfile=~s/^\/[^\/]*//; - $result='