From fbe50cf6bc685f7cf4fbcb9c0c425fc93575a085 Mon Sep 17 00:00:00 2001 From: Aaro Koskinen Date: Mon, 26 Oct 2015 23:42:32 +0200 Subject: gunzip: add support for long options Add support for long options. Signed-off-by: Aaro Koskinen Signed-off-by: Denys Vlasenko --- archival/bbunzip.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'archival') diff --git a/archival/bbunzip.c b/archival/bbunzip.c index 548882f53..e10372e14 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; -- cgit v1.2.3