summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wilgus <me.theuser@yahoo.com>2018-10-30 22:40:23 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2018-11-01 16:34:02 +0100
commitbe7a58c33155e0f72ad7b1fb23cf931d085e12cb (patch)
tree201356811efb70aed3199194fbb4e61a599b2ff3
parentbbfe4778114c76e23e9c391225da2d6f74812735 (diff)
downloadrockbox-be7a58c.tar.gz
rockbox-be7a58c.zip
Lua Fix utf8encode, remove utf16 functions
The auto generated utf8/16 encode/decode functions did not work. Upon implementing them correctly I found that lua handles the utf-8 form properly but I could not get utf-16 to work without crashing maybe someone can come along later and implement utf-16 safe string functions but for now utf-16 is removed. Change-Id: I97a044e200dc27f683a45487cd93fce667c670c4
-rw-r--r--apps/plugins/lua/rocklib.c13
-rwxr-xr-xapps/plugins/lua/rocklib_aux.pl3
2 files changed, 16 insertions, 0 deletions
diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c
index 54c2bc0c03..ed625ca369 100644
--- a/apps/plugins/lua/rocklib.c
+++ b/apps/plugins/lua/rocklib.c
@@ -472,6 +472,16 @@ RB_WRAP(create_numbered_filename)
return 1;
}
+RB_WRAP(utf8encode)
+{
+ unsigned long ucs = (unsigned long) luaL_checkint(L, 1);
+ unsigned char tmp[9];
+ unsigned char *end = rb->utf8encode(ucs, tmp);
+ *end = '\0';
+ lua_pushstring(L, tmp);
+ return 1;
+}
+
#define RB_FUNC(func) {#func, rock_##func}
static const luaL_Reg rocklib[] =
{
@@ -520,6 +530,9 @@ static const luaL_Reg rocklib[] =
#if CONFIG_CODEC == SWCODEC
RB_FUNC(pcm),
#endif
+
+ RB_FUNC(utf8encode),
+
{NULL, NULL}
};
#undef RB_FUNC
diff --git a/apps/plugins/lua/rocklib_aux.pl b/apps/plugins/lua/rocklib_aux.pl
index f52c64e98b..f3705bf2d1 100755
--- a/apps/plugins/lua/rocklib_aux.pl
+++ b/apps/plugins/lua/rocklib_aux.pl
@@ -70,6 +70,9 @@ my @forbidden_functions = ('^open$',
'^s?+rand$',
'^strl?+cpy$',
'^strl?+cat$',
+ '^iso_decode$',
+ '^utf8encode$',
+ '^utf16',
'^codec_',
'^timer_',
'^lcd_(mono_)?+bitmap',