diff options
author | harbaum <> | 2006-08-23 17:45:37 +0000 |
---|---|---|
committer | harbaum <> | 2006-08-23 17:45:37 +0000 |
commit | 206290a8a1c8fcc9514d55ced20273b2740095c8 (patch) | |
tree | df7945b8d22f26439f11f683189dcbb940ce17bf | |
parent | f7018244f5a7a23a5cb3ae590dcba6f58a05b210 (diff) | |
download | lcd4linux-206290a8a1c8fcc9514d55ced20273b2740095c8.tar.gz |
[lcd4linux @ 2006-08-23 17:45:37 by harbaum]
Umlaut translation bugfix
Diffstat (limited to '')
-rw-r--r-- | plugin_kvv.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/plugin_kvv.c b/plugin_kvv.c index e7aac35..bb3b840 100644 --- a/plugin_kvv.c +++ b/plugin_kvv.c @@ -1,4 +1,4 @@ -/* $Id: plugin_kvv.c,v 1.6 2006/08/17 19:11:41 harbaum Exp $ +/* $Id: plugin_kvv.c,v 1.7 2006/08/23 17:45:37 harbaum Exp $ * * plugin kvv (karlsruher verkehrsverbund) * @@ -23,6 +23,9 @@ * * * $Log: plugin_kvv.c,v $ + * Revision 1.7 2006/08/23 17:45:37 harbaum + * Umlaut translation bugfix + * * Revision 1.6 2006/08/17 19:11:41 harbaum * Small plugin_kvv bugfixes and new abbreviate option * @@ -309,6 +312,22 @@ static void process_station_string(char *str) "Marktplatz", "Marktpl.", }; + /* decode utf8 */ + p = q = str; + last = 0; + while (*p) { + if (last) { + *q++ = (last << 6) | (*p & 0x3f); + last = 0; + } else if ((*p & 0xe0) == 0xc0) { + last = *p & 3; + } else + *q++ = *p; + + p++; + } + *q++ = 0; + /* erase multiple spaces and replace umlauts */ p = q = str; last = 1; // no leading spaces @@ -333,22 +352,6 @@ static void process_station_string(char *str) } *q++ = 0; - /* decode utf8 */ - p = q = str; - last = 0; - while (*p) { - if (last) { - *q++ = (last << 6) | (*p & 0x3f); - last = 0; - } else if ((*p & 0xe0) == 0xc0) { - last = *p & 3; - } else - *q++ = *p; - - p++; - } - *q++ = 0; - /* replace certain (long) words with e.g. abbreviations if enabled */ if (abbreviate) { |