nnn

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

commit 0f5f04d087f886e3c732975afa3dd69bbcfc625a
parent 0620b1dfb5c5e9a66a210c6111ea829f4c5b4ab7
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Sun, 17 Nov 2019 19:17:39 +0530

Revert "Fix #384: support busybox xargs"

This reverts commit 407b690404e60f3c66a8b7bb2b580b8d2e6e61f3.

Diffstat:
MREADME.md | 2+-
Msrc/nnn.c | 17+++++++++++------
2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md @@ -88,7 +88,7 @@ A curses library with wide char support (e.g. ncursesw), libreadline (`make O_NO | Dependency | Installation | Operation | | --- | --- | --- | | xdg-open (Linux), open(1) (macOS), cygstart (Cygwin) | base | desktop opener | -| file, coreutils (cp, mv, rm), xargs | base | file type, copy, move and remove | +| file, coreutils (cp, mv, rm), findutils (xargs) | base | file type, copy, move and remove | | tar, (un)zip [atool/bsdtar for more formats] | base | create, list, extract tar, gzip, bzip2, zip | | archivemount, fusermount(3) | optional | mount, unmount archives | | sshfs, fusermount(3) | optional | mount, unmount remotes | diff --git a/src/nnn.c b/src/nnn.c @@ -1278,7 +1278,7 @@ static bool xdiraccess(const char *path) static void opstr(char *buf, char *op) { #ifdef __linux__ - snprintf(buf, CMD_LEN_MAX, "cat %s | xargs -0 -%c {} %s {} .", g_selpath, REPLACE_STR, op); + snprintf(buf, CMD_LEN_MAX, "xargs -0 -a %s -%c {} %s {} .", g_selpath, REPLACE_STR, op); #else snprintf(buf, CMD_LEN_MAX, "cat %s | xargs -0 -o -%c {} %s {} .", g_selpath, REPLACE_STR, op); #endif @@ -1286,12 +1286,17 @@ static void opstr(char *buf, char *op) static void rmmulstr(char *buf) { - if (cfg.trash) - snprintf(buf, CMD_LEN_MAX, "cat %s | xargs -0 trash-put", g_selpath); - else { + if (cfg.trash) { + snprintf(buf, CMD_LEN_MAX, +#ifdef __linux__ + "xargs -0 -a %s trash-put", g_selpath); +#else + "cat %s | xargs -0 trash-put", g_selpath); +#endif + } else { snprintf(buf, CMD_LEN_MAX, #ifdef __linux__ - "cat %s | xargs -0 rm -%cr", g_selpath, confirm_force(TRUE)); + "xargs -0 -a %s rm -%cr", g_selpath, confirm_force(TRUE)); #else "cat %s | xargs -0 -o rm -%cr", g_selpath, confirm_force(TRUE)); #endif @@ -1330,7 +1335,7 @@ static bool cpmv_rename(int choice, const char *path) bool ret = FALSE; char *cmd = (choice == 'c' ? cp : mv); static const char formatcmd[] = "sed -i 's|^\\(\\(.*/\\)\\(.*\\)$\\)|#\\1\\n\\3|' %s"; - static const char renamecmd[] = "sed 's|^\\([^#][^/]\\?.*\\)$|%s/\\1|;s|^#\\(/.*\\)$|\\1|' %s | tr '\\n' '\\0' | xargs -0 -n2 %s"; + static const char renamecmd[] = "sed 's|^\\([^#][^/]\\?.*\\)$|%s/\\1|;s|^#\\(/.*\\)$|\\1|' %s | tr '\\n' '\\0' | xargs -0 -o -n2 %s"; char buf[sizeof(renamecmd) + sizeof(cmd) + (PATH_MAX << 1)]; fd = create_tmp_file();