Ticket #17055: 17055-v1.patch

File 17055-v1.patch, 1.5 KB (added by GerdP, 5 years ago)
  • src/org/openstreetmap/josm/data/validation/tests/TagChecker.java

     
    524524                    // try to fix common typos and check again if value is still unknown
    525525                    String fixedValue = harmonizeValue(prop.getValue());
    526526                    Map<String, String> possibleValues = getPossibleValues(getPresetValues(key));
     527                    if (!possibleValues.containsKey(fixedValue)) {
     528                        int minDist = 2;
     529                        String closest = null;
     530                        for (String possibleVal : possibleValues.keySet()) {
     531                            int dist = Utils.getLevenshteinDistance(possibleVal, fixedValue);
     532                            if (dist < minDist) {
     533                                closest = possibleVal;
     534                                minDist = dist;
     535                            }
     536                        }
     537                        if (minDist <= 1) {
     538                            fixedValue = closest;
     539                        }
     540                    }
    527541                    if (possibleValues.containsKey(fixedValue)) {
    528542                        final String newValue = possibleValues.get(fixedValue);
    529543                        // misspelled preset value