From 7827b7ccdbfd639a0c49052ec7c94ae29c50f2ea Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Sat, 13 Jul 2013 17:38:58 +0200 Subject: hwstub: allow to escape shell with a function call Change-Id: I65b7b230d3b89a5014db134d3159861474fd889f --- utils/hwstub/tools/hwstub_shell.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'utils/hwstub') diff --git a/utils/hwstub/tools/hwstub_shell.cpp b/utils/hwstub/tools/hwstub_shell.cpp index 69e580f88e..86824b680c 100644 --- a/utils/hwstub/tools/hwstub_shell.cpp +++ b/utils/hwstub/tools/hwstub_shell.cpp @@ -37,6 +37,7 @@ * Global variables */ bool g_quiet = false; +bool g_exit = false; struct hwstub_device_t g_hwdev; struct usb_resp_info_version_t g_hwdev_ver; struct usb_resp_info_layout_t g_hwdev_layout; @@ -210,6 +211,12 @@ int my_lua_printlog(lua_State *state) return 0; } +int my_lua_exit(lua_State *state) +{ + g_exit = true; + return 0; +} + bool my_lua_import_hwstub() { int oldtop = lua_gettop(g_lua); @@ -340,6 +347,12 @@ bool my_lua_import_hwstub() lua_pushcfunction(g_lua, my_lua_help); lua_setglobal(g_lua, "help"); + lua_pushcfunction(g_lua, my_lua_exit); + lua_setglobal(g_lua, "exit"); + + lua_pushcfunction(g_lua, my_lua_exit); + lua_setglobal(g_lua, "quit"); + if(lua_gettop(g_lua) != oldtop) { printf("internal error: unbalanced my_lua_import_soc"); @@ -824,7 +837,7 @@ int main(int argc, char **argv) // use readline to provide some history and completion rl_bind_key('\t', rl_complete); - while(1) + while(!g_exit) { char *input = readline("> "); if(!input) -- cgit v1.2.3