From 206290a8a1c8fcc9514d55ced20273b2740095c8 Mon Sep 17 00:00:00 2001 From: harbaum <> Date: Wed, 23 Aug 2006 17:45:37 +0000 Subject: [lcd4linux @ 2006-08-23 17:45:37 by harbaum] Umlaut translation bugfix --- plugin_kvv.c | 37 ++++++++++++++++++++----------------- 1 file 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) { -- cgit v1.2.3