libarchive: move bbunpack constants to bb_archive.h
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		| @@ -21,19 +21,6 @@ | ||||
| #include "libbb.h" | ||||
| #include "bb_archive.h" | ||||
|  | ||||
| /* Note: must be kept in sync with archival/lzop.c */ | ||||
| enum { | ||||
| 	OPT_STDOUT     = 1 << 0, | ||||
| 	OPT_FORCE      = 1 << 1, | ||||
| 	/* only some decompressors: */ | ||||
| 	OPT_KEEP       = 1 << 2, | ||||
| 	OPT_VERBOSE    = 1 << 3, | ||||
| 	OPT_QUIET      = 1 << 4, | ||||
| 	OPT_DECOMPRESS = 1 << 5, | ||||
| 	OPT_TEST       = 1 << 6, | ||||
| 	SEAMLESS_MAGIC = (1 << 31) * ENABLE_ZCAT * SEAMLESS_COMPRESSION, | ||||
| }; | ||||
|  | ||||
| static | ||||
| int open_to_or_warn(int to_fd, const char *filename, int flags, int mode) | ||||
| { | ||||
| @@ -72,7 +59,7 @@ int FAST_FUNC bbunpack(char **argv, | ||||
|  | ||||
| 		/* Open src */ | ||||
| 		if (filename) { | ||||
| 			if (!(option_mask32 & SEAMLESS_MAGIC)) { | ||||
| 			if (!(option_mask32 & BBUNPK_SEAMLESS_MAGIC)) { | ||||
| 				if (stat(filename, &stat_buf) != 0) { | ||||
|  err_name: | ||||
| 					bb_simple_perror_msg(filename); | ||||
| @@ -91,15 +78,15 @@ int FAST_FUNC bbunpack(char **argv, | ||||
| 				xmove_fd(fd, STDIN_FILENO); | ||||
| 			} | ||||
| 		} else | ||||
| 		if (option_mask32 & SEAMLESS_MAGIC) { | ||||
| 		if (option_mask32 & BBUNPK_SEAMLESS_MAGIC) { | ||||
| 			/* "clever zcat" on stdin */ | ||||
| 			if (setup_unzip_on_fd(STDIN_FILENO, /*fail_if_not_compressed*/ 1)) | ||||
| 				goto err; | ||||
| 		} | ||||
|  | ||||
| 		/* Special cases: test, stdout */ | ||||
| 		if (option_mask32 & (OPT_STDOUT|OPT_TEST)) { | ||||
| 			if (option_mask32 & OPT_TEST) | ||||
| 		if (option_mask32 & (BBUNPK_OPT_STDOUT|BBUNPK_OPT_TEST)) { | ||||
| 			if (option_mask32 & BBUNPK_OPT_TEST) | ||||
| 				if (open_to_or_warn(STDOUT_FILENO, bb_dev_null, O_WRONLY, 0)) | ||||
| 					xfunc_die(); | ||||
| 			filename = NULL; | ||||
| @@ -114,7 +101,7 @@ int FAST_FUNC bbunpack(char **argv, | ||||
| 			} | ||||
|  | ||||
| 			/* -f: overwrite existing output files */ | ||||
| 			if (option_mask32 & OPT_FORCE) { | ||||
| 			if (option_mask32 & BBUNPK_OPT_FORCE) { | ||||
| 				unlink(new_name); | ||||
| 			} | ||||
|  | ||||
| @@ -126,12 +113,12 @@ int FAST_FUNC bbunpack(char **argv, | ||||
| 		} | ||||
|  | ||||
| 		/* Check that the input is sane */ | ||||
| 		if (!(option_mask32 & OPT_FORCE) && isatty(STDIN_FILENO)) { | ||||
| 		if (!(option_mask32 & BBUNPK_OPT_FORCE) && isatty(STDIN_FILENO)) { | ||||
| 			bb_error_msg_and_die("compressed data not read from terminal, " | ||||
| 					"use -f to force it"); | ||||
| 		} | ||||
|  | ||||
| 		if (!(option_mask32 & SEAMLESS_MAGIC)) { | ||||
| 		if (!(option_mask32 & BBUNPK_SEAMLESS_MAGIC)) { | ||||
| 			init_transformer_state(&xstate); | ||||
| 			/*xstate.signature_skipped = 0; - already is */ | ||||
| 			/*xstate.src_fd = STDIN_FILENO; - already is */ | ||||
| @@ -145,7 +132,7 @@ int FAST_FUNC bbunpack(char **argv, | ||||
| 				xfunc_die(); | ||||
| 		} | ||||
|  | ||||
| 		if (!(option_mask32 & OPT_STDOUT)) | ||||
| 		if (!(option_mask32 & BBUNPK_OPT_STDOUT)) | ||||
| 			xclose(STDOUT_FILENO); /* with error check! */ | ||||
|  | ||||
| 		if (filename) { | ||||
| @@ -176,7 +163,7 @@ int FAST_FUNC bbunpack(char **argv, | ||||
| 				} | ||||
| 				/* Extreme bloat for gunzip compat */ | ||||
| 				/* Some users do want this info... */ | ||||
| 				if (ENABLE_DESKTOP && (option_mask32 & OPT_VERBOSE)) { | ||||
| 				if (ENABLE_DESKTOP && (option_mask32 & BBUNPK_OPT_VERBOSE)) { | ||||
| 					unsigned percent = status | ||||
| 						? ((uoff_t)stat_buf.st_size * 100u / (unsigned long long)status) | ||||
| 						: 0; | ||||
| @@ -188,7 +175,7 @@ int FAST_FUNC bbunpack(char **argv, | ||||
| 				} | ||||
| 				/* Delete _source_ file */ | ||||
| 				del = filename; | ||||
| 				if (option_mask32 & OPT_KEEP) /* ... unless -k */ | ||||
| 				if (option_mask32 & BBUNPK_OPT_KEEP) /* ... unless -k */ | ||||
| 					del = NULL; | ||||
| 			} | ||||
| 			if (del) | ||||
| @@ -199,7 +186,7 @@ int FAST_FUNC bbunpack(char **argv, | ||||
| 		} | ||||
| 	} while (*argv && *++argv); | ||||
|  | ||||
| 	if (option_mask32 & OPT_STDOUT) | ||||
| 	if (option_mask32 & BBUNPK_OPT_STDOUT) | ||||
| 		xclose(STDOUT_FILENO); /* with error check! */ | ||||
|  | ||||
| 	return exitcode; | ||||
| @@ -389,9 +376,9 @@ 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 | ||||
| 	getopt32long(argv, "cfkvqdtn", gunzip_longopts); | ||||
| 	getopt32long(argv, BBUNPK_OPTSTR "dtn", gunzip_longopts); | ||||
| #else | ||||
| 	getopt32(argv, "cfkvqdtn"); | ||||
| 	getopt32(argv, BBUNPK_OPTSTR "dtn"); | ||||
| #endif | ||||
| 	argv += optind; | ||||
|  | ||||
| @@ -400,7 +387,7 @@ int gunzip_main(int argc UNUSED_PARAM, char **argv) | ||||
| 	 * But if seamless magic is enabled, then we are much more clever. | ||||
| 	 */ | ||||
| 	if (ENABLE_ZCAT && (!ENABLE_GUNZIP || applet_name[1] == 'c')) | ||||
| 		option_mask32 |= OPT_STDOUT | SEAMLESS_MAGIC; | ||||
| 		option_mask32 |= BBUNPK_OPT_STDOUT | BBUNPK_SEAMLESS_MAGIC; | ||||
|  | ||||
| 	return bbunpack(argv, unpack_gz_stream, make_new_name_gunzip, /*unused:*/ NULL); | ||||
| } | ||||
| @@ -453,10 +440,10 @@ int gunzip_main(int argc UNUSED_PARAM, char **argv) | ||||
| int bunzip2_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||||
| int bunzip2_main(int argc UNUSED_PARAM, char **argv) | ||||
| { | ||||
| 	getopt32(argv, "cfkvqdt"); | ||||
| 	getopt32(argv, BBUNPK_OPTSTR "dt"); | ||||
| 	argv += optind; | ||||
| 	if (ENABLE_BZCAT && (!ENABLE_BUNZIP2 || applet_name[2] == 'c')) /* bzcat */ | ||||
| 		option_mask32 |= OPT_STDOUT; | ||||
| 		option_mask32 |= BBUNPK_OPT_STDOUT; | ||||
|  | ||||
| 	return bbunpack(argv, unpack_bz2_stream, make_new_name_generic, "bz2"); | ||||
| } | ||||
| @@ -526,15 +513,15 @@ int bunzip2_main(int argc UNUSED_PARAM, char **argv) | ||||
| int unlzma_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||||
| int unlzma_main(int argc UNUSED_PARAM, char **argv) | ||||
| { | ||||
| 	IF_LZMA(int opts =) getopt32(argv, "cfkvqdt"); | ||||
| 	IF_LZMA(int opts =) getopt32(argv, BBUNPK_OPTSTR "dt"); | ||||
| # if ENABLE_LZMA | ||||
| 	/* lzma without -d or -t? */ | ||||
| 	if (applet_name[2] == 'm' && !(opts & (OPT_DECOMPRESS|OPT_TEST))) | ||||
| 	if (applet_name[2] == 'm' && !(opts & (BBUNPK_OPT_DECOMPRESS|BBUNPK_OPT_TEST))) | ||||
| 		bb_show_usage(); | ||||
| # endif | ||||
| 	/* lzcat? */ | ||||
| 	if (ENABLE_LZCAT && applet_name[2] == 'c') | ||||
| 		option_mask32 |= OPT_STDOUT; | ||||
| 		option_mask32 |= BBUNPK_OPT_STDOUT; | ||||
|  | ||||
| 	argv += optind; | ||||
| 	return bbunpack(argv, unpack_lzma_stream, make_new_name_generic, "lzma"); | ||||
| @@ -594,15 +581,15 @@ int unlzma_main(int argc UNUSED_PARAM, char **argv) | ||||
| int unxz_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||||
| int unxz_main(int argc UNUSED_PARAM, char **argv) | ||||
| { | ||||
| 	IF_XZ(int opts =) getopt32(argv, "cfkvqdt"); | ||||
| 	IF_XZ(int opts =) getopt32(argv, BBUNPK_OPTSTR "dt"); | ||||
| # if ENABLE_XZ | ||||
| 	/* xz without -d or -t? */ | ||||
| 	if (applet_name[2] == '\0' && !(opts & (OPT_DECOMPRESS|OPT_TEST))) | ||||
| 	if (applet_name[2] == '\0' && !(opts & (BBUNPK_OPT_DECOMPRESS|BBUNPK_OPT_TEST))) | ||||
| 		bb_show_usage(); | ||||
| # endif | ||||
| 	/* xzcat? */ | ||||
| 	if (ENABLE_XZCAT && applet_name[2] == 'c') | ||||
| 		option_mask32 |= OPT_STDOUT; | ||||
| 		option_mask32 |= BBUNPK_OPT_STDOUT; | ||||
|  | ||||
| 	argv += optind; | ||||
| 	return bbunpack(argv, unpack_xz_stream, make_new_name_generic, "xz"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user