--- a/src/lua_console.c Thu May 21 16:57:28 2009 +0300
+++ b/src/lua_console.c Thu May 21 16:57:56 2009 +0300
@@ -71,9 +71,24 @@
nexus_shutdown(lc->lua->nexus);
}
+static void lua_console_on_interrupt (void *arg)
+{
+ struct lua_console *lc = arg;
+
+ // abort thread so we can _start again
+ lua_thread_abort(&lc->thread);
+
+ // inform user
+ console_print(lc->console, "Execution aborted.");
+
+ // accept input
+ console_continue(lc->console);
+}
+
static struct console_callbacks _console_callbacks = {
- .on_line = lua_console_on_line,
- .on_eof = lua_console_on_eof,
+ .on_line = lua_console_on_line,
+ .on_eof = lua_console_on_eof,
+ .on_interrupt = lua_console_on_interrupt,
};
err_t lua_console_create (struct lua_console **lc_ptr, struct console *console, struct nexus_lua *lua, struct error_info *err)