Ticket #518: josm-normalization.patch

File josm-normalization.patch, 2.1 KB (added by moyogo@…, 4 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(""))