mirror of
https://github.com/sheumann/hush.git
synced 2024-12-22 14:30:31 +00:00
unlzma: add "lzma -d" alias, add -t support, rename lzmacat->lzcat
Also coalesce some common strings text data bss dec hex filename 844110 453 6812 851375 cfdaf busybox_old 844061 453 6812 851326 cfd7e busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
c5f30c0df8
commit
ccb88a689e
@ -327,6 +327,14 @@ config FEATURE_LZMA_FAST
|
|||||||
This option reduces decompression time by about 25% at the cost of
|
This option reduces decompression time by about 25% at the cost of
|
||||||
a 1K bigger binary.
|
a 1K bigger binary.
|
||||||
|
|
||||||
|
config FEATURE_LZMA_ALIAS
|
||||||
|
bool "Provide lzma alias which supports only unpacking"
|
||||||
|
default n
|
||||||
|
depends on UNLZMA
|
||||||
|
help
|
||||||
|
Enable this option if you want commands like "lzma -d" to work.
|
||||||
|
IOW: you'll get lzma applet, but it will always require -d option.
|
||||||
|
|
||||||
config UNZIP
|
config UNZIP
|
||||||
bool "unzip"
|
bool "unzip"
|
||||||
default n
|
default n
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
#include "unarchive.h"
|
#include "unarchive.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
OPT_STDOUT = 0x1,
|
OPT_STDOUT = 1 << 0,
|
||||||
OPT_FORCE = 0x2,
|
OPT_FORCE = 1 << 1,
|
||||||
/* gunzip and bunzip2 only: */
|
/* only some decompressors: */
|
||||||
OPT_VERBOSE = 0x4,
|
OPT_VERBOSE = 1 << 2,
|
||||||
OPT_DECOMPRESS = 0x8,
|
OPT_DECOMPRESS = 1 << 3,
|
||||||
OPT_TEST = 0x10,
|
OPT_TEST = 1 << 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
static
|
static
|
||||||
@ -333,12 +333,17 @@ IF_DESKTOP(long long) int unpack_unlzma(unpack_info_t *info UNUSED_PARAM)
|
|||||||
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)
|
||||||
{
|
{
|
||||||
getopt32(argv, "cf");
|
int opts = getopt32(argv, "cfvdt");
|
||||||
argv += optind;
|
# if ENABLE_FEATURE_LZMA_ALIAS
|
||||||
/* lzmacat? */
|
/* lzma without -d or -t? */
|
||||||
if (applet_name[4] == 'c')
|
if (applet_name[2] == 'm' && !(opts & (OPT_DECOMPRESS|OPT_TEST)))
|
||||||
|
bb_show_usage();
|
||||||
|
# endif
|
||||||
|
/* lzcat? */
|
||||||
|
if (applet_name[2] == 'c')
|
||||||
option_mask32 |= OPT_STDOUT;
|
option_mask32 |= OPT_STDOUT;
|
||||||
|
|
||||||
|
argv += optind;
|
||||||
return bbunpack(argv, make_new_name_unlzma, unpack_unlzma);
|
return bbunpack(argv, make_new_name_unlzma, unpack_unlzma);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,7 +351,7 @@ int unlzma_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Uncompress applet for busybox (c) 2002 Glenn McGrath
|
* Uncompress applet for busybox (c) 2002 Glenn McGrath
|
||||||
*
|
*
|
||||||
* 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.
|
||||||
*/
|
*/
|
||||||
|
@ -229,7 +229,7 @@ unpack_Z_stream(int fd_in, int fd_out)
|
|||||||
("insize:%d posbits:%d inbuf:%02X %02X %02X %02X %02X (%d)",
|
("insize:%d posbits:%d inbuf:%02X %02X %02X %02X %02X (%d)",
|
||||||
insize, posbits, p[-1], p[0], p[1], p[2], p[3],
|
insize, posbits, p[-1], p[0], p[1], p[2], p[3],
|
||||||
(posbits & 07));
|
(posbits & 07));
|
||||||
bb_error_msg("uncompress: corrupt input");
|
bb_error_msg("corrupted data");
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -738,12 +738,12 @@ static NOINLINE smallint lzo_decompress(const header_t *h)
|
|||||||
bb_error_msg_and_die("this file is a split lzop file");
|
bb_error_msg_and_die("this file is a split lzop file");
|
||||||
|
|
||||||
if (dst_len > MAX_BLOCK_SIZE)
|
if (dst_len > MAX_BLOCK_SIZE)
|
||||||
bb_error_msg_and_die("lzop file corrupted");
|
bb_error_msg_and_die("corrupted data");
|
||||||
|
|
||||||
/* read compressed block size */
|
/* read compressed block size */
|
||||||
src_len = read32();
|
src_len = read32();
|
||||||
if (src_len <= 0 || src_len > dst_len)
|
if (src_len <= 0 || src_len > dst_len)
|
||||||
bb_error_msg_and_die("lzop file corrupted");
|
bb_error_msg_and_die("corrupted data");
|
||||||
|
|
||||||
if (dst_len > block_size) {
|
if (dst_len > block_size) {
|
||||||
if (b2) {
|
if (b2) {
|
||||||
@ -797,7 +797,7 @@ static NOINLINE smallint lzo_decompress(const header_t *h)
|
|||||||
r = lzo1x_decompress_safe(b1, src_len, b2, &d, NULL);
|
r = lzo1x_decompress_safe(b1, src_len, b2, &d, NULL);
|
||||||
|
|
||||||
if (r != 0 /*LZO_E_OK*/ || dst_len != d) {
|
if (r != 0 /*LZO_E_OK*/ || dst_len != d) {
|
||||||
bb_error_msg_and_die("corrupted compressed data");
|
bb_error_msg_and_die("corrupted data");
|
||||||
}
|
}
|
||||||
dst = b2;
|
dst = b2;
|
||||||
} else {
|
} else {
|
||||||
|
@ -253,7 +253,8 @@ IF_LSMOD(APPLET(lsmod, _BB_DIR_SBIN, _BB_SUID_DROP))
|
|||||||
IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, _BB_DIR_SBIN, _BB_SUID_DROP, modprobe))
|
IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, _BB_DIR_SBIN, _BB_SUID_DROP, modprobe))
|
||||||
IF_LSPCI(APPLET(lspci, _BB_DIR_USR_BIN, _BB_SUID_DROP))
|
IF_LSPCI(APPLET(lspci, _BB_DIR_USR_BIN, _BB_SUID_DROP))
|
||||||
IF_LSUSB(APPLET(lsusb, _BB_DIR_USR_BIN, _BB_SUID_DROP))
|
IF_LSUSB(APPLET(lsusb, _BB_DIR_USR_BIN, _BB_SUID_DROP))
|
||||||
IF_UNLZMA(APPLET_ODDNAME(lzmacat, unlzma, _BB_DIR_USR_BIN, _BB_SUID_DROP, lzmacat))
|
IF_UNLZMA(APPLET_ODDNAME(lzcat, unlzma, _BB_DIR_USR_BIN, _BB_SUID_DROP, lzcat))
|
||||||
|
IF_FEATURE_LZMA_ALIAS(APPLET_ODDNAME(lzma, unlzma, _BB_DIR_USR_BIN, _BB_SUID_DROP, lzma))
|
||||||
IF_LZOP(APPLET(lzop, _BB_DIR_BIN, _BB_SUID_DROP))
|
IF_LZOP(APPLET(lzop, _BB_DIR_BIN, _BB_SUID_DROP))
|
||||||
IF_LZOP(APPLET_ODDNAME(lzopcat, lzop, _BB_DIR_USR_BIN, _BB_SUID_DROP, lzopcat))
|
IF_LZOP(APPLET_ODDNAME(lzopcat, lzop, _BB_DIR_USR_BIN, _BB_SUID_DROP, lzopcat))
|
||||||
IF_MAKEDEVS(APPLET(makedevs, _BB_DIR_SBIN, _BB_SUID_DROP))
|
IF_MAKEDEVS(APPLET(makedevs, _BB_DIR_SBIN, _BB_SUID_DROP))
|
||||||
|
@ -197,7 +197,7 @@
|
|||||||
#define bunzip2_trivial_usage \
|
#define bunzip2_trivial_usage \
|
||||||
"[OPTIONS] [FILE]..."
|
"[OPTIONS] [FILE]..."
|
||||||
#define bunzip2_full_usage "\n\n" \
|
#define bunzip2_full_usage "\n\n" \
|
||||||
"Uncompress FILEs (or stdin)\n" \
|
"Decompress FILEs (or stdin)\n" \
|
||||||
"\nOptions:" \
|
"\nOptions:" \
|
||||||
"\n -c Write to stdout" \
|
"\n -c Write to stdout" \
|
||||||
"\n -f Force" \
|
"\n -f Force" \
|
||||||
@ -207,10 +207,10 @@
|
|||||||
#define bzip2_full_usage "\n\n" \
|
#define bzip2_full_usage "\n\n" \
|
||||||
"Compress FILEs (or stdin) with bzip2 algorithm\n" \
|
"Compress FILEs (or stdin) with bzip2 algorithm\n" \
|
||||||
"\nOptions:" \
|
"\nOptions:" \
|
||||||
"\n -c Write to stdout" \
|
"\n -1..9 Compression level" \
|
||||||
"\n -d Decompress" \
|
"\n -d Decompress" \
|
||||||
|
"\n -c Write to stdout" \
|
||||||
"\n -f Force" \
|
"\n -f Force" \
|
||||||
"\n -1..-9 Compression level" \
|
|
||||||
|
|
||||||
#define busybox_notes_usage \
|
#define busybox_notes_usage \
|
||||||
"Hello world!\n"
|
"Hello world!\n"
|
||||||
@ -218,13 +218,14 @@
|
|||||||
#define lzop_trivial_usage \
|
#define lzop_trivial_usage \
|
||||||
"[-cfvd123456789CF] [FILE]..."
|
"[-cfvd123456789CF] [FILE]..."
|
||||||
#define lzop_full_usage "\n\n" \
|
#define lzop_full_usage "\n\n" \
|
||||||
" -c Write to stdout" \
|
"Options:" \
|
||||||
|
"\n -1..9 Compression level" \
|
||||||
|
"\n -d Decompress" \
|
||||||
|
"\n -c Write to stdout" \
|
||||||
"\n -f Force" \
|
"\n -f Force" \
|
||||||
"\n -v Verbose" \
|
"\n -v Verbose" \
|
||||||
"\n -d Decompress" \
|
|
||||||
"\n -F Don't store or verify checksum" \
|
"\n -F Don't store or verify checksum" \
|
||||||
"\n -C Also write checksum of compressed block" \
|
"\n -C Also write checksum of compressed block" \
|
||||||
"\n -1..9 Compression level" \
|
|
||||||
|
|
||||||
#define lzopcat_trivial_usage \
|
#define lzopcat_trivial_usage \
|
||||||
"[-vCF] [FILE]..."
|
"[-vCF] [FILE]..."
|
||||||
@ -235,7 +236,8 @@
|
|||||||
#define unlzop_trivial_usage \
|
#define unlzop_trivial_usage \
|
||||||
"[-cfvCF] [FILE]..."
|
"[-cfvCF] [FILE]..."
|
||||||
#define unlzop_full_usage "\n\n" \
|
#define unlzop_full_usage "\n\n" \
|
||||||
" -c Write to stdout" \
|
"Options:" \
|
||||||
|
"\n -c Write to stdout" \
|
||||||
"\n -f Force" \
|
"\n -f Force" \
|
||||||
"\n -v Verbose" \
|
"\n -v Verbose" \
|
||||||
"\n -F Don't store or verify checksum" \
|
"\n -F Don't store or verify checksum" \
|
||||||
@ -243,20 +245,29 @@
|
|||||||
#define bzcat_trivial_usage \
|
#define bzcat_trivial_usage \
|
||||||
"FILE"
|
"FILE"
|
||||||
#define bzcat_full_usage "\n\n" \
|
#define bzcat_full_usage "\n\n" \
|
||||||
"Uncompress to stdout"
|
"Decompress to stdout"
|
||||||
|
|
||||||
#define unlzma_trivial_usage \
|
#define unlzma_trivial_usage \
|
||||||
"[OPTIONS] [FILE]..."
|
"[OPTIONS] [FILE]..."
|
||||||
#define unlzma_full_usage "\n\n" \
|
#define unlzma_full_usage "\n\n" \
|
||||||
"Uncompress FILE (or stdin)\n" \
|
"Decompress FILE (or stdin)\n" \
|
||||||
"\nOptions:" \
|
"\nOptions:" \
|
||||||
"\n -c Write to stdout" \
|
"\n -c Write to stdout" \
|
||||||
"\n -f Force" \
|
"\n -f Force" \
|
||||||
|
|
||||||
#define lzmacat_trivial_usage \
|
#define lzma_trivial_usage \
|
||||||
|
"-d [OPTIONS] [FILE]..."
|
||||||
|
#define lzma_full_usage "\n\n" \
|
||||||
|
"Decompress FILE (or stdin)\n" \
|
||||||
|
"\nOptions:" \
|
||||||
|
"\n -d Decompress" \
|
||||||
|
"\n -c Write to stdout" \
|
||||||
|
"\n -f Force" \
|
||||||
|
|
||||||
|
#define lzcat_trivial_usage \
|
||||||
"FILE"
|
"FILE"
|
||||||
#define lzmacat_full_usage "\n\n" \
|
#define lzcat_full_usage "\n\n" \
|
||||||
"Uncompress to stdout"
|
"Decompress to stdout"
|
||||||
|
|
||||||
#define cal_trivial_usage \
|
#define cal_trivial_usage \
|
||||||
"[-jy] [[MONTH] YEAR]"
|
"[-jy] [[MONTH] YEAR]"
|
||||||
@ -267,11 +278,9 @@
|
|||||||
"\n -y Display the entire year" \
|
"\n -y Display the entire year" \
|
||||||
|
|
||||||
#define cat_trivial_usage \
|
#define cat_trivial_usage \
|
||||||
"[-u] [FILE]..."
|
"[FILE]..."
|
||||||
#define cat_full_usage "\n\n" \
|
#define cat_full_usage "\n\n" \
|
||||||
"Concatenate FILEs and print them to stdout\n" \
|
"Concatenate FILEs and print them to stdout" \
|
||||||
"\nOptions:" \
|
|
||||||
"\n -u Use unbuffered i/o (ignored)" \
|
|
||||||
|
|
||||||
#define cat_example_usage \
|
#define cat_example_usage \
|
||||||
"$ cat /proc/uptime\n" \
|
"$ cat /proc/uptime\n" \
|
||||||
@ -1610,7 +1619,7 @@
|
|||||||
#define gunzip_trivial_usage \
|
#define gunzip_trivial_usage \
|
||||||
"[OPTIONS] [FILE]..."
|
"[OPTIONS] [FILE]..."
|
||||||
#define gunzip_full_usage "\n\n" \
|
#define gunzip_full_usage "\n\n" \
|
||||||
"Uncompress FILEs (or stdin)\n" \
|
"Decompress FILEs (or stdin)\n" \
|
||||||
"\nOptions:" \
|
"\nOptions:" \
|
||||||
"\n -c Write to stdout" \
|
"\n -c Write to stdout" \
|
||||||
"\n -f Force" \
|
"\n -f Force" \
|
||||||
@ -1628,8 +1637,8 @@
|
|||||||
#define gzip_full_usage "\n\n" \
|
#define gzip_full_usage "\n\n" \
|
||||||
"Compress FILEs (or stdin)\n" \
|
"Compress FILEs (or stdin)\n" \
|
||||||
"\nOptions:" \
|
"\nOptions:" \
|
||||||
"\n -c Write to stdout" \
|
|
||||||
"\n -d Decompress" \
|
"\n -d Decompress" \
|
||||||
|
"\n -c Write to stdout" \
|
||||||
"\n -f Force" \
|
"\n -f Force" \
|
||||||
|
|
||||||
#define gzip_example_usage \
|
#define gzip_example_usage \
|
||||||
@ -4977,7 +4986,7 @@
|
|||||||
#define uncompress_trivial_usage \
|
#define uncompress_trivial_usage \
|
||||||
"[-cf] [FILE]..."
|
"[-cf] [FILE]..."
|
||||||
#define uncompress_full_usage "\n\n" \
|
#define uncompress_full_usage "\n\n" \
|
||||||
"Uncompress .Z file[s]\n" \
|
"Decompress .Z file[s]\n" \
|
||||||
"\nOptions:" \
|
"\nOptions:" \
|
||||||
"\n -c Extract to stdout" \
|
"\n -c Extract to stdout" \
|
||||||
"\n -f Overwrite an existing file" \
|
"\n -f Overwrite an existing file" \
|
||||||
@ -5224,7 +5233,7 @@
|
|||||||
#define zcat_trivial_usage \
|
#define zcat_trivial_usage \
|
||||||
"FILE"
|
"FILE"
|
||||||
#define zcat_full_usage "\n\n" \
|
#define zcat_full_usage "\n\n" \
|
||||||
"Uncompress to stdout"
|
"Decompress to stdout"
|
||||||
|
|
||||||
#define zcip_trivial_usage \
|
#define zcip_trivial_usage \
|
||||||
"[OPTIONS] IFACE SCRIPT"
|
"[OPTIONS] IFACE SCRIPT"
|
||||||
|
Loading…
Reference in New Issue
Block a user