From 9272c90f93240ac114f6b09d99826bc29d0b699c Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Tue, 5 Nov 2019 22:05:49 +0530 Subject: [PATCH] Removal of current dir can be a pain without force --- src/nnn.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index 0346e819..9a2f05e3 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -619,12 +619,14 @@ static void xdelay(void) usleep(350000); /* 350 ms delay */ } -static char confirm_force(void) +static char confirm_force(bool selection) { - char str[64] = {0}; + char str[64] = "forcibly remove current file (UNRECOVERABLE)? [y/Y confirms]"; int r; - snprintf(str, 64, "forcibly remove %d files (UNRECOVERABLE)? [y/Y confirms]", nselected); + if (selection) + snprintf(str, 64, "forcibly remove %d file(s) (UNRECOVERABLE)? [y/Y confirms]", nselected); + r = get_input(str); if (r == 'y' || r == 'Y') @@ -1293,9 +1295,9 @@ static void rmmulstr(char *buf) } else { snprintf(buf, CMD_LEN_MAX, #ifdef __linux__ - "xargs -0 -a %s rm -%cr", g_selpath, confirm_force()); + "xargs -0 -a %s rm -%cr", g_selpath, confirm_force(TRUE)); #else - "cat %s | xargs -0 -o rm -%cr", g_selpath, confirm_force()); + "cat %s | xargs -0 -o rm -%cr", g_selpath, confirm_force(TRUE)); #endif } } @@ -1307,6 +1309,7 @@ static void xrm(char *path) else { char rm_opts[] = "-ir"; + rm_opts[1] = confirm_force(FALSE); spawn("rm", rm_opts, path, NULL, F_NORMAL); } }