Skip to content

Commit 979ec0a

Browse files
author
Swamp Ig
committed
Wildcards for delete
1 parent 22ccd1e commit 979ec0a

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

Tests/ValueDelete.cfg

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ MMTEST
2323
-multiVal = dummy
2424
// Indexed
2525
-multiVal2,0 = dummy
26+
// Wildcard
27+
-num*ic = dummy
2628
}
2729
}
2830

@@ -35,7 +37,6 @@ MMTEST_EXPECT
3537
{
3638
name = module1
3739
multiVal2 = two
38-
numeric = 0
3940
}
4041
}
4142
}

moduleManager.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,20 @@ public ConfigNode ModifyNode(ConfigNode original, ConfigNode mod)
589589
if (v != null)
590590
newNode.values.Remove(v);
591591
}
592-
else
592+
else if (valName.Contains('*') || valName.Contains('?'))
593+
{
594+
// Delete all matching wildcard
595+
ConfigNode.Value last = null;
596+
while (true)
597+
{
598+
ConfigNode.Value v = FindValueIn(newNode, valName, index++);
599+
if (v == last)
600+
break;
601+
last = v;
602+
newNode.values.Remove(v);
603+
}
604+
}
605+
else
593606
{
594607
// Default is to delete ALL values that match. (backwards compatibility)
595608
newNode.RemoveValues(valName);

0 commit comments

Comments
 (0)