return FALSE;
}
+static void cpstr(char *buf)
+{
+ snprintf(buf, CMD_LEN_MAX,
+#ifdef __linux__
+ "xargs -0 -a %s -%c src %s src .", g_cppath, REPLACE_STR, cp);
+#else
+ "cat %s | xargs -0 -o -%c src cp -iRp src .", g_cppath, REPLACE_STR);
+#endif
+}
+
+static void mvstr(char *buf)
+{
+ snprintf(buf, CMD_LEN_MAX,
+#ifdef __linux__
+ "xargs -0 -a %s -%c src %s src .", g_cppath, REPLACE_STR, mv);
+#else
+ "cat %s | xargs -0 -o -%c src mv -i src .", g_cppath, REPLACE_STR);
+#endif
+}
+
+static void rmmulstr(char *buf)
+{
+ snprintf(buf, CMD_LEN_MAX,
+#ifdef __linux__
+ "xargs -0 -a %s rm -%cr",
+#else
+ "cat %s | xargs -0 -o rm -%cr",
+#endif
+ g_cppath, confirm_force());
+}
+
+static void xrm(char *path)
+{
+ char rm_opts[] = {'-', confirm_force(), 'r'};
+
+ spawn("rm", rm_opts, path, NULL, F_NORMAL | F_SIGINT);
+}
+
static int digit_compare(const char *a, const char *b)
{
while (*a && *b && *a == *b)
switch (sel) {
case SEL_CP:
- snprintf(g_buf, CMD_LEN_MAX,
-#ifdef __linux__
- "xargs -0 -a %s -%c src %s src .",
- g_cppath, REPLACE_STR, cp);
-#else
- "cat %s | xargs -0 -o -%c src cp -iRp src .",
- g_cppath, REPLACE_STR);
-#endif
+ cpstr(g_buf);
break;
case SEL_MV:
- snprintf(g_buf, CMD_LEN_MAX,
-#ifdef __linux__
- "xargs -0 -a %s -%c src %s src .",
- g_cppath, REPLACE_STR, mv);
-#else
- "cat %s | xargs -0 -o -%c src mv -i src .",
- g_cppath, REPLACE_STR);
-#endif
+ mvstr(g_buf);
break;
default: /* SEL_RMMUL */
- snprintf(g_buf, CMD_LEN_MAX,
-#ifdef __linux__
- "xargs -0 -a %s rm -%cr",
-#else
- "cat %s | xargs -0 -o rm -%cr",
-#endif
- g_cppath, confirm_force());
+ rmmulstr(g_buf);
break;
}
if (!ndents)
break;
- char rm_opts[] = "-ir";
-
- rm_opts[1] = confirm_force();
-
mkpath(path, dents[cur].name, newpath);
- spawn("rm", rm_opts, newpath, NULL, F_NORMAL | F_SIGINT);
+ xrm(newpath);
/* Don't optimize cur if filtering is on */
if (!cfg.filtermode && cur && access(newpath, F_OK) == -1)