summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cp.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/cp.c b/src/cp.c
index 8a947be66..a2cc551f6 100644
--- a/src/cp.c
+++ b/src/cp.c
@@ -541,18 +541,18 @@ do_copy (int n_files, char **file, const char *target_directory,
if (!dest_is_dir)
{
- if (target_directory)
+ if (target_directory || 1 < n_files)
{
- error (0, 0, _("%s: specified target is not a directory"),
- quote (dest));
- usage (EXIT_FAILURE);
- }
-
- if (n_files > 1)
- {
- error (0, 0,
- _("copying multiple files, but last argument %s is not a directory"),
- quote (dest));
+ char const *msg;
+ if (new_dst)
+ msg = N_("%s: specified destination directory does not exist");
+ else if (target_directory)
+ msg = N_("%s: specified target is not a directory");
+ else /* n_files > 1 */
+ msg =
+ N_("copying multiple files, but last argument %s is not a directory");
+
+ error (0, 0, _(msg), quote (dest));
usage (EXIT_FAILURE);
}
}