From f2d3f14d0665e7fc1b297a5dbb8dab61b49282ac Mon Sep 17 00:00:00 2001 From: Vadim Zhestikov Date: Fri, 30 Jun 2023 19:49:46 -0700 Subject: [PATCH] Improved interactive shell. --- external/njs_shell.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/external/njs_shell.c b/external/njs_shell.c index d3aec088..e8b221d2 100644 --- a/external/njs_shell.c +++ b/external/njs_shell.c @@ -1073,19 +1073,24 @@ njs_cb_line_handler(char *line_in) njs_int_t ret; njs_str_t line; - if (line_in == NULL || strcmp(line_in, ".exit") == 0) { + if (line_in == NULL) { njs_running = NJS_DONE; return; } - njs_sigint_count = 0; - line.start = (u_char *) line_in; line.length = njs_strlen(line.start); + if (strcmp(line_in, ".exit") == 0) { + njs_running = NJS_DONE; + goto free_line; + } + + njs_sigint_count = 0; + if (line.length == 0) { rl_callback_handler_install(">> ", njs_cb_line_handler); - return; + goto free_line; } add_history((char *) line.start); @@ -1099,6 +1104,8 @@ njs_cb_line_handler(char *line_in) rl_callback_handler_install(">> ", njs_cb_line_handler); } +free_line: + free(line.start); } -- 2.47.3