#include "rsync.h"
extern int verbose;
+extern int suffix_specified;
extern char *backup_suffix;
extern char *backup_dir;
if (do_stat (fname, &st)) return 1;
#endif
- file = make_file(-1, fname, NULL, 1);
+ file = make_file(fname, NULL, NO_EXCLUDES);
/* the file could have disappeared */
if (!file) return 1;
/* make a complete pathname for backup file */
- if (strlen(backup_dir) + strlen(fname) > (MAXPATHLEN - 1)) {
+ if (strlen(backup_dir) + strlen(fname) +
+ (suffix_specified ? strlen(backup_suffix) : 0) > (MAXPATHLEN - 1)) {
rprintf (FERROR, "keep_backup filename too long\n");
return 0;
}
- snprintf(keep_name, sizeof (keep_name), "%s/%s", backup_dir, fname);
+ if (suffix_specified) {
+ snprintf(keep_name, sizeof (keep_name), "%s/%s%s", backup_dir, fname, backup_suffix);
+ } else {
+ snprintf(keep_name, sizeof (keep_name), "%s/%s", backup_dir, fname);
+ }
#ifdef HAVE_MKNOD
else
return (make_simple_backup(fname));
}
-