[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Thu, 25 Sep 2003 20:25:05 -0000
matthew Thu Sep 25 16:25:05 2003 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
Added &convert_dump_to_currentdump() as this code is now needed in
loncoursedata.pm as well as lonnet::currentdump.
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.423 loncom/lonnet/perl/lonnet.pm:1.424
--- loncom/lonnet/perl/lonnet.pm:1.423 Thu Sep 25 16:02:54 2003
+++ loncom/lonnet/perl/lonnet.pm Thu Sep 25 16:25:04 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.423 2003/09/25 20:02:54 albertel Exp $
+# $Id: lonnet.pm,v 1.424 2003/09/25 20:25:04 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2220,27 +2220,7 @@
return if ($tmp[0] =~ /^(error:|no_such_host)/);
my %hash = @tmp;
@tmp=();
- # Code ripped from lond, essentially. The only difference
- # here is the unescaping done by lonnet::dump(). Conceivably
- # we might run in to problems with parameter names =~ /^v\./
- while (my ($key,$value) = each(%hash)) {
- my ($v,$symb,$param) = split(/:/,$key);
- next if ($v eq 'version' || $symb eq 'keys');
- next if (exists($returnhash{$symb}) &&
- exists($returnhash{$symb}->{$param}) &&
- $returnhash{$symb}->{'v.'.$param} > $v);
- $returnhash{$symb}->{$param}=$value;
- $returnhash{$symb}->{'v.'.$param}=$v;
- }
- #
- # Remove all of the keys in the hashes which keep track of
- # the version of the parameter.
- while (my ($symb,$param_hash) = each(%returnhash)) {
- # use a foreach because we are going to delete from the hash.
- foreach my $key (keys(%$param_hash)) {
- delete($param_hash->{$key}) if ($key =~ /^v\./);
- }
- }
+ %returnhash = %{&convert_dump_to_currentdump(\%hash)};
} else {
my @pairs=split(/\&/,$rep);
foreach (@pairs) {
@@ -2251,6 +2231,33 @@
}
}
return %returnhash;
+}
+
+sub convert_dump_to_currentdump{
+ my %hash = %{shift()};
+ my %returnhash;
+ # Code ripped from lond, essentially. The only difference
+ # here is the unescaping done by lonnet::dump(). Conceivably
+ # we might run in to problems with parameter names =~ /^v\./
+ while (my ($key,$value) = each(%hash)) {
+ my ($v,$symb,$param) = split(/:/,$key);
+ next if ($v eq 'version' || $symb eq 'keys');
+ next if (exists($returnhash{$symb}) &&
+ exists($returnhash{$symb}->{$param}) &&
+ $returnhash{$symb}->{'v.'.$param} > $v);
+ $returnhash{$symb}->{$param}=$value;
+ $returnhash{$symb}->{'v.'.$param}=$v;
+ }
+ #
+ # Remove all of the keys in the hashes which keep track of
+ # the version of the parameter.
+ while (my ($symb,$param_hash) = each(%returnhash)) {
+ # use a foreach because we are going to delete from the hash.
+ foreach my $key (keys(%$param_hash)) {
+ delete($param_hash->{$key}) if ($key =~ /^v\./);
+ }
+ }
+ return \%returnhash;
}
# --------------------------------------------------------------- put interface