reorder parts of bbunzip.c, no code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2010-05-30 03:46:54 +02:00
parent 602ce69afb
commit d93f19e443

View File

@ -4,7 +4,6 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details. * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/ */
#include "libbb.h" #include "libbb.h"
#include "unarchive.h" #include "unarchive.h"
@ -141,8 +140,7 @@ int FAST_FUNC bbunpack(char **argv,
return exitcode; return exitcode;
} }
#if ENABLE_BUNZIP2 || ENABLE_UNLZMA || ENABLE_UNCOMPRESS #if ENABLE_UNCOMPRESS || ENABLE_BUNZIP2 || ENABLE_UNLZMA || ENABLE_UNXZ
static static
char* make_new_name_generic(char *filename, const char *expected_ext) char* make_new_name_generic(char *filename, const char *expected_ext)
{ {
@ -155,42 +153,40 @@ char* make_new_name_generic(char *filename, const char *expected_ext)
*extension = '\0'; *extension = '\0';
return filename; return filename;
} }
#endif #endif
/* /*
* Modified for busybox by Glenn McGrath * Uncompress applet for busybox (c) 2002 Glenn McGrath
* Added support output to stdout by Thomas Lundquist <thomasez@zelow.no>
* *
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details. * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/ */
#if ENABLE_UNCOMPRESS
#if ENABLE_BUNZIP2
static static
char* make_new_name_bunzip2(char *filename) char* make_new_name_uncompress(char *filename)
{ {
return make_new_name_generic(filename, "bz2"); return make_new_name_generic(filename, "Z");
} }
static static
IF_DESKTOP(long long) int unpack_bunzip2(unpack_info_t *info UNUSED_PARAM) IF_DESKTOP(long long) int unpack_uncompress(unpack_info_t *info UNUSED_PARAM)
{ {
return unpack_bz2_stream_prime(STDIN_FILENO, STDOUT_FILENO); IF_DESKTOP(long long) int status = -1;
}
int bunzip2_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; if ((xread_char(STDIN_FILENO) != 0x1f) || (xread_char(STDIN_FILENO) != 0x9d)) {
int bunzip2_main(int argc UNUSED_PARAM, char **argv) bb_error_msg("invalid magic");
} else {
status = unpack_Z_stream(STDIN_FILENO, STDOUT_FILENO);
}
return status;
}
int uncompress_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int uncompress_main(int argc UNUSED_PARAM, char **argv)
{ {
getopt32(argv, "cfvdt"); getopt32(argv, "cf");
argv += optind; argv += optind;
if (applet_name[2] == 'c')
option_mask32 |= OPT_STDOUT;
return bbunpack(argv, make_new_name_bunzip2, unpack_bunzip2); return bbunpack(argv, make_new_name_uncompress, unpack_uncompress);
} }
#endif #endif
@ -221,9 +217,7 @@ int bunzip2_main(int argc UNUSED_PARAM, char **argv)
* See the license_msg below and the file COPYING for the software license. * See the license_msg below and the file COPYING for the software license.
* See the file algorithm.doc for the compression algorithms and file formats. * See the file algorithm.doc for the compression algorithms and file formats.
*/ */
#if ENABLE_GUNZIP #if ENABLE_GUNZIP
static static
char* make_new_name_gunzip(char *filename) char* make_new_name_gunzip(char *filename)
{ {
@ -249,7 +243,6 @@ char* make_new_name_gunzip(char *filename)
} }
return filename; return filename;
} }
static static
IF_DESKTOP(long long) int unpack_gunzip(unpack_info_t *info) IF_DESKTOP(long long) int unpack_gunzip(unpack_info_t *info)
{ {
@ -277,7 +270,6 @@ IF_DESKTOP(long long) int unpack_gunzip(unpack_info_t *info)
} }
return status; return status;
} }
/* /*
* Linux kernel build uses gzip -d -n. We accept and ignore it. * Linux kernel build uses gzip -d -n. We accept and ignore it.
* Man page says: * Man page says:
@ -291,7 +283,6 @@ IF_DESKTOP(long long) int unpack_gunzip(unpack_info_t *info)
* gzip: always save the original file name and time stamp (this is the default) * gzip: always save the original file name and time stamp (this is the default)
* gunzip: restore the original file name and time stamp if present. * gunzip: restore the original file name and time stamp if present.
*/ */
int gunzip_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int gunzip_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int gunzip_main(int argc UNUSED_PARAM, char **argv) int gunzip_main(int argc UNUSED_PARAM, char **argv)
{ {
@ -303,7 +294,36 @@ int gunzip_main(int argc UNUSED_PARAM, char **argv)
return bbunpack(argv, make_new_name_gunzip, unpack_gunzip); return bbunpack(argv, make_new_name_gunzip, unpack_gunzip);
} }
#endif
/*
* Modified for busybox by Glenn McGrath
* Added support output to stdout by Thomas Lundquist <thomasez@zelow.no>
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#if ENABLE_BUNZIP2
static
char* make_new_name_bunzip2(char *filename)
{
return make_new_name_generic(filename, "bz2");
}
static
IF_DESKTOP(long long) int unpack_bunzip2(unpack_info_t *info UNUSED_PARAM)
{
return unpack_bz2_stream_prime(STDIN_FILENO, STDOUT_FILENO);
}
int bunzip2_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int bunzip2_main(int argc UNUSED_PARAM, char **argv)
{
getopt32(argv, "cfvdt");
argv += optind;
if (applet_name[2] == 'c') /* bzcat */
option_mask32 |= OPT_STDOUT;
return bbunpack(argv, make_new_name_bunzip2, unpack_bunzip2);
}
#endif #endif
@ -315,21 +335,17 @@ int gunzip_main(int argc UNUSED_PARAM, char **argv)
* *
* Licensed under GPL v2, see file LICENSE in this tarball for details. * Licensed under GPL v2, see file LICENSE in this tarball for details.
*/ */
#if ENABLE_UNLZMA #if ENABLE_UNLZMA
static static
char* make_new_name_unlzma(char *filename) char* make_new_name_unlzma(char *filename)
{ {
return make_new_name_generic(filename, "lzma"); return make_new_name_generic(filename, "lzma");
} }
static static
IF_DESKTOP(long long) int unpack_unlzma(unpack_info_t *info UNUSED_PARAM) IF_DESKTOP(long long) int unpack_unlzma(unpack_info_t *info UNUSED_PARAM)
{ {
return unpack_lzma_stream(STDIN_FILENO, STDOUT_FILENO); return unpack_lzma_stream(STDIN_FILENO, STDOUT_FILENO);
} }
int unlzma_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int unlzma_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int unlzma_main(int argc UNUSED_PARAM, char **argv) int unlzma_main(int argc UNUSED_PARAM, char **argv)
{ {
@ -346,62 +362,20 @@ int unlzma_main(int argc UNUSED_PARAM, char **argv)
argv += optind; argv += optind;
return bbunpack(argv, make_new_name_unlzma, unpack_unlzma); return bbunpack(argv, make_new_name_unlzma, unpack_unlzma);
} }
#endif #endif
/*
* Uncompress applet for busybox (c) 2002 Glenn McGrath
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#if ENABLE_UNCOMPRESS
static
char* make_new_name_uncompress(char *filename)
{
return make_new_name_generic(filename, "Z");
}
static
IF_DESKTOP(long long) int unpack_uncompress(unpack_info_t *info UNUSED_PARAM)
{
IF_DESKTOP(long long) int status = -1;
if ((xread_char(STDIN_FILENO) != 0x1f) || (xread_char(STDIN_FILENO) != 0x9d)) {
bb_error_msg("invalid magic");
} else {
status = unpack_Z_stream(STDIN_FILENO, STDOUT_FILENO);
}
return status;
}
int uncompress_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int uncompress_main(int argc UNUSED_PARAM, char **argv)
{
getopt32(argv, "cf");
argv += optind;
return bbunpack(argv, make_new_name_uncompress, unpack_uncompress);
}
#endif
#if ENABLE_UNXZ #if ENABLE_UNXZ
static static
char* make_new_name_unxz(char *filename) char* make_new_name_unxz(char *filename)
{ {
return make_new_name_generic(filename, "xz"); return make_new_name_generic(filename, "xz");
} }
static static
IF_DESKTOP(long long) int unpack_unxz(unpack_info_t *info UNUSED_PARAM) IF_DESKTOP(long long) int unpack_unxz(unpack_info_t *info UNUSED_PARAM)
{ {
return unpack_xz_stream_stdin(); return unpack_xz_stream_stdin();
} }
int unxz_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int unxz_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int unxz_main(int argc UNUSED_PARAM, char **argv) int unxz_main(int argc UNUSED_PARAM, char **argv)
{ {
@ -418,5 +392,4 @@ int unxz_main(int argc UNUSED_PARAM, char **argv)
argv += optind; argv += optind;
return bbunpack(argv, make_new_name_unxz, unpack_unxz); return bbunpack(argv, make_new_name_unxz, unpack_unxz);
} }
#endif #endif