Hi,

Here's a patch to fix the not-contained filter with 'mkgmap:' prefixed tags
(e.g. mkgmap:us_interstate as used in relations of the default style ). The
current implementation produces duplicate Interstates and US highways when
a way is part of multiple relations.

Feedback is welcome.

Thanks, Ben
diff --git a/src/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilter.java b/src/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilter.java
index cd4e88e5..ca43e017 100644
--- a/src/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilter.java
+++ b/src/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilter.java
@@ -11,6 +11,7 @@
  */
 package uk.me.parabola.mkgmap.osmstyle.actions;
 
+import java.util.Arrays;
 import java.util.regex.Pattern;
 
 import uk.me.parabola.mkgmap.reader.osm.Element;
@@ -57,7 +58,8 @@ public class NotContainedFilter extends ValueFilter {
 		else
 			quotedSeparator = Pattern.quote(";");
 		// set the tag short value
-		tagKey = TagDict.getInstance().xlate(temp[1]);
+		String tag = String.join(":", Arrays.copyOfRange(temp, 1, temp.length));
+		tagKey = TagDict.getInstance().xlate(tag);
 	}
 
 	public String doFilter(String value, Element el) {
diff --git a/test/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilterTest.java b/test/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilterTest.java
index aaf98bd9..b468a00c 100644
--- a/test/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilterTest.java
+++ b/test/uk/me/parabola/mkgmap/osmstyle/actions/NotContainedFilterTest.java
@@ -49,6 +49,15 @@ public class NotContainedFilterTest {
 		assertNull(s);
 	}
 
+	@Test
+	public void test2ndArgContainedColonInTag() {
+		NotContainedFilter filter = new NotContainedFilter(":mkgmap:ref");
+		Element el = new Way(1);
+		el.addTag("mkgmap:ref", "x;y;z");
+		String s = filter.doFilter("x", el);
+		assertNull(s);
+	}
+
 	@Test
 	public void testNonDefaultDelimiterNotContained() {
 		NotContainedFilter filter = new NotContainedFilter("#:ref");
_______________________________________________
mkgmap-dev mailing list -- mkgmap-dev@lists.mkgmap.org.uk
To unsubscribe send an email to mkgmap-dev-le...@lists.mkgmap.org.uk
%(web_page_url)slistinfo/%(_internal_name)s

Reply via email to