[LON-CAPA-cvs] cvs: loncom /xml londefdef.pm

www lon-capa-cvs@mail.lon-capa.org
Wed, 19 Feb 2003 14:30:10 -0000


www		Wed Feb 19 09:30:10 2003 EDT

  Modified files:              
    /loncom/xml	londefdef.pm 
  Log:
  image_replicate now takes complete file path as argument (incl. /home/httpd)
  
  Several fixes to image_replicate and calling thereof:
  * does now recognize relative paths
  * does recognize ".GIF" (uppercase extensions)
  * does recognize ".jpeg"
  * do not trust "early stop" in && boolean evaluation
  
  
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.117 loncom/xml/londefdef.pm:1.118
--- loncom/xml/londefdef.pm:1.117	Tue Feb 18 17:19:30 2003
+++ loncom/xml/londefdef.pm	Wed Feb 19 09:30:10 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.117 2003/02/18 22:19:30 www Exp $
+# $Id: londefdef.pm,v 1.118 2003/02/19 14:30:10 www Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -44,13 +44,13 @@
 
 package Apache::londefdef; 
 
-use Apache::lonnet;
+use Apache::lonnet();
 use strict;
-use Apache::lonxml;
+use Apache::lonxml();
 use Apache::File();
 use Image::Magick;
-use Apache::lonmenu;
-#use Apache::lonmeta;
+use Apache::lonmenu();
+use Apache::lonmeta();
 
 BEGIN {
 
@@ -1797,6 +1797,7 @@
     $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
 	$token->[2]->{'src'};
     my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
+    $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
     &image_replication($src);
     my $result;
     if ($target eq 'edit') {
@@ -2612,15 +2613,17 @@
 
 sub image_replication {
     my $src = shift;
-    if (not -e '/home/httpd/html'.$src) {
+    if (not -e $src) {
 	#replicates image itself
-	&Apache::lonnet::repcopy('/home/httpd/html'.$src);
+	&Apache::lonnet::repcopy($src);
 	#replicates eps or ps 
 	my $newsrc = $src;
-	$newsrc =~ s/\.(gif|jpg|png)$/.eps/;
-	if (not-e $newsrc && &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc) ne 'OK') {
-	    $newsrc =~ s/\.eps$/\.ps/;
-	    &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc);
+	$newsrc =~ s/\.(gif|jpg|jpeg|png)$/.eps/i;
+	if (not -e $newsrc) {
+           if (&Apache::lonnet::repcopy($newsrc) ne 'OK') {
+	       $newsrc =~ s/\.eps$/\.ps/;
+	       &Apache::lonnet::repcopy($newsrc);
+	   }
 	}
     }
     return '';