﻿### Eclipse Workspace Patch 1.0
#P JOSM
Index: data/ignoretags.cfg
===================================================================
--- data/ignoretags.cfg	(revision 5443)
+++ data/ignoretags.cfg	(working copy)
@@ -219,70 +219,82 @@
 K:relation=to
 K:relation=from
 ;
-; Religious Key/Value Pairs
+; Christian Denominations
 ;
-T:religion=christian|denomination=anglican
-T:religion=muslim|denomination=alaouite
-T:religion=jewish|denomination=alternative
-T:religion=christian|denomination=apostolic
-T:religion=jewish|denomination=ashkenazi
-T:religion=christian|denomination=baptist
-T:religion=christian|denomination=catholic
-T:religion=christian|denomination=christian_community
-T:religion=christian|denomination=christian_scientist
-T:religion=jewish|denomination=conservative
-T:religion=christian|denomination=coptic_orthodox
-T:religion=christian|denomination=czechoslovak_hussite
-T:religion=muslim|denomination=druze
-T:religion=christian|denomination=dutch_reformed
-T:religion=christian|denomination=evangelical
-T:religion=pastafarian|denomination=EVKdFSMiD
-T:religion=christian|denomination=foursquare
-T:religion=christian|denomination=greek_orthodox
-T:religion=jewish|denomination=hasidic
-T:religion=jewish|denomination=humanistic
-T:religion=muslim|denomination=ibadi
-T:religion=muslim|denomination=ismaili
-T:religion=christian|denomination=jehovahs_witness
-T:religion=christian|denomination=kabbalah
-T:religion=christian|denomination=karaite
-T:religion=jewish|denomination=liberal
-T:religion=christian|denomination=living_waters_church
-T:religion=christian|denomination=lutheran
-T:religion=christian|denomination=maronite
-T:religion=other|denomination=masonic
-T:religion=christian|denomination=mennonite
-T:religion=christian|denomination=methodist
-T:religion=jewish|denomination=modern_orthodox
-T:religion=christian|denomination=mormon
-T:religion=jewish|denomination=neo_orthodox
-T:religion=christian|denomination=new_apostolic
-T:religion=christian|denomination=nondenominational
-T:religion=jewish|denomination=nondenominational
-T:religion=muslim|denomination=nondenominational
-T:religion=christian|denomination=old_catholic
-T:religion=christian|denomination=orthodox
-T:religion=jewish|denomination=orthodox
-T:religion=christian|denomination=pentecostal
-T:religion=christian|denomination=presbyterian
-T:religion=jewish|denomination=progressive
-T:religion=christian|denomination=protestant
-T:religion=christian|denomination=quaker
-T:religion=jewish|denomination=reconstructionist
-T:religion=jewish|denomination=reform
-T:religion=jewish|denomination=renewal
-T:religion=christian|denomination=roman_catholic
-T:religion=christian|denomination=russian_orthodox
-T:religion=christian|denomination=salvation_army
-T:religion=jewish|denomination=samaritan
-T:religion=christian|denomination=seventh_day_adventist
-T:religion=muslim|denomination=shia
-T:religion=muslim|denomination=sunni
-T:religion=jewish|denomination=ultra_orthodox
-T:religion=christian|denomination=united
-T:religion=christian|denomination=united_reformed
-T:religion=christian|denomination=uniting
+K:denomination=anglican
+K:denomination=apostolic
+K:denomination=baptist
+K:denomination=catholic
+K:denomination=christian_community
+K:denomination=christian_scientist
+K:denomination=coptic_orthodox
+K:denomination=czechoslovak_hussite
+K:denomination=dutch_reformed
+K:denomination=evangelical
+K:denomination=foursquare
+K:denomination=greek_orthodox
+K:denomination=jehovahs_witness
+K:denomination=kabbalah
+K:denomination=karaite
+K:denomination=living_waters_church
+K:denomination=lutheran
+K:denomination=maronite
+K:denomination=mennonite
+K:denomination=methodist
+K:denomination=mormon
+K:denomination=new_apostolic
+K:denomination=nondenominational
+K:denomination=old_catholic
+K:denomination=orthodox
+K:denomination=pentecostal
+K:denomination=presbyterian
+K:denomination=protestant
+K:denomination=quaker
+K:denomination=roman_catholic
+K:denomination=russian_orthodox
+K:denomination=salvation_army
+K:denomination=seventh_day_adventist
+K:denomination=united
+K:denomination=united_reformed
+K:denomination=uniting
 ;
+; Jewish Denominations
+;
+K:denomination=alternative
+K:denomination=ashkenazi
+K:denomination=conservative
+K:denomination=hasidic
+K:denomination=humanistic
+K:denomination=liberal
+K:denomination=modern_orthodox
+K:denomination=neo_orthodox
+K:denomination=nondenominational
+K:denomination=orthodox
+K:denomination=progressive
+K:denomination=reconstructionist
+K:denomination=reform
+K:denomination=renewal
+K:denomination=samaritan
+K:denomination=ultra_orthodox
+;
+; Muslim Denominations
+;
+K:denomination=alaouite
+K:denomination=druze
+K:denomination=ibadi
+K:denomination=ismaili
+K:denomination=nondenominational
+K:denomination=shia
+K:denomination=sunni
+;
+; Pastafarian Denominations
+;
+K:denomination=EVKdFSMiD
+;
+; Other Denominations
+;
+K:denomination=masonic
+;
 ; Shop Key/Value Pairs
 ;
 K:shop=alcohol
Index: src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 5443)
+++ src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(working copy)
@@ -82,7 +82,6 @@
     protected static final List<String> ignoreDataEquals = new ArrayList<String>();
     protected static final List<String> ignoreDataEndsWith = new ArrayList<String>();
     protected static final List<IgnoreKeyPair> ignoreDataKeyPair = new ArrayList<IgnoreKeyPair>();
-    protected static final List<IgnoreTwoKeyPair> ignoreDataTwoKeyPair = new ArrayList<IgnoreTwoKeyPair>();
 
     /** The preferences prefix */
     protected static final String PREFIX = ValidatorPreference.PREFIX + "." + TagChecker.class.getSimpleName();
@@ -174,7 +173,6 @@
         ignoreDataEquals.clear();
         ignoreDataEndsWith.clear();
         ignoreDataKeyPair.clear();
-        ignoreDataTwoKeyPair.clear();
 
         spellCheckKeyData = new HashMap<String, String>();
         String sources = Main.pref.get( PREF_SOURCES, "");
@@ -248,17 +246,6 @@
                             tmp.key = line.substring(0, mid);
                             tmp.value = line.substring(mid+1);
                             ignoreDataKeyPair.add(tmp);
-                        } else if (key.equals("T:")) {
-                            IgnoreTwoKeyPair tmp = new IgnoreTwoKeyPair();
-                            int mid = line.indexOf("=");
-                            int split = line.indexOf("|");
-                            tmp.key1 = line.substring(0, mid);
-                            tmp.value1 = line.substring(mid+1, split);
-                            line = line.substring(split+1);
-                            mid = line.indexOf("=");
-                            tmp.key2 = line.substring(0, mid);
-                            tmp.value2 = line.substring(mid+1);
-                            ignoreDataTwoKeyPair.add(tmp);
                         }
                         continue;
                     } else if (tagcheckerfile) {
@@ -361,41 +348,6 @@
         MultiMap<OsmPrimitive, String> withErrors = new MultiMap<OsmPrimitive, String>();
 
         if (checkComplex) {
-            Map<String, String> props = (p.getKeys() == null) ? Collections.<String, String>emptyMap() : p.getKeys();
-            for (Entry<String, String> prop : props.entrySet()) {
-                boolean ignore = true;
-                String key1 = prop.getKey();
-                String value1 = prop.getValue();
-
-                for (IgnoreTwoKeyPair a : ignoreDataTwoKeyPair) {
-                    if (key1.equals(a.key1) && value1.equals(a.value1)) {
-                        ignore = false;
-                        for (Entry<String, String> prop2 : props.entrySet()) {
-                            String key2 = prop2.getKey();
-                            String value2 = prop2.getValue();
-                            for (IgnoreTwoKeyPair b : ignoreDataTwoKeyPair) {
-                                if (key2.equals(b.key2) && value2.equals(b.value2)) {
-                                    ignore = true;
-                                    break;
-                                }
-                            }
-                            if (ignore) {
-                                break;
-                            }
-                        }
-                    }
-                    if (ignore) {
-                        break;
-                    }
-                }
-
-                if (!ignore) {
-                    errors.add( new TestError(this, Severity.OTHER, tr("Suspicious tag/value combinations"),
-                            tr("Suspicious tag/value combinations"), tr("Suspicious tag/value combinations"), 1272, p) );
-                    withErrors.put(p, "TC");
-                }
-            }
-
             Map<String, String> keys = p.getKeys();
             for (CheckerData d : checkerData) {
                 if (d.match(p, keys)) {
@@ -484,12 +436,6 @@
                             ignore = true;
                         }
                     }
-
-                    for (IgnoreTwoKeyPair a : ignoreDataTwoKeyPair) {
-                        if (key.equals(a.key2) && value.equals(a.value2)) {
-                            ignore = true;
-                        }
-                    }
                 }
                 
                 if (!ignore) {
@@ -800,13 +746,6 @@
         return false;
     }
 
-    protected static class IgnoreTwoKeyPair {
-        public String key1;
-        public String value1;
-        public String key2;
-        public String value2;
-    }
-
     protected static class IgnoreKeyPair {
         public String key;
         public String value;
Index: data/tagchecker.cfg
===================================================================
--- data/tagchecker.cfg	(revision 5443)
+++ data/tagchecker.cfg	(working copy)
@@ -141,3 +141,5 @@
 *    : W : psv                  == * && highway != * && railway != * && waterway != *  # psv without highway/railway/waterway
 *    : W : width                == * && highway != * && railway != * && waterway != * && aeroway != *  # width without highway/railway/waterway/aeroway
 *    : W : maxspeed             == * && highway != * && railway != * && traffic_sign != maxspeed # maxspeed without highway/railway/traffic_sign
+
+* : I : religion == /christian|jewish|muslim/ && denomination != * # religion without denomination
