Diff for /loncom/xml/lonxml.pm between versions 1.228 and 1.232

version 1.228, 2003/02/07 21:55:57 version 1.232, 2003/02/13 21:14:35
Line 145  $Apache::lonxml::registered=0; Line 145  $Apache::lonxml::registered=0;
 $Apache::lonxml::request='';  $Apache::lonxml::request='';
   
 # a problem number counter, and check on ether it is used  # a problem number counter, and check on ether it is used
 $Apache::lonxml::counter=1;  $Apache::lonxml::counter=4;
 $Apache::lonxml::counter_changed=0;  $Apache::lonxml::counter_changed=0;
   
 #internal check on whether to look at style defs  #internal check on whether to look at style defs
Line 603  sub xmlparse { Line 603  sub xmlparse {
  my ($request,$target,$content_file_string,$safeinit,%style_for_target) = @_;   my ($request,$target,$content_file_string,$safeinit,%style_for_target) = @_;
   
  &setup_globals($request,$target);   &setup_globals($request,$target);
    &Apache::inputtags::initialize_inputtags();
    &Apache::outputtags::initialize_outputtags();
    &Apache::edit::initialize_edit();
 #  #
 # do we have a course style file?  # do we have a course style file?
 #  #
Line 668  sub htmlclean { Line 671  sub htmlclean {
 }  }
   
 sub latex_special_symbols {  sub latex_special_symbols {
     my ($current_token,$stack,$parstack)=@_;      my ($current_token,$stack,$parstack,$where)=@_;
     $current_token=~s/\\ /\\char92 /g;      if ($where=='header') {
     $current_token=~s/\^/\\char94 /g;        $current_token =~ s/_/ /g;
     $current_token=~s/\~/\\char126 /g;        $current_token =~ s/\^/ /g;
     $current_token=~s/(&[^a-z\#])/\\$1/g;        $current_token =~ s/&/\\&/g;
     $current_token=~s/([^&])\#/$1\\#/g;      } else {
     $current_token=~s/(\$|_|{|})/\\$1/g;       $current_token=~s/\\ /\\char92 /g;
     $current_token=~s/\\char92 /\\texttt{\\char92}/g;       $current_token=~s/\^/\\char94 /g;
     $current_token=~s/>/\$>\$/g; #more       $current_token=~s/\~/\\char126 /g;
     $current_token=~s/</\$<\$/g; #less       $current_token=~s/(&[^a-z\#])/\\$1/g;
     if ($current_token=~m/\d%/) {$current_token =~ s/(\d)%/$1\\%/g;} #percent after digit       $current_token=~s/([^&])\#/$1\\#/g;
     if ($current_token=~m/\s%/) {$current_token =~ s/(\s)%/$1\\%/g;} #persent after space       $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
       }
     return $current_token;      return $current_token;
 }  }
   
Line 1210  sub parstring { Line 1219  sub parstring {
   foreach (@{$token->[3]}) {    foreach (@{$token->[3]}) {
     unless ($_=~/\W/) {      unless ($_=~/\W/) {
       my $val=$token->[2]->{$_};        my $val=$token->[2]->{$_};
       $val =~ s/([\%\@\\\"])/\\$1/g;        $val =~ s/([\%\@\\\"\'])/\\$1/g;
       #if ($val =~ m/^[\%\@]/) { $val="\\".$val; }        #if ($val =~ m/^[\%\@]/) { $val="\\".$val; }
       $temp .= "my \$$_=\"$val\";"        $temp .= "my \$$_=\"$val\";"
     }      }
Line 1500  sub get_param_var { Line 1509  sub get_param_var {
   if ( ! $context ) { $context = -1; }    if ( ! $context ) { $context = -1; }
   my $args ='';    my $args ='';
   if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; }    if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; }
     &Apache::lonxml::debug("Args are $args param is $param");
   if ($case_insensitive) {    if ($case_insensitive) {
       if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) {        if (! ($args=~s/(my \$)(\Q$param\E)(=\")/$1.lc($2).$3/ei)) {
   return undef;    return undef;
       }        }
   } elsif ( $args !~ /my \$\Q$param\E=\"/ ) { return undef; }    } elsif ( $args !~ /my \$\Q$param\E=\"/ ) { return undef; }
   my $value=&Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #'    my $value=&Apache::run::run("{$args;".'return $'.$param.'}',$safeeval); #'
   if ($value =~ /^[\$\@\%]/) {    &Apache::lonxml::debug("first run is $value");
     return &Apache::run::run("return $value",$safeeval,1);    if ($value =~ /^[\$\@\%]\w+$/) {
         &Apache::lonxml::debug("doing second");
         my @result=&Apache::run::run("return $value",$safeeval,1);
         if (!defined($result[0])) {
     return $value
         } else {
     if (wantarray) { return @result; } else { return $result[0]; }
         }
   } else {    } else {
     return $value;      return $value;
   }    }

Removed from v.1.228  
changed lines
  Added in v.1.232


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>