Prechádzať zdrojové kódy

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>
Walter Lozano 2 rokov pred
rodič
commit
6dd6a6c42d
1 zmenil súbory, kde vykonal 18 pridanie a 0 odobranie
  1. 18 0
      editors/cmp.c

+ 18 - 0
editors/cmp.c

@@ -54,6 +54,7 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
 	int retval = 0;
 	int max_count = -1;
 
+#if !ENABLE_LONG_OPTS
 	opt = getopt32(argv, "^"
 			OPT_STR
 			"\0" "-1"
@@ -62,6 +63,23 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
 			":l--s:s--l",
 			&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;
 
 	filename1 = *argv;