Diff for /loncom/homework/optionresponse.pm between versions 1.134 and 1.135

version 1.134, 2006/03/15 00:08:53 version 1.135, 2006/03/15 17:10:49
Line 481  sub displayfoils { Line 481  sub displayfoils {
 }  }
   
   
 #  Correct a single option list element.  
 #  - For embedded <display></display> tags,  
 #    we pass literally the stuff between them.  
 #  - For everything else, we run through latex_special_symbols  
 #    so that any symbols that have meaning to LaTeX will be  
 #    correctly escaped.  
 #  
 sub correct_option {  
     my $option = shift;  
   
   
     # There's probably a beter way with perl if I was  
     # more of a regexp wiz..(RF).  
   
     my $strlen = length($option);  
     my $here   = 0; # Where to start searching for <display></display>  
     my $result =""; # The return string is built here.  
       
     while ($here < $strlen) {  
  # look for an opening <display> tag:  
   
  my $openloc = index($option, "<display>", $here);  
  if ($openloc == -1) {  
     # No more... operate with latex_special_symbols on  
     # the rest of the string.  
   
     $result .= &Apache::lonxml::latex_special_symbols(substr($option, $here));  
     return $result;  
  } else {  
     # Need to pass the string up to the <display> tag   
     # through l_s_s ...  
     $result .= &Apache::lonxml::latex_special_symbols(substr($option, $here, $openloc-$here));  
  }  
  # look for the closing </display> tag...  
  # We're a bit stupid..or tolerant...  
  # in that if the user forgets the </display> tag  
  # we infer they intended one at the end of the option.  
  $openloc += 9; # 9 chars in <display>  
   
  my $closeloc = index($option, "</display>", $openloc); # 9 chars in <display>  
  if ($closeloc == -1) {  
     $closeloc = $strlen + 9;                             # 10chars in </display> faked off end.   
  }  
  #  Pass from openloc through closeloc without any interpretation:  
   
  &Apache::lonnet::logthis("Segment inside display: $openloc through $closeloc");  
  $result .= substr($option, $openloc, $closeloc - $openloc);  
  $here    = $closeloc + 10;                               # Next search is after the </display>   
     }  
   
     return $result;  
   
     # return &Apache::lonxml::latex_special_symbols($option);  
 }  
   
 #  Correct the option list elements so that if there  
 #  are special symbosl that have meaning to LaTeX  
 #  they get fixed up to display correctly.  
   
 sub optionlist_correction {  sub optionlist_correction {
     my ($TeXlayout,@options) = @_;      my ($TeXlayout,@options) = @_;
     my $texoptionlist='\\item [] Choices: ';      my $texoptionlist='\\item [] Choices: ';
Line 547  sub optionlist_correction { Line 488  sub optionlist_correction {
     if (scalar(@options) > 0) {      if (scalar(@options) > 0) {
  foreach my $option (@options) {   foreach my $option (@options) {
     $texoptionlist.='{\bf '.      $texoptionlist.='{\bf '.
  &correct_option($option).   &Apache::lonxml::latex_special_symbols($option).
  '}';   '}';
     if ($TeXlayout eq 'vertical') {      if ($TeXlayout eq 'vertical') {
  $texoptionlist.=' \vskip 0 mm ',   $texoptionlist.=' \vskip 0 mm ',

Removed from v.1.134  
changed lines
  Added in v.1.135


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