[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 30 Aug 2002 18:36:03 -0000


albertel		Fri Aug 30 14:36:03 2002 EDT

  Modified files:              
    /loncom/lonnet/perl	lonnet.pm 
  Log:
  - fixing <import> metadata
     - now understands relative <import>s
     - generates correct parameter ids
     - depthcount works correctly
  
  
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.275 loncom/lonnet/perl/lonnet.pm:1.276
--- loncom/lonnet/perl/lonnet.pm:1.275	Wed Aug 28 17:50:27 2002
+++ loncom/lonnet/perl/lonnet.pm	Fri Aug 30 14:36:03 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.275 2002/08/28 21:50:27 stredwic Exp $
+# $Id: lonnet.pm,v 1.276 2002/08/30 18:36:03 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2797,7 +2797,7 @@
 	      my $package=$token->[2]->{'package'};
 	      my $keyroot='';
               if ($prefix) {
-		  $keyroot.='_'.$prefix;
+		  $keyroot.=$prefix;
               } else {
                 if (defined($token->[2]->{'part'})) { 
                    $keyroot.='_'.$token->[2]->{'part'}; 
@@ -2855,12 +2855,14 @@
 #
 # Importing a library here
 #                
-		 if (defined($depthcount)) { $depthcount++; } else 
-                                           { $depthcount=0; }
                  if ($depthcount<20) {
-		     foreach (split(/\,/,&metadata($uri,'keys',
-                                  $parser->get_text('/import'),$unikey,
-                                  $depthcount))) {
+		     my $location=$parser->get_text('/import');
+		     my $dir=$filename;
+		     $dir=~s|[^/]*$||;
+		     $location=&filelocation($dir,$location);
+		     foreach (sort(split(/\,/,&metadata($uri,'keys',
+							$location,$unikey,
+							$depthcount+1)))) {
                          $metathesekeys{$_}=1;
 		     }
 		 }