/** Copy a file.
*
- * This is used in conjunction with the --temp-dir and --backup options */
+ * This is used in conjunction with the --temp-dir, --backup, and
+ * --copy-dest options. */
int copy_file(char *source, char *dest, mode_t mode)
{
int ifd;
* empty line. This function can return only MAX_SAFE_NAMES values at a
* time! The returned value can be longer than MAXPATHLEN (because we
* may be trying to output an error about a too-long filename)! */
-const char *safe_fname(const char *fname)
+char *safe_fname(const char *fname)
{
#define MAX_SAFE_NAMES 4
static char fbuf[MAX_SAFE_NAMES][MAXPATHLEN*2];
break;
s_len = fn_len - (s - fn);
fn_len = s - fn;
- if (s_len == 3) {
+ if (s_len == 4) {
if (strcmp(s+1, "bak") == 0
|| strcmp(s+1, "old") == 0)
continue;
- } else if (s_len == 4) {
+ } else if (s_len == 5) {
if (strcmp(s+1, "orig") == 0)
continue;
} else if (s_len > 2 && had_tilde