aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-11-05 22:05:49 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-11-05 22:05:49 +0530
commit9272c90f93240ac114f6b09d99826bc29d0b699c (patch)
treedaf61205630d122e70407e69c619023a9aedfe2d
parent8a7d2bd1edaa2f678a6dc6d62e840a96840fc9c5 (diff)
downloadnnn-9272c90f93240ac114f6b09d99826bc29d0b699c.tar.gz
Removal of current dir can be a pain without force
-rw-r--r--src/nnn.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 0346e81..9a2f05e 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);
}
}