get_panic_action());
#endif
-#ifdef INT64_IS_OFF_T
- if (sizeof (int64) < 8)
- rprintf(f, "WARNING: no 64-bit integers on this platform!\n");
+#if SIZEOF_INT64 < 8
+ rprintf(f, "WARNING: no 64-bit integers on this platform!\n");
#endif
+ if (sizeof (int64) != SIZEOF_INT64) {
+ rprintf(f,
+ "WARNING: size mismatch in SIZEOF_INT64 define (%d != %d)\n",
+ (int) SIZEOF_INT64, (int) sizeof (int64));
+ }
rprintf(f,
"\n"
rprintf(F," --ignore-existing ignore files that already exist on receiving side\n");
rprintf(F," --del an alias for --delete-during\n");
rprintf(F," --delete delete files that don't exist on the sending side\n");
+ rprintf(F," --delete-before receiver deletes before transfer (default)\n");
rprintf(F," --delete-during receiver deletes during transfer, not before\n");
rprintf(F," --delete-after receiver deletes after transfer, not before\n");
rprintf(F," --delete-excluded also delete excluded files on the receiving side\n");
{"existing", 0, POPT_ARG_NONE, &only_existing, 0, 0, 0 },
{"ignore-existing", 0, POPT_ARG_NONE, &opt_ignore_existing, 0, 0, 0 },
{"delete", 0, POPT_ARG_NONE, &delete_mode, 0, 0, 0 },
+ {"delete-before", 0, POPT_ARG_VAL, &delete_before, 2, 0, 0 },
{"delete-during", 0, POPT_ARG_NONE, &delete_during, 0, 0, 0 },
{"delete-after", 0, POPT_ARG_NONE, &delete_after, 0, 0, 0 },
{"delete-excluded", 0, POPT_ARG_NONE, &delete_excluded, 0, 0, 0 },
if (relative_paths < 0)
relative_paths = files_from? 1 : 0;
- if (delete_during && delete_after) {
+ if (!!delete_before + delete_during + delete_after > 1) {
snprintf(err_buf, sizeof err_buf,
- "You may not combine --delete-during (--del) and --delete-after.\n");
+ "You may not combine multiple --delete-WHEN options.\n");
return 0;
}
- if (delete_during || delete_after)
+ if (delete_before || delete_during || delete_after)
delete_mode = 1;
else if (delete_mode || delete_excluded)
delete_mode = delete_before = 1;
if (am_sender) {
if (delete_excluded)
args[ac++] = "--delete-excluded";
- else if (delete_before || delete_after)
+ else if (delete_before == 1 || delete_after)
args[ac++] = "--delete";
+ if (delete_before > 1)
+ args[ac++] = "--delete-before";
if (delete_during)
args[ac++] = "--delete-during";
if (delete_after)