X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/4ce838e1f107239f1b18f3f8cd7c7fbab65e0bd5..9f125ea7c1a55f8c86b2efe296ba750d7ccb9106:/options.c diff --git a/options.c b/options.c index 60b59b0c..c34047d6 100644 --- a/options.c +++ b/options.c @@ -76,6 +76,7 @@ int filesfrom_fd = -1; char *remote_filesfrom_file = NULL; int eol_nulls = 0; int recurse = 0; +int keep_dirs = 0; int am_daemon = 0; int daemon_over_rsh = 0; int do_stats = 0; @@ -199,7 +200,7 @@ static void print_rsync_version(enum logcode f) rprintf(f, " %sinplace, %sIPv6, %d-bit system inums, %d-bit internal inums\n", have_inplace, ipv6, (int) (sizeof dumstat->st_ino * 8), - (int) (sizeof (uint64) * 8)); + (int) (sizeof (int64) * 8)); #ifdef MAINTAINER_MODE rprintf(f, " panic action: \"%s\"\n", get_panic_action()); @@ -850,6 +851,9 @@ int parse_arguments(int *argc, const char ***argv, int frommain) preserve_uid = 1; preserve_devices = 1; } + if (recurse) { + keep_dirs = 1; + } if (relative_paths < 0) relative_paths = files_from? 1 : 0; @@ -1003,6 +1007,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) return 0; } } + keep_dirs = 1; } return 1; @@ -1233,6 +1238,8 @@ void server_options(char **args,int *argc) if (!relative_paths) args[ac++] = "--no-relative"; } + if (!implied_dirs && !am_sender) + args[ac++] = "--no-implied-dirs"; *argc = ac; return;