Include hash.h.
authorJim Meyering <jim@meyering.net>
Thu, 22 Nov 2001 10:52:40 +0000 (10:52 +0000)
committerJim Meyering <jim@meyering.net>
Thu, 22 Nov 2001 10:52:40 +0000 (10:52 +0000)
(struct cp_options) [dest_info]: New member.

src/copy.h

index 6b949d048bd6409922fd98500e9aa3c74f95852b..0c88f7e7e7f6f9b2c7f8e91efc922a366af1c882 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef COPY_H
 # define COPY_H
 
+# include "hash.h"
+
 /* Control creation of sparse files (files with holes).  */
 enum Sparse_type
 {
@@ -153,6 +155,17 @@ struct cp_options
 
   /* If nonzero, stdin is a tty.  */
   int stdin_tty;
+
+  /* This is a set of destination name/inode/dev triples.  Each such triple
+     represents a file we have created corresponding to a source file name
+     that was specified on the command line.  Use it to avoid clobbering
+     source files in commands like this:
+       rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
+     For now, it protects only regular files when copying (i.e. not renaming).
+     When renaming, it protects all non-directories.
+     Use dest_info_init to initialize it, or set it to NULL to disable
+     this feature.  */
+  struct hash_table *dest_info;
 };
 
 int stat ();
@@ -184,6 +197,6 @@ copy PARAMS ((const char *src_path, const char *dst_path,
              int *copy_into_self, int *rename_succeeded));
 
 void
-dest_info_init PARAMS ((void));
+dest_info_init PARAMS ((struct cp_options *));
 
 #endif