--- a/src/utils/copyfile.h
+++ b/src/utils/copyfile.h
@@ -18,14 +18,23 @@
 #define _COPYFILE_H_INCLUDED_
 
 #include <string>
-using std::string;
 
-enum CopyfileFlags {COPYFILE_NONE = 0, COPYFILE_NOERRUNLINK = 1};
+enum CopyfileFlags {COPYFILE_NONE = 0, 
+                    COPYFILE_NOERRUNLINK = 1,
+                    COPYFILE_EXCL = 2,
+};
 
-extern bool copyfile(const char *src, const char *dst, string &reason,
+/** Copy src to dst. 
+ *
+ * We destroy an existing dst except if COPYFILE_EXCL is set (or we if
+ * have no permission...).
+ * A partially copied dst is normally removed, except if COPYFILE_NOERRUNLINK 
+ * is set.
+ */
+extern bool copyfile(const char *src, const char *dst, std::string &reason,
 		     int flags = 0);
 
-// Try to rename, copy/unlink source if this fails (different devs)
-extern bool renameormove(const char *src, const char *dst, string &reason);
+/** Try to rename src. If this fails (different devices) copy then unlink src */
+extern bool renameormove(const char *src, const char *dst, std::string &reason);
 
 #endif /* _COPYFILE_H_INCLUDED_ */