]> Sergey Matveev's repositories - nnn.git/commitdiff
Fix 'batch_rename' moving symlinks
authorKlZX <azszwymmvqdi@yahoo.com>
Mon, 12 Aug 2019 09:36:09 +0000 (11:36 +0200)
committerKlZX <azszwymmvqdi@yahoo.com>
Mon, 12 Aug 2019 09:36:09 +0000 (11:36 +0200)
src/nnn.c

index 9290d945e8f48f1923e6e98ea318c9dd4da297d5..7f021cf102e6a5260f35b91cbc33591252a1723b 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -1213,13 +1213,7 @@ static bool batch_rename(const char *path)
        int fd1, fd2, i;
        uint count = 0, lines = 0;
        bool dir = FALSE, ret = FALSE;
-       const char renamecmd[] =
-#ifdef __OpenBSD__
-               /* OpenBSD does not have the -n option for mv */
-               "paste -d'\n' %s %s | tr '\n' '\\0' | xargs -0 -n2 mv 2>/dev/null";
-#else
-               "paste -d'\n' %s %s | tr '\n' '\\0' | xargs -0 -n2 mv -n 2>/dev/null";
-#endif
+       const char renamecmd[] = "awk 'FNR==NR{a[NR]=$0} a[FNR]!=$0{printf \"%%s\\0%%s\\0\",a[FNR],$0}' %s %s | xargs -0 -n2 mv 2>/dev/null";
        char foriginal[TMP_LEN_MAX] = {0};
        char buf[sizeof(renamecmd) + (PATH_MAX << 1)];