Ticket #518: josm-normalization.patch

File josm-normalization.patch, 2.1 KB (added by moyogo@…, 18 years ago)

normalizing strings before comparison in SearchCompiler, and value in PropertiesDialog

  • src/org/openstreetmap/josm/actions/search/SearchCompiler.java

     
    8282                                return notValue;
    8383                        String v1 = caseSensitive ? value : value.toLowerCase();
    8484                        String v2 = caseSensitive ? this.value : this.value.toLowerCase();
     85                        v1 = java.text.Normalizer.normalize(v1, java.text.Normalizer.Form.NFC);
     86                        v2 = java.text.Normalizer.normalize(v2, java.text.Normalizer.Form.NFC);
    8587                        return (v1.indexOf(v2) != -1) != notValue;
    8688                }
    8789                @Override public String toString() {return key+"="+(notValue?"!":"")+value;}
     
    9496                        if (osm.keys == null)
    9597                                return s.equals("");
    9698                        String search = caseSensitive ? s : s.toLowerCase();
     99                        search = java.text.Normalizer.normalize(search, java.text.Normalizer.Form.NFC);
    97100                        for (Entry<String, String> e : osm.keys.entrySet()) {
    98101                                String key = caseSensitive ? e.getKey() : e.getKey().toLowerCase();
    99102                                String value = caseSensitive ? e.getValue() : e.getValue().toLowerCase();
     103                                value = java.text.Normalizer.normalize(value, java.text.Normalizer.Form.NFC);
    100104                                if (key.indexOf(search) != -1 || value.indexOf(search) != -1)
    101105                                        return true;
    102106                        }
    103107                        if (osm.user != null) {
    104                                 String name = osm.user.name;
     108                                String name = java.text.Normalizer.normalize(osm.user.name, java.text.Normalizer.Form.NFC);
    105109                                if (!caseSensitive)
    106110                                        name = name.toLowerCase();
    107111                                if (name.indexOf(search) != -1)
  • src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java

     
    168168                }
    169169
    170170                String value = valueField.getEditor().getItem().toString();
     171                value = java.text.Normalizer.normalize(value, java.text.Normalizer.Form.NFC);
    171172                if (value.equals(tr("<different>")))
    172173                        return;
    173174                if (value.equals(""))