Преглед изворни кода

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 година
родитељ
комит
6dd6a6c42d
1 измењених фајлова са 18 додато и 0 уклоњено
  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;