summaryrefslogtreecommitdiffstats
path: root/src/cli.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2021-11-24 23:15:19 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2021-11-30 20:48:40 +0100
commit247eb3c7a102ce184ca203978e74351d01cee79d (patch)
tree044c673c64541307809c9d4e204479fb5b7e8bba /src/cli.c
parent4788869a3346b5b3f1f6a3cdb12fdf79da961ef9 (diff)
cli: save history on ctrl-d with editline
Missing call to cli_exit() to save the history when ctrl-d is pressed in nft -i. Moreover, remove call to rl_callback_handler_remove() in cli_exit() for editline cli since it does not call rl_callback_handler_install(). Fixes: bc2d5f79c2ea ("cli: use plain readline() interface with libedit") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/cli.c')
-rw-r--r--src/cli.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/cli.c b/src/cli.c
index 87291766..11fc85ab 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -152,13 +152,6 @@ static void cli_complete(char *line)
nft_run_cmd_from_buffer(cli_nft, line);
free(line);
}
-
-void cli_exit(void)
-{
- rl_callback_handler_remove();
- rl_deprep_terminal();
- write_history(histfile);
-}
#endif
#if defined(HAVE_LIBREADLINE)
@@ -188,6 +181,13 @@ int cli_init(struct nft_ctx *nft)
return 0;
}
+void cli_exit(void)
+{
+ rl_callback_handler_remove();
+ rl_deprep_terminal();
+ write_history(histfile);
+}
+
#elif defined(HAVE_LIBEDIT)
int cli_init(struct nft_ctx *nft)
@@ -212,10 +212,17 @@ int cli_init(struct nft_ctx *nft)
cli_complete(line);
}
+ cli_exit();
return 0;
}
+void cli_exit(void)
+{
+ rl_deprep_terminal();
+ write_history(histfile);
+}
+
#else /* HAVE_LINENOISE */
int cli_init(struct nft_ctx *nft)