(copy): With -i and not -f, prompt for any type of
authorJim Meyering <jim@meyering.net>
Sat, 23 Nov 1996 04:15:35 +0000 (04:15 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 23 Nov 1996 04:15:35 +0000 (04:15 +0000)
(non-directory) source file before overwriting an existing target.
Reported by Mark A. Thomas.

src/cp.c

index 659369e..3910f9f 100644 (file)
--- a/src/cp.c
+++ b/src/cp.c
@@ -661,21 +661,22 @@ copy (const char *src_path, const char *dst_path, int new_dst, dev_t device,
                return 0;
            }
 
-         if (S_ISREG (src_type) && !flag_force)
+         if (!S_ISDIR (src_type) && !flag_force && flag_interactive)
            {
-             if (flag_interactive)
+             if (euidaccess (dst_path, W_OK) != 0)
                {
-                 if (euidaccess (dst_path, W_OK) != 0)
-                   fprintf (stderr,
-                            _("%s: overwrite `%s', overriding mode %04o? "),
-                            program_name, dst_path,
-                            (unsigned int) (dst_sb.st_mode & 07777));
-                 else
-                   fprintf (stderr, _("%s: overwrite `%s'? "),
-                            program_name, dst_path);
-                 if (!yesno ())
-                   return 0;
+                 fprintf (stderr,
+                          _("%s: overwrite `%s', overriding mode %04o? "),
+                          program_name, dst_path,
+                          (unsigned int) (dst_sb.st_mode & 07777));
                }
+             else
+               {
+                 fprintf (stderr, _("%s: overwrite `%s'? "),
+                          program_name, dst_path);
+               }
+             if (!yesno ())
+               return 0;
            }
 
          if (backup_type != none && !S_ISDIR (dst_sb.st_mode))