From be7a58c33155e0f72ad7b1fb23cf931d085e12cb Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Tue, 30 Oct 2018 22:40:23 -0400 Subject: 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 --- apps/plugins/lua/rocklib.c | 13 +++++++++++++ apps/plugins/lua/rocklib_aux.pl | 3 +++ 2 files changed, 16 insertions(+) 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', -- cgit v1.2.3