Allow "./configure --with-protect-args" to make -s the default.
authorWayne Davison <wayned@samba.org>
Tue, 29 Dec 2009 20:08:41 +0000 (12:08 -0800)
committerWayne Davison <wayned@samba.org>
Tue, 29 Dec 2009 20:08:41 +0000 (12:08 -0800)
configure.in
options.c

index 57bf538..347168a 100644 (file)
@@ -78,6 +78,12 @@ fi
 AC_ARG_WITH(included-popt,
         AC_HELP_STRING([--with-included-popt], [use bundled popt library, not from system]))
 
+AC_ARG_WITH(protected-args,
+        AC_HELP_STRING([--with-protected-args], [make --protected-args option the default]))
+if test x"$with_protected_args" = x"yes"; then
+       AC_DEFINE_UNQUOTED(RSYNC_USE_PROTECTED_ARGS, 1, [Define to 1 if --protected-args should be the default])
+fi
+
 AC_ARG_WITH(rsync-path,
        AC_HELP_STRING([--with-rsync-path=PATH], [set default --rsync-path to PATH (default: rsync)]),
        [ RSYNC_PATH="$with_rsync_path" ],
index 1f8f572..fa3bdcd 100644 (file)
--- a/options.c
+++ b/options.c
@@ -93,7 +93,7 @@ char *files_from = NULL;
 int filesfrom_fd = -1;
 char *filesfrom_host = NULL;
 int eol_nulls = 0;
-int protect_args = 0;
+int protect_args = -1;
 int human_readable = 1;
 int recurse = 0;
 int allow_inc_recurse = 1;
@@ -1278,7 +1278,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
        }
 
 #ifdef ICONV_OPTION
-       if (!am_daemon && !protect_args && (arg = getenv("RSYNC_ICONV")) != NULL && *arg)
+       if (!am_daemon && protect_args <= 0 && (arg = getenv("RSYNC_ICONV")) != NULL && *arg)
                iconv_opt = strdup(arg);
 #endif
 
@@ -1333,6 +1333,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
 #ifdef ICONV_OPTION
                        iconv_opt = NULL;
 #endif
+                       protect_args = 0;
                        poptFreeContext(pc);
                        pc = poptGetContext(RSYNC_NAME, argc, argv,
                                            long_daemon_options, 0);
@@ -1778,6 +1779,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                }
        }
 
+       if (protect_args < 0) {
+#ifdef RSYNC_USE_PROTECTED_ARGS
+               if (!am_server)
+                       protect_args = 1;
+               else
+#endif
+                       protect_args = 0;
+       }
+
        if (human_readable > 1 && argc == 2 && !am_server) {
                /* Allow the old meaning of 'h' (--help) on its own. */
                usage(FINFO);