summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-05-03 21:49:44 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-05-03 21:49:44 +0000
commitaf9486a7f542c49a52bf97256da0af74f7fdbc8e (patch)
tree2962c881cc4dd3de756d5347d423ade02d40d97c
parentb26ff12b7b1de2e4949f62047c172e2f373a4f70 (diff)
downloadnavit-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.c11
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)