diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2009-05-03 21:49:44 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2009-05-03 21:49:44 +0000 |
commit | af9486a7f542c49a52bf97256da0af74f7fdbc8e (patch) | |
tree | 2962c881cc4dd3de756d5347d423ade02d40d97c | |
parent | b26ff12b7b1de2e4949f62047c172e2f373a4f70 (diff) | |
download | navit-af9486a7f542c49a52bf97256da0af74f7fdbc8e.tar.gz |
Fix:map_mg:Better handling of non ascii chars in street names
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@2249 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r-- | navit/map/mg/street.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/navit/map/mg/street.c b/navit/map/mg/street.c index c869c95fe..f3b0575bb 100644 --- a/navit/map/mg/street.c +++ b/navit/map/mg/street.c @@ -509,7 +509,6 @@ static unsigned char latin1_tolower_ascii(unsigned char c) { unsigned char ret=latin1_tolower(c); - dbg(0,"ret=0x%x\n",ret); switch (ret) { case 0xe4: return 'a'; @@ -561,7 +560,7 @@ strncasecmp_latin1_ascii(char *str1, char *str2, int len) static int street_search_compare_do(struct map_rect_priv *mr, int country, int town_assoc, char *name) { - int d; + int d,len; dbg(1,"enter"); dbg(1,"country 0x%x town_assoc 0x%x name '%s'\n", country, town_assoc, name); @@ -570,10 +569,10 @@ street_search_compare_do(struct map_rect_priv *mr, int country, int town_assoc, if (!d) { if (mr->search_item.id_lo == town_assoc ) { dbg(1,"town_assoc match (0x%x)\n", town_assoc); - if (mr->search_partial) - d=strncasecmp_latin1_ascii(mr->search_str, name, strlen(mr->search_str)); - else - d=strncasecmp_latin1_ascii(mr->search_str, name, INT_MAX); + len=mr->search_partial ? strlen(mr->search_str):INT_MAX; + d=strncasecmp_latin1(mr->search_str, name, len); + if (!strncasecmp_latin1_ascii(mr->search_str, name, len)) + d=0; dbg(1,"string %d\n", d); } else { if (town_assoc < mr->search_item.id_lo) |