diff --git a/findutils/Config.in b/findutils/Config.in index c66da742c..da8017af6 100644 --- a/findutils/Config.in +++ b/findutils/Config.in @@ -97,13 +97,37 @@ config CONFIG_XARGS xargs is used to execute a specified command on every item from standard input. -config CONFIG_FEATURE_XARGS_FANCY - bool " Enable extra options (-x -s -n and -E)" - default y +config CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION + bool " Enable prompt and confirmation option -p" + default n depends on CONFIG_XARGS help - Default xargs only provides the -t option, this enables the - x, s, n and E options. + Support prompt the user about whether to run each command + line and read a line from the terminal. + +config CONFIG_FEATURE_XARGS_SUPPORT_QUOTES + bool " Enable support single and double quotes and backslash" + default n + depends on CONFIG_XARGS + help + Default xargs unsupport single and double quotes + and backslash for can use aruments with spaces. + +config CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT + bool " Enable support options -x" + default n + depends on CONFIG_XARGS + help + Enable support exit if the size (see the -s or -n option) + is exceeded. + +config CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM + bool " Enable options -0" + default n + depends on CONFIG_XARGS + help + Enable input filenames are terminated by a null character + instead of by whitespace, and the quotes and backslash + are not special. endmenu - diff --git a/include/usage.h b/include/usage.h index 0b03102a7..851023ea5 100644 --- a/include/usage.h +++ b/include/usage.h @@ -2736,13 +2736,32 @@ #define whoami_full_usage \ "Prints the user name associated with the current effective user id." +#ifdef CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION +#define USAGE_XARGS_CONFIRMATION(a) a +#else +#define USAGE_XARGS_CONFIRMATION(a) +#endif +#ifdef CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT +#define USAGE_XARGS_TERMOPT(a) a +#else +#define USAGE_XARGS_TERMOPT(a) +#endif +#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM +#define USAGE_XARGS_ZERO_TERM(a) a +#else +#define USAGE_XARGS_ZERO_TERM(a) +#endif + + #define xargs_trivial_usage \ - "[COMMAND] [-prt] [ARGS...]" + "[COMMAND] [OPTIONS] [ARGS...]" #define xargs_full_usage \ "Executes COMMAND on every item given by standard input.\n\n" \ "Options:\n" \ - "\t-p\tPrompt the user about whether to run each command\n" \ + USAGE_XARGS_CONFIRMATION("\t-p\tPrompt the user about whether to run each command\n") \ "\t-r\tDo not run command for empty readed lines\n" \ + USAGE_XARGS_TERMOPT("\t-x\tExit if the size is exceeded\n") \ + USAGE_XARGS_ZERO_TERM("\t-0\tInput filenames are terminated by a null character\n") \ "\t-t\tPrint the command line on stderr before executing it." #define xargs_example_usage \ "$ ls | xargs gzip\n" \