bbunzip: size optimization: ~90 bytes
This commit is contained in:
parent
f25d57e0b4
commit
bebbd8c9ba
@ -8,15 +8,15 @@ libs-y += libunarchive/
|
|||||||
|
|
||||||
lib-y:=
|
lib-y:=
|
||||||
lib-$(CONFIG_AR) += ar.o
|
lib-$(CONFIG_AR) += ar.o
|
||||||
lib-$(CONFIG_BUNZIP2) += bbunzip.o ### bunzip2.o
|
lib-$(CONFIG_BUNZIP2) += bbunzip.o
|
||||||
lib-$(CONFIG_UNLZMA) += bbunzip.o ### unlzma.o
|
lib-$(CONFIG_UNLZMA) += bbunzip.o
|
||||||
lib-$(CONFIG_CPIO) += cpio.o
|
lib-$(CONFIG_CPIO) += cpio.o
|
||||||
lib-$(CONFIG_DPKG) += dpkg.o
|
lib-$(CONFIG_DPKG) += dpkg.o
|
||||||
lib-$(CONFIG_DPKG_DEB) += dpkg_deb.o
|
lib-$(CONFIG_DPKG_DEB) += dpkg_deb.o
|
||||||
lib-$(CONFIG_GUNZIP) += bbunzip.o ### gunzip.o
|
lib-$(CONFIG_GUNZIP) += bbunzip.o
|
||||||
lib-$(CONFIG_GZIP) += gzip.o
|
lib-$(CONFIG_GZIP) += gzip.o
|
||||||
lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o
|
lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o
|
||||||
lib-$(CONFIG_RPM) += rpm.o
|
lib-$(CONFIG_RPM) += rpm.o
|
||||||
lib-$(CONFIG_TAR) += tar.o
|
lib-$(CONFIG_TAR) += tar.o
|
||||||
lib-$(CONFIG_UNCOMPRESS) += bbunzip.o ### uncompress.o
|
lib-$(CONFIG_UNCOMPRESS) += bbunzip.o
|
||||||
lib-$(CONFIG_UNZIP) += unzip.o
|
lib-$(CONFIG_UNZIP) += unzip.o
|
||||||
|
@ -127,13 +127,11 @@ int unpack(char **argv,
|
|||||||
return exitcode;
|
return exitcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLE_BUNZIP2
|
|
||||||
|
|
||||||
static
|
static
|
||||||
char* make_new_name_bunzip2(char *filename)
|
char* make_new_name_generic(char *filename, const char *expected_ext)
|
||||||
{
|
{
|
||||||
char *extension = strrchr(filename, '.');
|
char *extension = strrchr(filename, '.');
|
||||||
if (!extension || strcmp(extension, ".bz2") != 0) {
|
if (!extension || strcmp(extension + 1, expected_ext) != 0) {
|
||||||
/* Mimic GNU gunzip - "real" bunzip2 tries to */
|
/* Mimic GNU gunzip - "real" bunzip2 tries to */
|
||||||
/* unpack file anyway, to file.out */
|
/* unpack file anyway, to file.out */
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -142,6 +140,14 @@ char* make_new_name_bunzip2(char *filename)
|
|||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_BUNZIP2
|
||||||
|
|
||||||
|
static
|
||||||
|
char* make_new_name_bunzip2(char *filename)
|
||||||
|
{
|
||||||
|
return make_new_name_generic(filename, "bz2");
|
||||||
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
USE_DESKTOP(long long) int unpack_bunzip2(void)
|
USE_DESKTOP(long long) int unpack_bunzip2(void)
|
||||||
{
|
{
|
||||||
@ -200,13 +206,14 @@ char* make_new_name_gunzip(char *filename)
|
|||||||
if (!extension)
|
if (!extension)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (strcmp(extension, ".gz") == 0
|
extension++;
|
||||||
|
if (strcmp(extension, "tgz" + 1) == 0
|
||||||
#ifdef CONFIG_FEATURE_GUNZIP_UNCOMPRESS
|
#ifdef CONFIG_FEATURE_GUNZIP_UNCOMPRESS
|
||||||
|| strcmp(extension, ".Z") == 0
|
|| strcmp(extension, "Z") == 0
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
*extension = '\0';
|
extension[-1] = '\0';
|
||||||
} else if(strcmp(extension, ".tgz") == 0) {
|
} else if(strcmp(extension, "tgz") == 0) {
|
||||||
filename = xstrdup(filename);
|
filename = xstrdup(filename);
|
||||||
extension = strrchr(filename, '.');
|
extension = strrchr(filename, '.');
|
||||||
extension[2] = 'a';
|
extension[2] = 'a';
|
||||||
@ -275,11 +282,7 @@ int gunzip_main(int argc, char **argv)
|
|||||||
static
|
static
|
||||||
char* make_new_name_unlzma(char *filename)
|
char* make_new_name_unlzma(char *filename)
|
||||||
{
|
{
|
||||||
char *extension = strrchr(filename, '.');
|
return make_new_name_generic(filename, "lzma");
|
||||||
if (!extension || strcmp(extension, ".lzma") != 0)
|
|
||||||
return NULL;
|
|
||||||
*extension = '\0';
|
|
||||||
return filename;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
@ -315,11 +318,7 @@ int unlzma_main(int argc, char **argv)
|
|||||||
static
|
static
|
||||||
char* make_new_name_uncompress(char *filename)
|
char* make_new_name_uncompress(char *filename)
|
||||||
{
|
{
|
||||||
char *extension = strrchr(filename, '.');
|
return make_new_name_generic(filename, "Z");
|
||||||
if (!extension || strcmp(extension, ".Z") != 0)
|
|
||||||
return NULL;
|
|
||||||
*extension = '\0';
|
|
||||||
return filename;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
|
Loading…
x
Reference in New Issue
Block a user