cut: tweak --help

function                                             old     new   delta
packed_usage                                       34901   34934     +33
cut_main                                            1353    1339     -14
.rodata                                           105724  105685     -39
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 33/-53)            Total: -20 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2024-12-11 01:10:05 +01:00
parent 9e364b16d1
commit a4894eaf71
2 changed files with 10 additions and 11 deletions

View file

@ -27,7 +27,8 @@
//kbuild:lib-$(CONFIG_CUT) += cut.o //kbuild:lib-$(CONFIG_CUT) += cut.o
//usage:#define cut_trivial_usage //usage:#define cut_trivial_usage
//usage: "[OPTIONS] [FILE]..." //usage: "{-b|c LIST | -f"IF_FEATURE_CUT_REGEX("|F")" LIST [-d SEP] [-s]} [-D] [-O SEP] [FILE]..."
// --output-delimiter SEP is too long to fit into 80 char-wide help ----------------^^^^^^^^
//usage:#define cut_full_usage "\n\n" //usage:#define cut_full_usage "\n\n"
//usage: "Print selected fields from FILEs to stdout\n" //usage: "Print selected fields from FILEs to stdout\n"
//usage: "\n -b LIST Output only bytes from LIST" //usage: "\n -b LIST Output only bytes from LIST"
@ -44,11 +45,7 @@
//usage: "\n -s Drop lines with no delimiter (else print them in full)" //usage: "\n -s Drop lines with no delimiter (else print them in full)"
//usage: "\n -D Don't sort/collate sections or match -f"IF_FEATURE_CUT_REGEX("F")" lines without delimeter" //usage: "\n -D Don't sort/collate sections or match -f"IF_FEATURE_CUT_REGEX("F")" lines without delimeter"
//usage: IF_LONG_OPTS( //usage: IF_LONG_OPTS(
//usage: IF_FEATURE_CUT_REGEX( //usage: "\n --output-delimiter SEP Output field delimeter"
//usage: "\n --output-delimiter SEP Output field delimeter (default = -d for -f, one space for -F)"
//usage: ) IF_NOT_FEATURE_CUT_REGEX(
//usage: "\n --output-delimiter SEP Output field delimeter (default = -d)"
//usage: )
//usage: ) IF_NOT_LONG_OPTS( //usage: ) IF_NOT_LONG_OPTS(
//usage: IF_FEATURE_CUT_REGEX( //usage: IF_FEATURE_CUT_REGEX(
//usage: "\n -O SEP Output field delimeter (default = -d for -f, one space for -F)" //usage: "\n -O SEP Output field delimeter (default = -d for -f, one space for -F)"
@ -302,7 +299,8 @@ int cut_main(int argc UNUSED_PARAM, char **argv)
#else #else
opt = getopt32long(argv, "^" opt = getopt32long(argv, "^"
OPT_STR // = "b:c:f:d:O:sD"IF_FEATURE_CUT_REGEX("F:")"n" OPT_STR // = "b:c:f:d:O:sD"IF_FEATURE_CUT_REGEX("F:")"n"
"\0" "b--"ARG":c--"ARG":f--"ARG IF_FEATURE_CUT_REGEX("F--"ARG), "\0" "b:c:f:"IF_FEATURE_CUT_REGEX("F:") /* one of -bcfF is required */
"b--"ARG":c--"ARG":f--"ARG IF_FEATURE_CUT_REGEX(":F--"ARG), /* they are mutually exclusive */
cut_longopts, cut_longopts,
&sopt, &sopt, &sopt, &delim, &odelim IF_FEATURE_CUT_REGEX(, &sopt) &sopt, &sopt, &sopt, &delim, &odelim IF_FEATURE_CUT_REGEX(, &sopt)
); );
@ -314,8 +312,9 @@ int cut_main(int argc UNUSED_PARAM, char **argv)
// argc -= optind; // argc -= optind;
argv += optind; argv += optind;
if (!(opt & (OPT_BYTE | OPT_CHAR | OPT_FIELDS | OPT_REGEX))) //if (!(opt & (OPT_BYTE | OPT_CHAR | OPT_FIELDS | OPT_REGEX)))
bb_simple_error_msg_and_die("expected a list of bytes, characters, or fields"); // bb_simple_error_msg_and_die("expected a list of bytes, characters, or fields");
// ^^^ handled by getopt32
/* non-field (char or byte) cutting has some special handling */ /* non-field (char or byte) cutting has some special handling */
if (!(opt & (OPT_FIELDS|OPT_REGEX))) { if (!(opt & (OPT_FIELDS|OPT_REGEX))) {

View file

@ -93,7 +93,7 @@ getopt32(char **argv, const char *applet_opts, ...)
"!" If the first character in the applet_opts string is a '!', "!" If the first character in the applet_opts string is a '!',
report bad options, missing required options, report bad options, missing required options,
inconsistent options with all-ones return value (instead of abort. inconsistent options with all-ones return value instead of aborting.
"+" If the first character in the applet_opts string is a plus, "+" If the first character in the applet_opts string is a plus,
then option processing will stop as soon as a non-option is then option processing will stop as soon as a non-option is
@ -265,7 +265,7 @@ Special characters:
for "long options only" cases, such as tar --exclude=PATTERN, for "long options only" cases, such as tar --exclude=PATTERN,
wget --header=HDR cases. wget --header=HDR cases.
"a?b" A "?" between an option and a group of options means that "a?bc" A "?" between an option and a group of options means that
at least one of them is required to occur if the first option at least one of them is required to occur if the first option
occurs in preceding command line arguments. occurs in preceding command line arguments.