archival/*: shrink by reusing sufficiently similar functions

function                                             old     new   delta
append_ext                                             -      16     +16
unxz_main                                             77      83      +6
unlzma_main                                           77      83      +6
uncompress_main                                       42      48      +6
gzip_main                                            184     190      +6
bzip2_main                                           114     120      +6
bunzip2_main                                          61      67      +6
bbunpack                                             469     475      +6
send_tree                                            355     360      +5
lzop_main                                             89      92      +3
gunzip_main                                           61      64      +3
make_new_name_lzop                                    84      82      -2
make_new_name_gunzip                                 114     112      -2
make_new_name_unxz                                    14       -     -14
make_new_name_unlzma                                  14       -     -14
make_new_name_uncompress                              14       -     -14
make_new_name_bunzip2                                 14       -     -14
make_new_name_gzip                                    17       -     -17
make_new_name_bzip2                                   17       -     -17
------------------------------------------------------------------------------
(add/remove: 1/6 grow/shrink: 10/2 up/down: 69/-94)           Total: -25 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2010-05-31 14:18:57 +02:00
parent b8b72f02f0
commit 39a04f71ca
5 changed files with 34 additions and 57 deletions

View File

@@ -1998,13 +1998,7 @@ static void zip(ulg time_stamp)
/* ======================================================================== */
static
char* make_new_name_gzip(char *filename)
{
return xasprintf("%s.gz", filename);
}
static
IF_DESKTOP(long long) int pack_gzip(unpack_info_t *info UNUSED_PARAM)
IF_DESKTOP(long long) int FAST_FUNC pack_gzip(unpack_info_t *info UNUSED_PARAM)
{
struct stat s;
@@ -2063,7 +2057,7 @@ static const char gzip_longopts[] ALIGN1 =
#endif
/*
* Linux kernel build uses gzip -d -n. We accept and ignore it.
* Linux kernel build uses gzip -d -n. We accept and ignore -n.
* Man page says:
* -n --no-name
* gzip: do not save the original file name and time stamp.
@@ -2113,5 +2107,5 @@ int gzip_main(int argc UNUSED_PARAM, char **argv)
/* Initialise the CRC32 table */
G1.crc_32_tab = crc32_filltable(NULL, 0);
return bbunpack(argv, make_new_name_gzip, pack_gzip);
return bbunpack(argv, pack_gzip, append_ext, "gz");
}