nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 72ecf6c4b85712361122ce905566cb5c4ff7f364
parent d38841d5f327f9ae4db6ca40a286c400b422b102
Author: NRK <nrk@disroot.org>
Date:   Thu, 24 Mar 2022 00:18:46 +0600

native prompt: clear selection on successful operation

have been using the %j substitution for a bit now, it's quite nice :)
but it's also quite annoying when doing something like

	mv "%j" ./

in this case, the files have been moved but the selection is incorrectly
points to them.

when there's a successful operation made on the selection via the native
prompt, it makes sense to clear the selection.

Diffstat:
Msrc/nnn.c | 6++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -5373,7 +5373,7 @@ static bool prompt_run(void) { bool ret = FALSE; char *cmdline, *next; - int cnt_j, cnt_J; + int cnt_j, cnt_J, cmd_ret; size_t len; const char *xargs_j = "xargs -0 -I{} %s < %s"; @@ -5433,7 +5433,9 @@ static bool prompt_run(void) else if (cnt_J) snprintf(cmd, CMD_LEN_MAX + 32, xargs_J, cmdline, selpath); - spawn(shell, "-c", (cnt_j || cnt_J) ? cmd : cmdline, NULL, F_CLI | F_CONFIRM); + cmd_ret = spawn(shell, "-c", (cnt_j || cnt_J) ? cmd : cmdline, NULL, F_CLI | F_CONFIRM); + if ((cnt_j || cnt_J) && cmd_ret == 0) + clearselection(); } return ret;