--- loncom/homework/response.pm	2007/10/08 09:22:50	1.179
+++ loncom/homework/response.pm	2007/11/13 22:21:46	1.185
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # various response type definitons response definition
 #
-# $Id: response.pm,v 1.179 2007/10/08 09:22:50 foxr Exp $
+# $Id: response.pm,v 1.185 2007/11/13 22:21:46 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -452,7 +452,7 @@ sub end_customresponse {
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || 
 	$target eq 'tex' || $target eq 'analyze') {
 	&Apache::lonxml::increment_counter(&Apache::response::repetition(),
-					   $part);
+					   "$part.$id");
 	if ($target eq 'analyze') {
 	    &Apache::lonhomework::set_bubble_lines();
 	}
@@ -825,7 +825,10 @@ sub answer_footer {
 	$result .= join(' & ',@answer_bits);
 	$result .= ' \\\\ \\hline \end{tabular} \vskip 0 mm ';
     } else {
-	$result = '</tr></table>';
+	if (!$need_row_start) {
+	    $result .= '</tr>';
+	}
+	$result .= '</table>';
     }
     return $result;
 }
@@ -884,7 +887,6 @@ sub getresponse {
     if (!defined($lines)) {
 	$lines = 1;
     }
-
     my %let_to_num=('A'=>0,'B'=>1,'C'=>2,'D'=>3,'E'=>4,'F'=>5,'G'=>6,'H'=>7,
 		    'I'=>8,'J'=>9,'K'=>10,'L'=>11,'M'=>12,'N'=>13,'O'=>14,
 		    'P'=>15,'Q'=>16,'R'=>17,'S'=>18,'T'=>19,'U'=>20,'V'=>21,
@@ -895,10 +897,9 @@ sub getresponse {
 	
 	my $line;
 	for ($line = 0; $line < $lines; $line++) {
-	    $response = $env{'scantron.'.
-				 ($Apache::lonxml::counter+$offset-1+$line).
-				 '.answer'};
-	    if ($response ne "") {
+	    my $theline = $Apache::lonxml::counter+$offset-1+$line;
+	    $response = $env{"scantron.$theline.answer"};
+	    if ((defined($response)) && ($response ne "") && ($response ne " ")) {
 		last;
 	    }
 	    
@@ -907,7 +908,6 @@ sub getresponse {
 	# save bubbled letter for later
 	$Apache::lonhomework::results{"resource.$part.$id.scantron"}.=
 	    $response;
-
 	if ($resulttype ne 'letter') {
 	    if ($resulttype eq 'A is 1') {
 		$response = $let_to_num{$response}+1;
@@ -1050,7 +1050,7 @@ sub show_answer {
     my $award  = $Apache::lonhomework::history{"resource.$part.solved"};
     my $status = $Apache::inputtags::status[-1];
     return  ( ($award =~ /^correct/
-	       && lc($Apache::lonhomework::problemstatus) ne 'no')
+	       && &Apache::lonhomework::show_problem_status())
 	      || $status eq "SHOW_ANSWER");
 }