X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d619ff1376cf0a55ff2fa0a6baa776f22cac5139..5a3e9ff6081cb83873881df9a7bcfc19f9af5e58:/options.c diff --git a/options.c b/options.c index 3c5ecb5e..304704b0 100644 --- a/options.c +++ b/options.c @@ -116,7 +116,7 @@ int checksum_seed = 0; int inplace = 0; int delay_updates = 0; long block_size = 0; /* "long" because popt can't set an int32. */ - +int flist_extra_cnt = 0; /* count of file-list extras that everyone gets */ /** Network address family. **/ #ifdef INET6 @@ -1219,6 +1219,11 @@ int parse_arguments(int *argc, const char ***argv, int frommain) need_messages_from_generator = 1; } + if (preserve_uid) + preserve_uid = ++flist_extra_cnt; + if (preserve_gid) + preserve_gid = ++flist_extra_cnt; + *argv = poptGetArgs(pc); *argc = count_args(*argv); @@ -1661,11 +1666,11 @@ void server_options(char **args,int *argc) args[ac++] = "--delete"; if (delete_before > 1) args[ac++] = "--delete-before"; - if (delete_during) { - args[ac++] = delete_during == 2 ? "--delete-delay" - : "--delete-during"; - } - if (delete_after) + else if (delete_during == 2) + args[ac++] = "--delete-delay"; + else if (delete_during) + args[ac++] = "--delete-during"; + else if (delete_after) args[ac++] = "--delete-after"; if (force_delete) args[ac++] = "--force";