aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nnn.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nnn.c b/src/nnn.c
index ba8cef6..75044b6 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -2967,6 +2967,20 @@ nochange:
goto nochange;
if (cfg.copymode) {
+ /*
+ * Clear the tmp copy path file on first copy.
+ *
+ * This ensures that when the first file path is
+ * copied into memory (but not written to tmp file
+ * yet to save on writes), the tmp file is cleared.
+ * The user may be in the middle of a multicopy op
+ * and issue a cp, mv of multi-rm assuming the files
+ * in the copy list would be affected. However, these
+ * ops read the source file paths from the tmp file.
+ */
+ if (!ncp)
+ writecp(NULL, 0);
+
r = mkpath(path, dents[cur].name, newpath, PATH_MAX);
if (!appendfpath(newpath, r))
goto nochange;