[LON-CAPA-cvs] cvs: loncom /interface lonhelp.pm

bowersj2 lon-capa-cvs@mail.lon-capa.org
Tue, 15 Jul 2003 18:50:43 -0000


bowersj2		Tue Jul 15 14:50:43 2003 EDT

  Modified files:              
    /loncom/interface	lonhelp.pm 
  Log:
  Allow the joining together of various help files by seperating the names
  with commas in the file name.
  
  
Index: loncom/interface/lonhelp.pm
diff -u loncom/interface/lonhelp.pm:1.5 loncom/interface/lonhelp.pm:1.6
--- loncom/interface/lonhelp.pm:1.5	Tue Feb 25 17:50:11 2003
+++ loncom/interface/lonhelp.pm	Tue Jul 15 14:50:43 2003
@@ -132,17 +132,26 @@
      my $docroot = $r->dir_config('lonDocRoot');
      my $serverroot = $ENV{'HTTP_HOST'};
 
-     my $filename = substr ($ENV{'REQUEST_URI'} , 
+     my $filenames = substr ($ENV{'REQUEST_URI'} , 
 			    rindex($ENV{'REQUEST_URI'}, '/') + 1, -4);
      
      # Security check on the file; the whole filename must consist
      # of nothing but alphanums, ' ,, or ., or the file
      # will be "not found", no matter what.
      
-     return HTTP_NOT_FOUND if ($filename !~ /\A[-0-9a-zA-z_'',.]+\Z/);
+     return HTTP_NOT_FOUND if ($filenames !~ /\A[-0-9a-zA-z_'',.]+\Z/);
 
-     (my $file = Apache::File->new($docroot . "/adm/help/tex/".$filename.'.tex'))
-	 or return HTTP_NOT_FOUND;
+     # Join together the tex files, return HTTP_NOT_FOUND if any of
+     # them are not found
+     my $tex = '';
+     my @files = split(/,/, $filenames);
+     
+     for my $filename (@files) {
+	 (my $file = Apache::File->new($docroot
+			   . '/adm/help/tex/'.$filename.'.tex'))
+	     or return HTTP_NOT_FOUND;
+	 $tex .= join('', <$file>);
+     }
 
      # get me my environment if it exists
      &Apache::lonacc::handler($r);
@@ -165,7 +174,6 @@
 	 }
      }
 
-     my $tex = join('', <$file>);
      $tex = render($tex, $docroot, $serverroot);
      serveTex($tex, $r);