diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-13 16:52:00 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-13 16:52:00 +0000 |
commit | d5fe880a57bc140f2e1469d2f1c75f815df94eff (patch) | |
tree | 666b3f300bf6eebfd407df9b6d4a0192275eeb8e /libbb/copy_file.c | |
parent | 9d96af2e83a9519ac89ff0f8dae7f8478d33f581 (diff) | |
download | busybox-w32-d5fe880a57bc140f2e1469d2f1c75f815df94eff.tar.gz busybox-w32-d5fe880a57bc140f2e1469d2f1c75f815df94eff.tar.bz2 busybox-w32-d5fe880a57bc140f2e1469d2f1c75f815df94eff.zip |
cp: add ENABLE_FEATURE_VERBOSE_CP_MESSAGE. Closes bug 1470
Diffstat (limited to 'libbb/copy_file.c')
-rw-r--r-- | libbb/copy_file.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libbb/copy_file.c b/libbb/copy_file.c index 3da8a3531..d37d51562 100644 --- a/libbb/copy_file.c +++ b/libbb/copy_file.c | |||
@@ -29,6 +29,7 @@ | |||
29 | // for POSIX mode to give reasonable error message | 29 | // for POSIX mode to give reasonable error message |
30 | static int ask_and_unlink(const char *dest, int flags) | 30 | static int ask_and_unlink(const char *dest, int flags) |
31 | { | 31 | { |
32 | int e = errno; | ||
32 | #if DO_POSIX_CP | 33 | #if DO_POSIX_CP |
33 | if (!(flags & (FILEUTILS_FORCE|FILEUTILS_INTERACTIVE))) { | 34 | if (!(flags & (FILEUTILS_FORCE|FILEUTILS_INTERACTIVE))) { |
34 | // Either it exists, or the *path* doesnt exist | 35 | // Either it exists, or the *path* doesnt exist |
@@ -50,7 +51,16 @@ static int ask_and_unlink(const char *dest, int flags) | |||
50 | return 0; // not allowed to overwrite | 51 | return 0; // not allowed to overwrite |
51 | } | 52 | } |
52 | if (unlink(dest) < 0) { | 53 | if (unlink(dest) < 0) { |
53 | bb_perror_msg("cannot remove '%s'", dest); | 54 | #if ENABLE_FEATURE_VERBOSE_CP_MESSAGE |
55 | if (e == errno && e == ENOENT) { | ||
56 | /* e == ENOTDIR is similar: path has non-dir component, | ||
57 | * but in this case we don't even reach copy_file() */ | ||
58 | bb_error_msg("cannot create '%s': Path does not exist", dest); | ||
59 | return -1; // error | ||
60 | } | ||
61 | #endif | ||
62 | errno = e; | ||
63 | bb_perror_msg("cannot create '%s'", dest); | ||
54 | return -1; // error | 64 | return -1; // error |
55 | } | 65 | } |
56 | return 1; // ok (to try again) | 66 | return 1; // ok (to try again) |