--- loncom/homework/essayresponse.pm	2012/12/18 17:09:45	1.117
+++ loncom/homework/essayresponse.pm	2019/02/19 14:24:38	1.118.2.1
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # essay (ungraded) style responses
 #
-# $Id: essayresponse.pm,v 1.117 2012/12/18 17:09:45 raeburn Exp $
+# $Id: essayresponse.pm,v 1.118.2.1 2019/02/19 14:24:38 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -210,16 +210,30 @@ sub end_essayresponse {
 				      &escape($crsid));
 			my $essayurl=
 			    &Apache::lonnet::declutter($ENV{'REQUEST_URI'});
-			my ($adom,$aname,$apath)=
-			    ($essayurl=~/^($LONCAPA::domain_re)\/($LONCAPA::username_re)\/(.*)$/);
-                        $apath=&escape($apath);
-			$apath=~s/\W/\_/gs;
-			&Apache::lonnet::put('nohist_essay_'.$apath,
-					 { $akey => $response },$adom,$aname);
-		    }
+                        if ($essayurl eq 'lib/templates/simpleproblem.problem') {
+                            my %crsinfo = &Apache::lonnet::coursedescription($crsid);
+                            my $cdom = $crsinfo{'domain'};
+                            my $cnum = $crsinfo{'num'};
+                            my ($map,$id,$res) = &Apache::lonnet::decode_symb($symb);
+                            if ($map =~ m{^\Quploaded/$cdom/$cnum/\E(default(?:|_\d+)\.(?:sequence|page))$}) {
+                                my $apath = $1.'_'.$id;
+                                $apath=~s/\W/\_/gs;
+                                my $akey = join('.',&escape($name),&escape($domain));
+                                &Apache::lonnet::put('nohist_essay_'.$apath,
+                                                     { $akey => $response },$cdom,$cnum);
+                            }
+                        } else {
+			    my ($adom,$aname,$apath)=
+			        ($essayurl=~/^($LONCAPA::domain_re)\/($LONCAPA::username_re)\/(.*)$/);
+                            $apath=&escape($apath);
+			    $apath=~s/\W/\_/gs;
+			    &Apache::lonnet::put('nohist_essay_'.$apath,
+                                                 { $akey => $response },$adom,$aname);
+                        }
+                    }
                 }
             }
-	} 
+        }
     } elsif ($target eq 'edit') {
 	$result.=&Apache::edit::end_table();
 
@@ -279,7 +293,7 @@ sub format_prior_response {
     }
     if ($answer =~ /\S/) {
 	$output.='<p>'.&mt('Submitted text').
-	    '<blockquote>'.$answer.'</blockquote></p>';
+	    '<blockquote>'.&HTML::Entities::encode($answer, '"<>&').'</blockquote></p>';
     }
 
     return '<div class="LC_prior_essay">'.$output.'</div>';