cp: ensure backups are created when -T specified
authorPádraig Brady <P@draigBrady.com>
Sat, 18 Dec 2010 02:50:33 +0000 (02:50 +0000)
committerPádraig Brady <P@draigBrady.com>
Sun, 19 Dec 2010 00:36:29 +0000 (00:36 +0000)
* src/cp.c (do_copy): When -T is specified, initialize
the NEW_DST and SB variables, which are checked when
running: cp -T --force --backup file file
* tests/cp/backup-1: Add the -T case

src/cp.c
tests/cp/backup-1

index 5b14f3a..3d00b5f 100644 (file)
--- a/src/cp.c
+++ b/src/cp.c
@@ -604,6 +604,8 @@ do_copy (int n_files, char **file, const char *target_directory,
           error (0, 0, _("extra operand %s"), quote (file[2]));
           usage (EXIT_FAILURE);
         }
+      /* Update NEW_DST and SB, which may be checked below.  */
+      ignore_value (target_directory_operand (file[n_files -1], &sb, &new_dst));
     }
   else if (!target_directory)
     {
index 94c1f2a..fb1c00b 100755 (executable)
@@ -30,8 +30,8 @@ echo test > $file || fail=1
 
 # Specify both version control and suffix so the environment variables
 # (possibly set by the user running these tests) aren't used.
-cp --force --backup=simple --suffix=$suffix $file $file \
-  || fail=1
+cp --force --backup=simple --suffix=$suffix $file $file || fail=1
+cp -T --force --backup=simple --suffix=$suffix $file $file || fail=1
 
 test -f $file || fail=1
 test -f $file_backup || fail=1