]> git.kaiwu.me - njs.git/commitdiff
Improved interactive shell.
authorVadim Zhestikov <v.zhestikov@f5.com>
Sat, 1 Jul 2023 02:49:46 +0000 (19:49 -0700)
committerVadim Zhestikov <v.zhestikov@f5.com>
Sat, 1 Jul 2023 02:49:46 +0000 (19:49 -0700)
external/njs_shell.c

index d3aec0884485868bf7accb00f7519161daf1832a..e8b221d230e380264e5ecc9d6ae812d02dfe971c 100644 (file)
@@ -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);
 }