--- loncom/homework/matchresponse.pm	2004/10/07 20:28:30	1.46
+++ loncom/homework/matchresponse.pm	2005/01/10 19:21:57	1.49
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Full matching style response
 #
-# $Id: matchresponse.pm,v 1.46 2004/10/07 20:28:30 albertel Exp $
+# $Id: matchresponse.pm,v 1.49 2005/01/10 19:21:57 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -350,7 +350,16 @@ sub grade_response {
 	$itemstr;
     $Apache::lonhomework::results{"resource.$part.$id.submissiongrading"}=
 	$gradestr;
-    if (!$Apache::lonhomework::scantronmode) {
+    if ($Apache::lonhomework::type eq 'survey') {
+	if ($ignored == 0) {
+	    my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED';
+	    &Apache::response::handle_previous(\%previous,$ad);
+	} elsif ($wrong==0 && $right==0) {
+	} else {
+	    my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='MISSING_ANSWER';
+	    &Apache::response::handle_previous(\%previous,$ad);
+	}
+    } elsif (!$Apache::lonhomework::scantronmode) {
 	my $ad;
 	if ($wrong==0 && $ignored==0) {
 	    $ad='EXACT_ANS';
@@ -627,13 +636,20 @@ sub end_foil {
     if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {
 	$text=&Apache::lonxml::endredirection;
     }
+
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
 	$target eq 'tex' || $target eq 'analyze') {
+	if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') {
+	    $text='\vskip 5mm $\triangleright$ '.$text;
+	}
 	my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval);
 	if ($value ne 'unused') {
 	    my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
 	    &Apache::lonxml::debug("Got a name of :$name:");
-	    if (!$name) { $name=$Apache::lonxml::curdepth; }
+	    if (!$name) {
+		&Apache::lonxml::error("Foils without names exist. This can cause problems to malfunction.");
+		$name=$Apache::lonxml::curdepth;
+	    }
 	    &Apache::lonxml::debug("Using a name of :$name:");
 	    if (defined($Apache::response::foilnames{$name})) {
 		&Apache::lonxml::error(&mt("Foil name <b><tt>[_1]</tt></b> appears more than once. Foil names need to be unique.",$name));
@@ -645,28 +661,12 @@ sub end_foil {
 		 && !&Apache::response::showallfoils() ) {
 		push @{ $Apache::response::conceptgroup{'names'} }, $name;
 		$Apache::response::conceptgroup{"$name.value"} = $value;
-		if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') {
-		    $Apache::response::conceptgroup{"$name.text"} = ' $\triangleright$ '.$text;
-		} else {
-		    $Apache::response::conceptgroup{"$name.text"} = $text;
-		}
+		$Apache::response::conceptgroup{"$name.text"} = $text;
 		$Apache::response::conceptgroup{"$name.location"} = $location;
 	    } else {
 		push @{ $Apache::response::foilgroup{'names'} }, $name;
 		$Apache::response::foilgroup{"$name.value"} = $value;
-		if ($Apache::lonhomework::type eq 'exam') {
-		    if ($target eq 'tex') {
-			$Apache::response::foilgroup{"$name.text"} = '\vskip 5 mm $\triangleright$ '.$text;
-		    } else {
-			$Apache::response::foilgroup{"$name.text"} = $text;
-		    }
-		} else {
-		    if ($target eq 'tex') {
-			$Apache::response::foilgroup{"$name.text"} = $text;
-		    } else {
-			$Apache::response::foilgroup{"$name.text"} = $text;
-		    }
-		}
+		$Apache::response::foilgroup{"$name.text"} = $text;
 		$Apache::response::foilgroup{"$name.location"} = $location;
 	    }
 	}