zcat: fix "zcat FILE" trying to do detection twice
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
8e96efa323
commit
41655438c6
@ -66,12 +66,17 @@ int FAST_FUNC bbunpack(char **argv,
|
|||||||
if (open_to_or_warn(STDIN_FILENO, filename, O_RDONLY, 0))
|
if (open_to_or_warn(STDIN_FILENO, filename, O_RDONLY, 0))
|
||||||
goto err;
|
goto err;
|
||||||
} else {
|
} else {
|
||||||
/* "clever zcat" */
|
/* "clever zcat" with FILE */
|
||||||
int fd = open_zipped(filename);
|
int fd = open_zipped(filename);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
goto err_name;
|
goto err_name;
|
||||||
xmove_fd(fd, STDIN_FILENO);
|
xmove_fd(fd, STDIN_FILENO);
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
if (option_mask32 & SEAMLESS_MAGIC) {
|
||||||
|
/* "clever zcat" on stdin */
|
||||||
|
if (setup_unzip_on_fd(STDIN_FILENO, /*fail_if_not_detected*/ 0))
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Special cases: test, stdout */
|
/* Special cases: test, stdout */
|
||||||
@ -115,15 +120,9 @@ int FAST_FUNC bbunpack(char **argv,
|
|||||||
if (status < 0)
|
if (status < 0)
|
||||||
exitcode = 1;
|
exitcode = 1;
|
||||||
} else {
|
} else {
|
||||||
/* "clever zcat" */
|
if (bb_copyfd_eof(STDIN_FILENO, STDOUT_FILENO) < 0)
|
||||||
if (!filename) {
|
|
||||||
if (setup_unzip_on_fd(STDIN_FILENO, /*fail_if_not_detected*/ 0))
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
if (bb_copyfd_eof(STDIN_FILENO, STDOUT_FILENO) < 0) {
|
|
||||||
/* Disk full, tty closed, etc. No point in continuing */
|
/* Disk full, tty closed, etc. No point in continuing */
|
||||||
xfunc_die();
|
xfunc_die();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(option_mask32 & OPT_STDOUT))
|
if (!(option_mask32 & OPT_STDOUT))
|
||||||
|
Loading…
Reference in New Issue
Block a user