diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-07-10 17:43:01 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-07-10 17:43:01 +0000 |
commit | b6052724ffc9d45894147b70e7aff226938bd2d3 (patch) | |
tree | e39d062e16d85da315cdb8cc0a96a03f15c10a23 /include | |
parent | 0e2c93fc0b5f335d731ff712ce8f42d8616f05b9 (diff) | |
download | busybox-b6052724ffc9d45894147b70e7aff226938bd2d3.tar.gz |
open_transformer: do not return fd, it does not change
libbb: adopt zipped read from modprobe-small
function old new delta
getoptscmd 708 713 +5
qgravechar 106 109 +3
huft_build 1165 1168 +3
tr_main 474 472 -2
open_transformer 91 89 -2
evalvar 1376 1374 -2
rpm_main 1691 1688 -3
qrealloc 36 33 -3
get_header_tar_lzma 55 52 -3
get_header_tar_gz 100 97 -3
get_header_tar_bz2 55 52 -3
get_header_tar_Z 89 86 -3
find_main 418 406 -12
prepare 302 283 -19
xmalloc_open_zipped_read_close 161 135 -26
xmalloc_read 248 199 -49
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/13 up/down: 11/-130) Total: -119 bytes
Diffstat (limited to 'include')
-rw-r--r-- | include/libbb.h | 9 | ||||
-rw-r--r-- | include/unarchive.h | 6 |
2 files changed, 9 insertions, 6 deletions
diff --git a/include/libbb.h b/include/libbb.h index 2dfdded5b..671584b43 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -583,15 +583,18 @@ extern unsigned char xread_char(int fd) FAST_FUNC; // Reads one line a-la fgets (but doesn't save terminating '\n'). // Uses single full_read() call, works only on seekable streams. extern char *reads(int fd, char *buf, size_t count) FAST_FUNC; +extern ssize_t read_close(int fd, void *buf, size_t maxsz) FAST_FUNC; +extern ssize_t open_read_close(const char *filename, void *buf, size_t maxsz) FAST_FUNC; // Reads one line a-la fgets (but doesn't save terminating '\n'). // Reads byte-by-byte. Useful when it is important to not read ahead. // Bytes are appended to pfx (which must be malloced, or NULL). extern char *xmalloc_reads(int fd, char *pfx, size_t *maxsz_p) FAST_FUNC; -extern ssize_t read_close(int fd, void *buf, size_t maxsz) FAST_FUNC; -extern ssize_t open_read_close(const char *filename, void *buf, size_t maxsz) FAST_FUNC; -extern void *xmalloc_read(int fd, size_t *sizep) FAST_FUNC; +/* Reads block up to *maxsz_p (default: MAX_INT(ssize_t)) */ +extern void *xmalloc_read(int fd, size_t *maxsz_p) FAST_FUNC; /* Returns NULL if file can't be opened */ extern void *xmalloc_open_read_close(const char *filename, size_t *maxsz_p) FAST_FUNC; +/* Autodetects .gz etc */ +extern void *xmalloc_open_zipped_read_close(const char *fname, size_t *maxsz_p) FAST_FUNC; /* Never returns NULL */ extern void *xmalloc_xopen_read_close(const char *filename, size_t *maxsz_p) FAST_FUNC; diff --git a/include/unarchive.h b/include/unarchive.h index 1fab570c3..0e380db08 100644 --- a/include/unarchive.h +++ b/include/unarchive.h @@ -126,12 +126,12 @@ extern USE_DESKTOP(long long) int unpack_gz_stream(int src_fd, int dst_fd) FAST_ extern USE_DESKTOP(long long) int unpack_lzma_stream(int src_fd, int dst_fd) FAST_FUNC; #if BB_MMU -extern int open_transformer(int src_fd, +extern void open_transformer(int fd, USE_DESKTOP(long long) int FAST_FUNC (*transformer)(int src_fd, int dst_fd)) FAST_FUNC; -#define open_transformer(src_fd, transformer, transform_prog) open_transformer(src_fd, transformer) +#define open_transformer(fd, transformer, transform_prog) open_transformer(fd, transformer) #else extern int open_transformer(int src_fd, const char *transform_prog) FAST_FUNC; -#define open_transformer(src_fd, transformer, transform_prog) open_transformer(src_fd, transform_prog) +#define open_transformer(fd, transformer, transform_prog) open_transformer(fd, transform_prog) #endif #if __GNUC_PREREQ(4,1) |