The suffix must be non-empty if the backup-dir is the same as the dest
authorWayne Davison <wayned@samba.org>
Sun, 12 Apr 2009 00:31:13 +0000 (17:31 -0700)
committerWayne Davison <wayned@samba.org>
Sun, 12 Apr 2009 00:31:13 +0000 (17:31 -0700)
dir.

main.c
options.c

diff --git a/main.c b/main.c
index 75e9a2f..bf0bb14 100644 (file)
--- a/main.c
+++ b/main.c
@@ -825,10 +825,8 @@ static int do_recv(int f_in, int f_out, char *local_name)
                        exit_cleanup(RERR_SYNTAX);
                if (ret)
                        rprintf(FINFO, "Created backup_dir %s\n", backup_dir_buf);
-               else if (INFO_GTE(BACKUP, 1)) {
-                       char *dir = *backup_dir_buf ? backup_dir_buf : ".";
-                       rprintf(FINFO, "backup_dir is %s\n", dir);
-               }
+               else if (INFO_GTE(BACKUP, 1))
+                       rprintf(FINFO, "backup_dir is %s\n", backup_dir_buf);
        }
 
        io_flush(NORMAL_FLUSH);
index 5af0a31..aed912d 100644 (file)
--- a/options.c
+++ b/options.c
@@ -2008,13 +2008,21 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                                "the --backup-dir path is WAY too long.\n");
                        return 0;
                }
-               if (backup_dir_len && backup_dir_buf[backup_dir_len - 1] != '/') {
+               if (!backup_dir_len) {
+                       backup_dir_len = -1;
+                       backup_dir = NULL;
+               } else if (backup_dir_buf[backup_dir_len - 1] != '/') {
                        backup_dir_buf[backup_dir_len++] = '/';
                        backup_dir_buf[backup_dir_len] = '\0';
                }
+       }
+       if (backup_dir) {
+               /* No need for a suffix or a protect rule. */
        } else if (!backup_suffix_len && (!am_server || !am_sender)) {
                snprintf(err_buf, sizeof err_buf,
-                       "--suffix cannot be a null string without --backup-dir\n");
+                       "--suffix cannot be empty %s\n", backup_dir_len < 0
+                       ? "when --backup-dir is the same as the dest dir"
+                       : "without a --backup-dir");
                return 0;
        } else if (make_backups && delete_mode && !delete_excluded && !am_server) {
                snprintf(backup_dir_buf, sizeof backup_dir_buf,