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
This commit is contained in:
Maurus Cuelenaere 2009-07-23 00:54:35 +00:00
parent 07a6aac401
commit 1fde0dd8e4

View file

@ -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));
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;
}