[git commit] gunzip: add support for long options

Denys Vlasenko vda.linux at googlemail.com
Tue Oct 27 20:28:50 UTC 2015


commit: http://git.busybox.net/busybox/commit/?id=fbe50cf6bc685f7cf4fbcb9c0c425fc93575a085
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Add support for long options.

Signed-off-by: Aaro Koskinen <aaro.koskinen at iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/bbunzip.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/archival/bbunzip.c b/archival/bbunzip.c
index 548882f..e10372e 100644
--- a/archival/bbunzip.c
+++ b/archival/bbunzip.c
@@ -290,6 +290,13 @@ int uncompress_main(int argc UNUSED_PARAM, char **argv)
 //config:	  gunzip is used to decompress archives created by gzip.
 //config:	  You can use the `-t' option to test the integrity of
 //config:	  an archive, without decompressing it.
+//config:
+//config:config FEATURE_GUNZIP_LONG_OPTIONS
+//config:	bool "Enable long options"
+//config:	default y
+//config:	depends on GUNZIP && LONG_OPTS
+//config:	help
+//config:	  Enable use of long options.
 
 //applet:IF_GUNZIP(APPLET(gunzip, BB_DIR_BIN, BB_SUID_DROP))
 //applet:IF_GUNZIP(APPLET_ODDNAME(zcat, gunzip, BB_DIR_BIN, BB_SUID_DROP, zcat))
@@ -321,6 +328,16 @@ char* FAST_FUNC make_new_name_gunzip(char *filename, const char *expected_ext UN
 	}
 	return filename;
 }
+
+#if ENABLE_FEATURE_GUNZIP_LONG_OPTIONS
+static const char gunzip_longopts[] ALIGN1 =
+	"stdout\0"              No_argument       "c"
+	"to-stdout\0"           No_argument       "c"
+	"force\0"               No_argument       "f"
+	"test\0"                No_argument       "t"
+	;
+#endif
+
 /*
  * Linux kernel build uses gzip -d -n. We accept and ignore it.
  * Man page says:
@@ -337,6 +354,9 @@ char* FAST_FUNC make_new_name_gunzip(char *filename, const char *expected_ext UN
 int gunzip_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int gunzip_main(int argc UNUSED_PARAM, char **argv)
 {
+#if ENABLE_FEATURE_GUNZIP_LONG_OPTIONS
+	applet_long_options = gunzip_longopts;
+#endif
 	getopt32(argv, "cfvqdtn");
 	argv += optind;
 


More information about the busybox-cvs mailing list