--- loncom/interface/lonprintout.pm	2004/07/15 16:00:16	1.316
+++ loncom/interface/lonprintout.pm	2004/09/29 06:07:36	1.316.2.4
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.316 2004/07/15 16:00:16 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.316.2.4 2004/09/29 06:07:36 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -629,24 +629,21 @@ sub print_latex_header {
 }
 
 sub path_to_problem {
-    my ($urlp,$LaTeXwidth)=@_;
+    my ($urlp,$colwidth)=@_;
     my $newurlp = '';
-    $LaTeXwidth=~s/\s*mm\s*$//;
-    my $HowMany = length($urlp)*2;
-    if ($HowMany > $LaTeXwidth) {
-	my @temporrary = split '/',$urlp;
-	my $HowManyNew = 0;
-	for (my $ii=0;$ii<=$#temporrary;$ii++) {
-	    if ($temporrary[$ii] ne '') {
-		$HowManyNew += length($temporrary[$ii])*2;
-		if ($HowManyNew < $LaTeXwidth ) {
-		    $newurlp .=  '/'.$temporrary[$ii];
-		} else {
-		    $HowManyNew = 0;
-		    $newurlp .=  '|\vskip -1 mm \noindent \verb|';
-		    $ii--;
-		}
+    $colwidth=~s/\s*mm\s*$//;
+#characters average about 2 mm in width
+    if (length($urlp)*2 > $LaTeXwidth) {
+	my @elements = split '/',$urlp;
+	my $curlength=0;
+	foreach my $element (@elements) {
+	    if ($curlength+(length($element)*2) > $colwidth) {
+		$newurlp .=  '|\vskip -1 mm \noindent \verb|';
+		$curlength=0;
+	    } else {
+		$curlength+=length($element)*2;
 	    }
+	    $newurlp.='/'.$element;
 	}
     } else {
 	$newurlp=$urlp;
@@ -1010,6 +1007,7 @@ ENDPART
 		$result .= $texversion;
 		$flag_latex_header_remove = 'YES';   
 	    }	    
+	    if (&Apache::loncommon::connection_aborted($r)) { last; }
 	}
 	&Apache::lonnet::delenv('form.counter');
 	if ($flag_page_in_sequence eq 'YES') {$result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;}	
@@ -1034,6 +1032,7 @@ ENDPART
 	 #loop over students
 	 my $flag_latex_header_remove = 'NO'; 
 	 my %moreenv;
+         $moreenv{'instructor_comments'}='hide';
 	 $moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth);
 	 $moreenv{'print_discussions'}=$helper->{'VARS'}->{'PRINT_DISCUSSIONS'};
 	 if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$moreenv{'problem_split'}='yes';}
@@ -1052,6 +1051,7 @@ ENDPART
 	     $student_names[$i].=$person.':'.$fullname.'_END_';
 	     &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,&mt('last student').' '.$fullname);
 	     $flag_latex_header_remove = 'YES';
+	     if (&Apache::loncommon::connection_aborted($r)) { last; }
 	 }
 	 &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
 	 $result .= $print_array[0].'  \end{document}';
@@ -1101,6 +1101,7 @@ ENDPART
 				       &mt('last assignment').' '.$fullname);
 	     $flag_latex_header_remove = 'YES';
 	     $count++;
+	     if (&Apache::loncommon::connection_aborted($r)) { last; }
 	 }
 	 &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
 	 $result .= $print_array[0].'  \end{document}';
@@ -1318,10 +1319,9 @@ sub print_resources {
 		    my $current_counter=$ENV{'form.counter'};
 		    if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
 		       ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
-			my %form;
-			$form{'answer_output_mode'}='tex';
-			$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
-			my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$ENV{'request.course.id'},%form);
+			$moreenv->{'answer_output_mode'}='tex';
+			$moreenv->{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
+			my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$ENV{'request.course.id'},%{$moreenv});
 			&Apache::lonnet::appenv(('form.counter' => $current_counter));
 			if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
 			    $rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/;
@@ -1364,6 +1364,7 @@ sub print_resources {
 	    }
 	    $remove_latex_header = 'YES';
 	}
+	if (&Apache::loncommon::connection_aborted($r)) { last; }
     }
     my $courseidinfo = &get_course();
     if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }