Output some info about the size of our structures.
[rsync/rsync.git] / options.c
index 3c5ecb5..304704b 100644 (file)
--- 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";