int blocking_io = -1;
int checksum_seed = 0;
int inplace = 0;
-unsigned int block_size = 0;
+long block_size = 0; /* "long" because popt can't set an int32. */
/** Network address family. **/
char *backup_dir = NULL;
char backup_dir_buf[MAXPATHLEN];
int rsync_port = 0;
+int compare_dest = 0;
int copy_dest = 0;
int link_dest = 0;
+int basis_dir_cnt = 0;
int verbose = 0;
int quiet = 0;
static int daemon_opt; /* sets am_daemon after option error-reporting */
static int modify_window_set;
-static int compare_dest = 0;
-static int basis_dir_cnt = 0;
-static char *dest_option;
+static char *dest_option = NULL;
static char *max_size_arg;
/** Local address to bind. As a character string because it's
rprintf(F," --backup-dir make backups into this directory\n");
rprintf(F," --suffix=SUFFIX backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX);
rprintf(F," -u, --update update only (don't overwrite newer files)\n");
- rprintf(F," --inplace update destination files inplace (SEE MAN PAGE)\n");
+ rprintf(F," --inplace update destination files in-place (SEE MAN PAGE)\n");
rprintf(F," -K, --keep-dirlinks treat symlinked dir on receiver as dir\n");
rprintf(F," -l, --links copy symlinks as symlinks\n");
rprintf(F," -L, --copy-links copy the referent of all symlinks\n");
{"relative", 'R', POPT_ARG_VAL, &relative_paths, 1, 0, 0 },
{"no-relative", 0, POPT_ARG_VAL, &relative_paths, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
- {"block-size", 'B', POPT_ARG_INT, &block_size, 0, 0, 0 },
+ {"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
{"max-size", 0, POPT_ARG_STRING, &max_size_arg, OPT_MAX_SIZE, 0, 0 },
{"timeout", 0, POPT_ARG_INT, &io_timeout, OPT_TIMEOUT, 0, 0 },
compare_dest = 1;
dest_option = "--compare-dest";
set_dest_dir:
- if (basis_dir_cnt >= MAX_BASIS_DIRS-1) {
+ if (basis_dir_cnt >= MAX_BASIS_DIRS) {
snprintf(err_buf, sizeof err_buf,
"ERROR: at most %d %s args may be specified\n",
MAX_BASIS_DIRS, dest_option);
am_server ? "server" : "client");
return 0;
#endif
- if (compare_dest || copy_dest || link_dest) {
- snprintf(err_buf, sizeof err_buf,
- "--inplace does not yet work with %s\n",
- dest_option);
- return 0;
- }
} else {
if (keep_partial && !partial_dir)
partial_dir = getenv("RSYNC_PARTIAL_DIR");
args[ac++] = argstr;
if (block_size) {
- if (asprintf(&arg, "-B%u", block_size) < 0)
+ if (asprintf(&arg, "-B%lu", block_size) < 0)
goto oom;
args[ac++] = arg;
}
args[ac++] = "--files-from=-";
args[ac++] = "--from0";
}
+ if (!relative_paths)
+ args[ac++] = "--no-relative";
}
*argc = ac;