#include "rsync.h"
#include "popt.h"
+extern int module_id;
extern int sanitize_paths;
extern int select_timeout;
extern struct filter_list_struct filter_list;
int numeric_ids = 0;
int force_delete = 0;
int io_timeout = 0;
-int module_id = -1;
int am_server = 0;
-int am_sender = 0;
+int am_sender = -1;
int am_generator = 0;
char *files_from = NULL;
int filesfrom_fd = -1;
break;
case OPT_MAX_SIZE:
- for (arg = max_size_arg; isdigit(*arg); arg++) {}
+ for (arg = max_size_arg; isdigit(*(uchar*)arg); arg++) {}
if (*arg == '.')
- for (arg++; isdigit(*arg); arg++) {}
+ for (arg++; isdigit(*(uchar*)arg); arg++) {}
switch (*arg) {
case 'k': case 'K':
max_size = atof(max_size_arg) * 1024;
}
}
+ if (am_sender < 0)
+ am_sender = 0;
+
#if !SUPPORT_LINKS
if (preserve_links && !am_sender) {
snprintf(err_buf, sizeof err_buf,
"You may not combine multiple --delete-WHEN options.\n");
return 0;
}
- if (delete_before || delete_during || delete_after)
+ if (!recurse) {
+ delete_before = delete_during = delete_after = 0;
+ delete_mode = delete_excluded = 0;
+ } else if (delete_before || delete_during || delete_after)
delete_mode = 1;
else if (delete_mode || delete_excluded)
delete_mode = delete_before = 1;
if (copy_links)
argstr[x++] = 'L';
if (xfer_dirs > 1)
- argstr[x++] = 'k';
+ argstr[x++] = 'd';
if (keep_dirlinks && am_sender)
argstr[x++] = 'K';