From 1a9e9bdd93b06508b70bd29ef5eeb82f91d86222 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 1 Nov 2008 12:54:56 +0000 Subject: gunzip: restore mtime. approx +80 bytes of code rpm: make code more robust lsmod: small code shrink --- include/libbb.h | 5 +---- include/unarchive.h | 11 +++++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/libbb.h b/include/libbb.h index 2a8b18336..5b6a2dae1 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -912,10 +912,7 @@ int chown_main(int argc, char **argv) USE_CHOWN(MAIN_EXTERNALLY_VISIBLE); /* Don't need USE_xxx() guard for these */ int gunzip_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int bunzip2_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int bbunpack(char **argv, - char* (*make_new_name)(char *filename), - USE_DESKTOP(long long) int (*unpacker)(void) -) FAST_FUNC; + #if ENABLE_ROUTE void bb_displayroutes(int noresolve, int netstatfmt) FAST_FUNC; #endif diff --git a/include/unarchive.h b/include/unarchive.h index 7ff791be5..9077130a5 100644 --- a/include/unarchive.h +++ b/include/unarchive.h @@ -77,6 +77,12 @@ typedef struct archive_handle_t { } archive_handle_t; +/* Info struct unpackers can fill out to inform users of thing like + * timestamps of unpacked files */ +typedef struct unpack_info_t { + time_t mtime; +} unpack_info_t; + extern archive_handle_t *init_handle(void) FAST_FUNC; extern char filter_accept_all(archive_handle_t *archive_handle) FAST_FUNC; @@ -126,10 +132,15 @@ USE_DESKTOP(long long) int unpack_lzma_stream(int src_fd, int dst_fd) FAST_FUNC; /* the rest wants 2 first bytes already skipped by the caller */ USE_DESKTOP(long long) int unpack_bz2_stream(int src_fd, int dst_fd) FAST_FUNC; USE_DESKTOP(long long) int unpack_gz_stream(int src_fd, int dst_fd) FAST_FUNC; +USE_DESKTOP(long long) int unpack_gz_stream_with_info(int src_fd, int dst_fd, unpack_info_t *info) FAST_FUNC; USE_DESKTOP(long long) int unpack_Z_stream(int fd_in, int fd_out) FAST_FUNC; /* wrapper which checks first two bytes to be "BZ" */ USE_DESKTOP(long long) int unpack_bz2_stream_prime(int src_fd, int dst_fd) FAST_FUNC; +int bbunpack(char **argv, + char* (*make_new_name)(char *filename), + USE_DESKTOP(long long) int (*unpacker)(unpack_info_t *info)) FAST_FUNC; + #if BB_MMU void open_transformer(int fd, USE_DESKTOP(long long) int FAST_FUNC (*transformer)(int src_fd, int dst_fd)) FAST_FUNC; -- cgit v1.2.3