diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-11-24 23:15:19 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-11-30 20:48:40 +0100 |
commit | 247eb3c7a102ce184ca203978e74351d01cee79d (patch) | |
tree | 044c673c64541307809c9d4e204479fb5b7e8bba | |
parent | 4788869a3346b5b3f1f6a3cdb12fdf79da961ef9 (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>
-rw-r--r-- | src/cli.c | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -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) |