From: Arun Prakash Jana Date: Wed, 28 Nov 2018 00:27:27 +0000 (+0530) Subject: cp, mv: use replacement string with xargs X-Git-Tag: v2.2~106 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=2a4cc85659f247704811da02338a8137908522b8;p=nnn.git cp, mv: use replacement string with xargs --- diff --git a/src/nnn.c b/src/nnn.c index 7a0ac905..93d4c321 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -322,6 +322,15 @@ static uint KQUEUE_FFLAGS = NOTE_DELETE | NOTE_EXTEND | NOTE_LINK | NOTE_RENAME static struct timespec gtimeout; #endif +/* Replace-str for xargs on different platforms */ +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) +#define REPLACE_STR 'J' +#elif defined(__linux__) || defined(__CYGWIN__) +#define REPLACE_STR 'I' +#else +#define REPLACE_STR 'I' +#endif + /* Macros for utilities */ #define MEDIAINFO 0 #define EXIFTOOL 1 @@ -3083,9 +3092,9 @@ nochange: } if (sel == SEL_CP) - snprintf(g_buf, MAX_CMD_LEN, "cat %s | xargs -0 -o cp -iRp -t .", g_cppath); + snprintf(g_buf, MAX_CMD_LEN, "cat %s | xargs -0 -o -%c src cp -iRp src .", g_cppath, REPLACE_STR); else if (sel == SEL_MV) - snprintf(g_buf, MAX_CMD_LEN, "cat %s | xargs -0 -o mv -i -t .", g_cppath); + snprintf(g_buf, MAX_CMD_LEN, "cat %s | xargs -0 -o -%c src mv -i src .", g_cppath, REPLACE_STR); else /* SEL_RMMUL */ snprintf(g_buf, MAX_CMD_LEN, "cat %s | xargs -0 -o rm -ir", g_cppath);