diff options
author | Arun Prakash Jana <engineerarun@gmail.com> | 2019-11-05 22:05:49 +0530 |
---|---|---|
committer | Arun Prakash Jana <engineerarun@gmail.com> | 2019-11-05 22:05:49 +0530 |
commit | 9272c90f93240ac114f6b09d99826bc29d0b699c (patch) | |
tree | daf61205630d122e70407e69c619023a9aedfe2d | |
parent | 8a7d2bd1edaa2f678a6dc6d62e840a96840fc9c5 (diff) | |
download | nnn-9272c90f93240ac114f6b09d99826bc29d0b699c.tar.gz |
Removal of current dir can be a pain without force
-rw-r--r-- | src/nnn.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -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); } } |