commit df6599ef784ba71420c2e06b0c9b21fb74654ad7
parent 688384568cba9f3e369434bf220b988da2f8357c
Author: Michael Forney <mforney@mforney.org>
Date: Fri, 30 Jul 2021 11:23:03 -0700
mv: Only remove source if copy succeeded
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/mv.c b/mv.c
@@ -20,9 +20,14 @@ mv(const char *s1, const char *s2, int depth)
if (errno == EXDEV) {
cp_aflag = cp_rflag = cp_pflag = 1;
cp_follow = 'P';
+ cp_status = 0;
+ rm_status = 0;
cp(s1, s2, depth);
- recurse(AT_FDCWD, s1, NULL, &r);
- return (mv_status = cp_status || rm_status);
+ if (cp_status == 0)
+ recurse(AT_FDCWD, s1, NULL, &r);
+ if (cp_status || rm_status)
+ mv_status = 1;
+ return 0;
}
mv_status = 1;