From 0cbafaecb68a5977f99e00f4a084686193e1d5e1 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sat, 2 Aug 2014 14:40:04 +0000 Subject: [PATCH] cp: print error to stderr and continue --- util/cp.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/util/cp.c b/util/cp.c index eace1e7..030dfab 100644 --- a/util/cp.c +++ b/util/cp.c @@ -105,16 +105,24 @@ cp(const char *s1, const char *s2) } } - if(!(f1 = fopen(s1, "r"))) - eprintf("fopen %s:", s1); + if(!(f1 = fopen(s1, "r"))) { + weprintf("fopen %s:", s1); + cp_status = EXIT_FAILURE; + return 0; + } if(!(f2 = fopen(s2, "w"))) { if (cp_fflag == true) { unlink(s2); - if(!(f2 = fopen(s2, "w"))) - eprintf("fopen %s:", s2); + if(!(f2 = fopen(s2, "w"))) { + weprintf("fopen %s:", s2); + cp_status = EXIT_FAILURE; + return 0; + } } else { - eprintf("fopen %s:", s2); + weprintf("fopen %s:", s2); + cp_status = EXIT_FAILURE; + return 0; } } concat(f1, s1, f2, s2);