---- orig/flist.c 2005-02-09 02:37:15
-+++ flist.c 2005-01-30 10:11:42
-@@ -46,6 +46,8 @@ extern char curr_dir[MAXPATHLEN];
- extern unsigned int curr_dir_len;
- extern char *backup_dir;
- extern char *backup_suffix;
-+extern char *backup_dir_rm;
-+extern char *backup_suffix_rm;
- extern int filesfrom_fd;
-
- extern int one_file_system;
-@@ -60,6 +62,7 @@ extern int relative_paths;
- extern int implied_dirs;
- extern int make_backups;
- extern int backup_suffix_len;
-+extern int backup_suffix_rm_len;
- extern int copy_links;
- extern int copy_unsafe_links;
- extern int protocol_version;
-@@ -1664,10 +1667,14 @@ char *f_name(struct file_struct *f)
- }
-
-
-+/* Function now checks if file matches backup or delete suffix patterns */
- static int is_backup_file(char *fn)
- {
- int k = strlen(fn) - backup_suffix_len;
-- return k > 0 && strcmp(fn+k, backup_suffix) == 0;
-+ if (k > 0 && strcmp(fn+k, backup_suffix) == 0)
-+ return 1;
-+ k += backup_suffix_len - backup_suffix_rm_len;
-+ return k > 0 && strcmp(fn+k, backup_suffix_rm) == 0;
- }
-
-
-@@ -1755,11 +1762,12 @@ void delete_missing(struct file_list *fu
- if ((j = flist_find(full_list, dir_list->files[i])) < 0
- || (S_ISDIR(mode) && !S_ISDIR(full_list->files[j]->mode))) {
- char *f = f_name(dir_list->files[i]);
-- if (make_backups && (backup_dir || !is_backup_file(f))
-+ int backup_file = is_backup_file(f);
-+ if (make_backups && (backup_dir_rm || !backup_file)
- && !S_ISDIR(mode)) {
-- make_backup(f);
-+ safe_delete(f);
- if (verbose) {
-- rprintf(FINFO, "deleting %s\n",
-+ rprintf(FINFO, "safe-deleting %s\n",
- safe_fname(f));
- }
- } else if (S_ISDIR(mode))
---- orig/options.c 2005-02-11 18:21:45
-+++ options.c 2005-01-28 19:17:35
-@@ -118,10 +118,14 @@ int no_detach = 0;