Add support for long options to cmp

In order to improve compatibility with GNU cmp add support for long
options to busybox cmp.

function                                             old     new   delta
static.cmp_longopts                                    -      36     +36
cmp_main                                             589     594      +5
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 41/0)               Total: 41 bytes

Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Walter Lozano 2022-01-21 11:00:27 -03:00 committed by Denys Vlasenko
parent f12fb1e409
commit 6dd6a6c42d

View File

@ -54,6 +54,7 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
int retval = 0; int retval = 0;
int max_count = -1; int max_count = -1;
#if !ENABLE_LONG_OPTS
opt = getopt32(argv, "^" opt = getopt32(argv, "^"
OPT_STR OPT_STR
"\0" "-1" "\0" "-1"
@ -62,6 +63,23 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
":l--s:s--l", ":l--s:s--l",
&max_count &max_count
); );
#else
static const char cmp_longopts[] ALIGN1 =
"bytes\0" Required_argument "n"
"quiet\0" No_argument "s"
"silent\0" No_argument "s"
"verbose\0" No_argument "l"
;
opt = getopt32long(argv, "^"
OPT_STR
"\0" "-1"
IF_DESKTOP(":?4")
IF_NOT_DESKTOP(":?2")
":l--s:s--l",
cmp_longopts,
&max_count
);
#endif
argv += optind; argv += optind;
filename1 = *argv; filename1 = *argv;