changeset 23232:c5ac43d53bb1

use already existing function to get utf8 char in libmenu (thx to reimar)
author ben
date Mon, 07 May 2007 17:02:42 +0000
parents ab87f5488c7d
children 1efd3700f2e3
files libmenu/menu.c
diffstat 1 files changed, 4 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/libmenu/menu.c	Mon May 07 16:51:53 2007 +0000
+++ b/libmenu/menu.c	Mon May 07 17:02:42 2007 +0000
@@ -11,6 +11,7 @@
 
 #include "libvo/osd.h"
 #include "libvo/font_load.h"
+#include "libvo/sub.h"
 #include "osdep/keycodes.h"
 #include "asxparser.h"
 #include "stream/stream.h"
@@ -304,14 +305,9 @@
   int c;
   c = (unsigned char)*(*txt)++;
   if (c >= 0x80) {
-    if (menu_utf8){
-      if ((c & 0xe0) == 0xc0)    /* 2 bytes U+00080..U+0007FF*/
-        c = (c & 0x1f)<<6 | ((unsigned char)*(*txt)++ & 0x3f);
-      else if((c & 0xf0) == 0xe0){ /* 3 bytes U+00800..U+00FFFF*/
-        c = (((c & 0x0f)<<6) | ((unsigned char)*(*txt)++ & 0x3f))<<6;
-        c |= ((unsigned char)*(*txt)++ & 0x3f);
-      }
-    } else if (menu_unicode)
+    if (menu_utf8)
+      c = utf8_get_char((const char*)txt);
+    else if (menu_unicode)
       c = (c<<8) + (unsigned char)*(*txt)++;
   }
   if (!c) c++; // avoid UCS 0