X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/2dbf36ef550d63550188480bb596c88cbeecf54a..b635bc92d16f538b2ea949580f55c86532d84843:/options.c diff --git a/options.c b/options.c index 6509d958..6f26bea8 100644 --- a/options.c +++ b/options.c @@ -58,8 +58,6 @@ int cvs_exclude = 0; int dry_run = 0; int do_xfers = 1; int ignore_times = 0; -int saw_delete_opt = 0; -int saw_delete_excluded_opt = 0; int delete_mode = 0; int delete_during = 0; int delete_before = 0; @@ -437,7 +435,9 @@ static struct poptOption long_options[] = { {"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 }, {"copy-dirlinks", 'k', POPT_ARG_NONE, ©_dirlinks, 0, 0, 0 }, {"keep-dirlinks", 'K', POPT_ARG_NONE, &keep_dirlinks, 0, 0, 0 }, - {"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 }, + {"hard-links", 'H', POPT_ARG_VAL, &preserve_hard_links, 1, 0, 0 }, + {"no-hard-links", 0, POPT_ARG_VAL, &preserve_hard_links, 0, 0, 0 }, + {"no-H", 0, POPT_ARG_VAL, &preserve_hard_links, 0, 0, 0 }, {"relative", 'R', POPT_ARG_VAL, &relative_paths, 1, 0, 0 }, {"no-relative", 0, POPT_ARG_VAL, &relative_paths, 0, 0, 0 }, {"no-R", 0, POPT_ARG_VAL, &relative_paths, 0, 0, 0 }, @@ -1176,11 +1176,10 @@ int parse_arguments(int *argc, const char ***argv, int frommain) } delete_mode = delete_before = 1; } - saw_delete_opt = delete_mode; - saw_delete_excluded_opt = delete_excluded; - if (!xfer_dirs) { - delete_before = delete_during = delete_after = 0; - delete_mode = delete_excluded = 0; + if (!xfer_dirs && delete_mode) { + snprintf(err_buf, sizeof err_buf, + "--delete does not work without -r or -d.\n"); + return 0; } if (delete_mode && refused_delete) {