diff options
-rw-r--r-- | utils/hwstub/tools/hwstub_shell.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
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) |