Diff for /loncom/homework/default_homework.lcpm between versions 1.149 and 1.150

version 1.149, 2010/10/14 19:54:56 version 1.150, 2010/10/18 19:47:31
Line 357  sub caparesponse_check_list { Line 357  sub caparesponse_check_list {
  }   }
     }      }
   
       my $allow_control_char = 0;
       my $control_chars_removed = 0;
       if ($type eq 'cs' || $type eq 'ci') {
           if (ref($LONCAPA::CAPAresponse_answer->{'answers'}) eq 'ARRAY') {
               foreach my $strans (@{$LONCAPA::CAPAresponse_answer->{'answers'}}) {
                   if ($strans =~ /[\000-\037]/) {
                       $allow_control_char = 1;
                   }
               }
           }
       }
   
 #    &LONCAPA_INTERNAL_DEBUG(&LONCAPA_INTERNAL_Dumper($responses));  #    &LONCAPA_INTERNAL_DEBUG(&LONCAPA_INTERNAL_Dumper($responses));
     my %memoized;      my %memoized;
Line 366  sub caparesponse_check_list { Line 377  sub caparesponse_check_list {
     my $response = $responses->[$i];      my $response = $responses->[$i];
     my $key = "$answer\0$response";      my $key = "$answer\0$response";
     my (@awards,@msgs);      my (@awards,@msgs);
     for (my $j=0; $j<scalar(@$response); $j++) {       for (my $j=0; $j<scalar(@$response); $j++) {
                   if ($type eq 'cs' || $type eq 'ci') {
                       unless ($allow_control_char) {
                           if ($response->[$j] =~ /[\000-\037]/) { 
                               $response->[$j] =~ s/[\000-\037]//g;
                               $control_chars_removed = 1;
                           }  
                       }
                   }
  my ($award,$msg) = &caparesponse_check($answer->[$j],   my ($award,$msg) = &caparesponse_check($answer->[$j],
        $response->[$j]);         $response->[$j]);
                 if ($type eq 'cs' || $type eq 'ci') {                  if ($type eq 'cs' || $type eq 'ci') {
Line 397  sub caparesponse_check_list { Line 416  sub caparesponse_check_list {
  } else {   } else {
     my (@awards,@msgs);      my (@awards,@msgs);
     for (my $j=0; $j<scalar(@$response); $j++) {      for (my $j=0; $j<scalar(@$response); $j++) {
                           if ($type eq 'cs' || $type eq 'ci') {
                               unless ($allow_control_char) {
                                   if ($response->[$j] =~ /[\000-\037]/) {
                                       $response->[$j] =~ s/[\000-\037]//g;
                                       $control_chars_removed = 1;
                                   }
                               }
                           }
  my ($award,$msg) = &caparesponse_check($answer->[$j],   my ($award,$msg) = &caparesponse_check($answer->[$j],
        $response->[$j]);         $response->[$j]);
                         if ($type eq 'cs' || $type eq 'ci') {                          if ($type eq 'cs' || $type eq 'ci') {
Line 449  sub caparesponse_check_list { Line 476  sub caparesponse_check_list {
     &LONCAPA_INTERNAL_DEBUG(" all final_awards ".join(':',@final_awards));      &LONCAPA_INTERNAL_DEBUG(" all final_awards ".join(':',@final_awards));
     my ($final_award,$final_msg) =       my ($final_award,$final_msg) = 
  &LONCAPA_INTERNAL_FINALIZEAWARDS(\@final_awards,\@final_msg,undef,1);   &LONCAPA_INTERNAL_FINALIZEAWARDS(\@final_awards,\@final_msg,undef,1);
     return ($final_award,$final_msg,$error);      return ($final_award,$final_msg,$error,$control_chars_removed);
 }  }
   
 sub verify_stringresponse {  sub verify_stringresponse {

Removed from v.1.149  
changed lines
  Added in v.1.150


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