From df6599ef784ba71420c2e06b0c9b21fb74654ad7 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Fri, 30 Jul 2021 11:23:03 -0700 Subject: [PATCH] mv: Only remove source if copy succeeded --- mv.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mv.c b/mv.c index 7cf0e5a..0cda443 100644 --- 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;