Tweaked some whitespace to match the latest version from autoconf.
[rsync/rsync.git] / options.c
index 6509d95..6f26bea 100644 (file)
--- 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,   &copy_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) {