Index: trunk/psModules/src/objects/mksource.pl
===================================================================
--- trunk/psModules/src/objects/mksource.pl	(revision 34259)
+++ trunk/psModules/src/objects/mksource.pl	(revision 34403)
@@ -14,9 +14,16 @@
 # validate the cmfmode
 
-# see if we can add in PS1_DV* and PS1_SV* as well...
-%cmfmodes = ("PS1_V1", 1,
-	     "PS1_V2", 2,
-	     "PS1_V3", 3,
-	     "PS1_V4", 4,
+# keep the series (V1,SV1,DV1) separate)
+%cmfmodes_v = ("PS1_V1", 1,
+	       "PS1_V2", 2,
+	       "PS1_V3", 3,
+	       "PS1_V4", 4,
+    );
+%cmfmodes_dv = ("PS1_DV1", 1,
+		"PS1_DV2", 2,
+		"PS1_DV3", 3,
+    );
+%cmfmodes_sv = ("PS1_SV1", 1,
+		"PS1_SV2", 2,
     );
 
@@ -118,8 +125,11 @@
 	if ($rule =~ m|^>=|) {
 	    print ">= rule: $rule\n" if $DEBUG;
-	    if ($cmfmodes{$cmfmode} == 0) { next; }
+	    # find the cmfmode series (v, dv, sv)
 	    $realrule = substr($rule,2);
-	    $thisLevel = $cmfmodes{$realrule};
-	    $myLevel = $cmfmodes{$cmfmode};
+	    %series = &cmf_series ($realrule);
+	    if (! %series) { next; }
+	    if ($series{$cmfmode} == 0) { next; }
+	    $thisLevel = $series{$realrule};
+	    $myLevel = $series{$cmfmode};
 	    print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
 	    if ($myLevel >= $thisLevel) { $keepLine = 1; }
@@ -130,8 +140,11 @@
 	if ($rule =~ m|^>|) {
 	    print "> rule: $rule\n" if $DEBUG;
-	    if ($cmfmodes{$cmfmode} == 0) { next; }
+	    # find the cmfmode series (v, dv, sv)
 	    $realrule = substr($rule,1);
-	    $thisLevel = $cmfmodes{$realrule};
-	    $myLevel = $cmfmodes{$cmfmode};
+	    %series = &cmf_series ($realrule);
+	    if (! %series) { next; }
+	    if ($series{$cmfmode} == 0) { next; }
+	    $thisLevel = $series{$realrule};
+	    $myLevel = $series{$cmfmode};
 	    print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
 	    if ($myLevel > $thisLevel) { $keepLine = 1; }
@@ -142,8 +155,11 @@
 	if ($rule =~ m|^<=|) {
 	    print "<= rule: $rule\n" if $DEBUG;
-	    if ($cmfmodes{$cmfmode} == 0) { next; }
+	    # find the cmfmode series (v, dv, sv)
 	    $realrule = substr($rule,2);
-	    $thisLevel = $cmfmodes{$realrule};
-	    $myLevel = $cmfmodes{$cmfmode};
+	    %series = &cmf_series ($realrule);
+	    if (! %series) { next; }
+	    if ($series{$cmfmode} == 0) { next; }
+	    $thisLevel = $series{$realrule};
+	    $myLevel = $series{$cmfmode};
 	    print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
 	    if ($myLevel <= $thisLevel) { $keepLine = 1; }
@@ -154,8 +170,11 @@
 	if ($rule =~ m|^<|) {
 	    print "< rule: $rule\n" if $DEBUG;
-	    if ($cmfmodes{$cmfmode} == 0) { next; }
+	    # find the cmfmode series (v, dv, sv)
 	    $realrule = substr($rule,1);
-	    $thisLevel = $cmfmodes{$realrule};
-	    $myLevel = $cmfmodes{$cmfmode};
+	    %series = &cmf_series ($realrule);
+	    if (! %series) { next; }
+	    if ($series{$cmfmode} == 0) { next; }
+	    $thisLevel = $series{$realrule};
+	    $myLevel = $series{$cmfmode};
 	    print "levels: $cmfmode, $realrule, $myLevel, $thisLevel\n" if $DEBUG;
 	    if ($myLevel < $thisLevel) { $keepLine = 1; }
@@ -174,2 +193,12 @@
 
 exit 0;
+
+sub cmf_series {
+
+    my ($rule) = $_[0];
+
+    if ($cmfmodes_v{$rule})  { return %cmfmodes_v;  }
+    if ($cmfmodes_sv{$rule}) { return %cmfmodes_sv; }
+    if ($cmfmodes_dv{$rule}) { return %cmfmodes_dv; }
+    return 0;
+}
