]> Sergey Matveev's repositories - nnn.git/commitdiff
Revert "Fix #384: support busybox xargs"
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 17 Nov 2019 13:47:39 +0000 (19:17 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 17 Nov 2019 13:47:39 +0000 (19:17 +0530)
This reverts commit 407b690404e60f3c66a8b7bb2b580b8d2e6e61f3.

README.md
src/nnn.c

index 169056f32791f0a5e58acfb933e1292e78c5c3bf..e968f4c8e3f22ea70bda6226cf76add2da0af745 100644 (file)
--- 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 |
index 9f6cd9bedeb3a531be95cbbf95a79f5c549d07f8..b50f8d40ffe5d0eeee4f0e95137d063330aff610 100644 (file)
--- 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();