Merge branch 'upstream' into maemo
[navit-package] / navit / linguistics.c
index 464296a..6467c36 100644 (file)
@@ -32,6 +32,7 @@ static const char *special[][3]={
 /* – Stroke */
 {"Ł","L"},
 /* ˚ Ring */
+{"Å","A","AA"},
 {"Ů","U"},
 /* ˇ Caron */
 {"Č","C"},
@@ -42,6 +43,10 @@ static const char *special[][3]={
 {"Š","S"},
 {"Ť","T"},
 {"Ž","Z"},
+/* / Slash */
+{"Ø","O","OE"},
+/* ligatures */
+{"Æ","A","AE"},
 /* Small Diacritics */
 /* ¨ Diaresis */
 {"ä","a","ae"},
@@ -70,6 +75,7 @@ static const char *special[][3]={
 {"ł","l"},
 /* ˚ Ring */
 {"ů","u"},
+{"å","a", "aa"},
 /* ˇ Caron */
 {"č","c"},
 {"ď","d"},
@@ -79,7 +85,10 @@ static const char *special[][3]={
 {"š","s"},
 {"ť","t"},
 {"ž","z"},
+/* / Slash */
+{"ø","o", "oe"},
 /* ligatures */
+{"æ","a","ae"},
 {"ß","s","ss"},
 };
 
@@ -104,7 +113,7 @@ linguistics_expand_special(char *str, int mode)
                                        if (replace) {
                                                int replace_len=strlen(replace);
                                                dbg_assert(replace_len <= len);
-                                               dbg(1,"found %s %s %s\n",in,search,replace);
+                                               dbg(1,"found %s %s %d %s %d\n",in,search,len,replace,replace_len);
                                                strcpy(out, replace);
                                                out+=replace_len;
                                                match=1;
@@ -112,11 +121,11 @@ linguistics_expand_special(char *str, int mode)
                                        }
                                }
                        }
-                       in=next;
                }
-               if (match) 
+               if (match) {
                        found=1;
-               else {  
+                       in=next;
+               } else {
                        while (len-- > 0) 
                                *out++=*in++;
                }
@@ -132,7 +141,7 @@ linguistics_expand_special(char *str, int mode)
 char *
 linguistics_next_word(char *str)
 {
-       int len=strcspn(str, " -");
+       int len=strcspn(str, " -/()");
        if (!str[len] || !str[len+1])
                return NULL;
        return str+len+1;