From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Fri, 18 Sep 2020 15:15:47 +0000 (+0530)
Subject: Fix #728
X-Git-Tag: v3.5~57
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=56621705e8c041e95ba2f2c70d5e7473964b4055;p=nnn.git

Fix #728
---

diff --git a/src/nnn.c b/src/nnn.c
index 02618282..fdca607a 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -179,6 +179,12 @@
 #define CTX_MAX 8
 #endif
 
+#ifdef __APPLE__
+#define SED "gsed"
+#else
+#define SED "sed"
+#endif
+
 #define MIN_DISPLAY_COLS ((CTX_MAX * 2) + 2) /* Two chars for [ and ] */
 #define LONG_SIZE sizeof(ulong)
 #define ARCHIVE_CMD_LEN 16
@@ -671,11 +677,11 @@ static const char * const toks[] = {
 #define P_REPLACE 3
 
 static const char * const patterns[] = {
-	"sed -i 's|^\\(\\(.*/\\)\\(.*\\)$\\)|#\\1\\n\\3|' %s",
-	"sed 's|^\\([^#/][^/]\\?.*\\)$|%s/\\1|;s|^#\\(/.*\\)$|\\1|' "
+	SED" -i 's|^\\(\\(.*/\\)\\(.*\\)$\\)|#\\1\\n\\3|' %s",
+	SED" 's|^\\([^#/][^/]\\?.*\\)$|%s/\\1|;s|^#\\(/.*\\)$|\\1|' "
 		"%s | tr '\\n' '\\0' | xargs -0 -n2 sh -c '%s \"$0\" \"$@\" < /dev/tty'",
 	"\\.(bz|bz2|gz|tar|taz|tbz|tbz2|tgz|z|zip)$",
-	"sed -i 's|^%s\\(.*\\)$|%s\\1|' %s",
+	SED" -i 's|^%s\\(.*\\)$|%s\\1|' %s",
 };
 
 /* Colors */
@@ -2141,7 +2147,7 @@ static bool batch_rename(void)
 	uint count = 0, lines = 0;
 	bool dir = FALSE, ret = FALSE;
 	char foriginal[TMP_LEN_MAX] = {0};
-	static const char batchrenamecmd[] = "paste -d'\n' %s %s | sed 'N; /^\\(.*\\)\\n\\1$/!p;d' | "
+	static const char batchrenamecmd[] = "paste -d'\n' %s %s | "SED" 'N; /^\\(.*\\)\\n\\1$/!p;d' | "
 					     "tr '\n' '\\0' | xargs -0 -n2 mv 2>/dev/null";
 	char buf[sizeof(batchrenamecmd) + (PATH_MAX << 1)];
 	int i = get_cur_or_sel();
@@ -2239,9 +2245,9 @@ static void archive_selection(const char *cmd, const char *archive, const char *
 
 	snprintf(buf, CMD_LEN_MAX,
 #ifdef __linux__
-		"sed -ze 's|^%s/||' '%s' | xargs -0 %s %s", curpath, selpath, cmd, archive
+		SED" -ze 's|^%s/||' '%s' | xargs -0 %s %s", curpath, selpath, cmd, archive
 #else
-		"tr '\\0' '\n' < '%s' | sed -e 's|^%s/||' | tr '\n' '\\0' | xargs -0 %s %s",
+		"tr '\\0' '\n' < '%s' | "SED" -e 's|^%s/||' | tr '\n' '\\0' | xargs -0 %s %s",
 		selpath, curpath, cmd, archive
 #endif
 		);