From 1fde0dd8e4524a60e72419bcb732e8a96d94c3e5 Mon Sep 17 00:00:00 2001 From: Maurus Cuelenaere Date: Thu, 23 Jul 2009 00:54:35 +0000 Subject: Lua: return nil when kbd_input() gets aborted and make it possible to preset the input string (based on FS#10455 by Christophe Gragnic) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22008 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/lua/rocklib.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'apps/plugins') diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c index d6159e0ad3..c6b399c8a5 100644 --- a/apps/plugins/lua/rocklib.c +++ b/apps/plugins/lua/rocklib.c @@ -394,12 +394,22 @@ RB_WRAP(kbd_input) luaL_Buffer b; luaL_buffinit(L, &b); + const char *input = luaL_optstring(L, 1, NULL); char *buffer = luaL_prepbuffer(&b); - buffer[0] = '\0'; - rb->kbd_input(buffer, LUAL_BUFFERSIZE); - luaL_addsize(&b, strlen(buffer)); - luaL_pushresult(&b); + if(input != NULL) + rb->strlcpy(buffer, input, LUAL_BUFFERSIZE); + else + buffer[0] = '\0'; + + if(!rb->kbd_input(buffer, LUAL_BUFFERSIZE)) + { + luaL_addsize(&b, strlen(buffer)); + luaL_pushresult(&b); + } + else + lua_pushnil(L); + return 1; } -- cgit v1.2.3