[interchange-cvs] interchange - racke modified lib/Vend/Config.pm

interchange-core@interchange.redhat.com interchange-core@interchange.redhat.com
Mon May 27 08:07:01 2002


User:      racke
Date:      2002-05-27 12:06:11 GMT
Modified:  lib/Vend Config.pm
Log:
storage of MAP attribute revised

Revision  Changes    Path
2.42      +17 -7     interchange/lib/Vend/Config.pm


rev 2.42, prev_rev 2.41
Index: Config.pm
===================================================================
RCS file: /anon_cvs/repository/interchange/lib/Vend/Config.pm,v
retrieving revision 2.41
retrieving revision 2.42
diff -u -r2.41 -r2.42
--- Config.pm	25 May 2002 13:27:58 -0000	2.41
+++ Config.pm	27 May 2002 12:06:11 -0000	2.42
@@ -1,6 +1,6 @@
 # Vend::Config - Configure Interchange
 #
-# $Id: Config.pm,v 2.41 2002/05/25 13:27:58 racke Exp $
+# $Id: Config.pm,v 2.42 2002/05/27 12:06:11 racke Exp $
 #
 # Copyright (C) 1996-2001 Red Hat, Inc. <interchange@redhat.com>
 #
@@ -44,7 +44,7 @@
 use Vend::Parse;
 use Vend::Util;
 
-$VERSION = substr(q$Revision: 2.41 $, 10);
+$VERSION = substr(q$Revision: 2.42 $, 10);
 
 my %CDname;
 
@@ -2789,6 +2789,21 @@
 				$c->{$val} = $d;
 			}
 		}
+		elsif ($p eq 'MAP') {
+			my @f = split(/\s+/, $val);
+			if (@f < 2) {
+				config_error("At least two parameters needed for MAP.");
+			} elsif (@f > 3) {
+				config_error("Too much parameters for MAP.");
+			} elsif (@f == 2) {
+				@f = ($f[0], 'default', $f[1]);
+			}
+			$d->{OrigClass} = $d->{Class};
+			$d->{Class} = 'SHADOW';
+			$d->{type} = 10;
+			$d->{MAP}->{$f[0]}->{$f[1]} = $f[2];
+		}
+
 		else {
 			defined $d->{$p}
 				and
@@ -2799,11 +2814,6 @@
 					$d->{$p},
 				);
 			$d->{$p} = $val;
-		}
-		if ($p eq 'MAP') {
-			$d->{OrigClass} = $d->{Class};
-			$d->{Class} = 'SHADOW';
-			$d->{type} = 10;
 		}
 		$d->{HOT} = 1 if $d->{Class} eq 'MEMORY';
 	}