* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
-#include "busybox.h"
+#include "libbb.h"
#include "unarchive.h"
enum {
static
int open_to_or_warn(int to_fd, const char *filename, int flags, int mode)
{
- int fd = open(filename, flags, mode);
+ int fd = open3_or_warn(filename, flags, mode);
if (fd < 0) {
- bb_perror_msg("%s", filename);
return 1;
}
- if (fd != to_fd) {
- if (dup2(fd, to_fd) < 0)
- bb_perror_msg_and_die("cannot dup");
- close(fd);
- }
+ xmove_fd(fd, to_fd);
return 0;
}
static
USE_DESKTOP(long long) int unpack_bunzip2(void)
{
- return uncompressStream(STDIN_FILENO, STDOUT_FILENO);
+ return unpack_bz2_stream(STDIN_FILENO, STDOUT_FILENO);
}
int bunzip2_main(int argc, char **argv);
#endif
) {
extension[-1] = '\0';
- } else if(strcmp(extension, "tgz") == 0) {
+ } else if (strcmp(extension, "tgz") == 0) {
filename = xstrdup(filename);
extension = strrchr(filename, '.');
extension[2] = 'a';
status = uncompress(STDIN_FILENO, STDOUT_FILENO);
} else if (magic2 == 0x8b) {
check_header_gzip_or_die(STDIN_FILENO);
- status = inflate_gunzip(STDIN_FILENO, STDOUT_FILENO);
+ status = unpack_gz_stream(STDIN_FILENO, STDOUT_FILENO);
} else {
goto bad_magic;
}
static
USE_DESKTOP(long long) int unpack_unlzma(void)
{
- return unlzma(STDIN_FILENO, STDOUT_FILENO);
+ return unpack_lzma_stream(STDIN_FILENO, STDOUT_FILENO);
}
int unlzma_main(int argc, char **argv);