d56f94b21dfc7672ca19f76a498381269eea2b63
[oweals/busybox.git] / archival / libunarchive / seek_by_read.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
4  */
5
6 #include <stdlib.h>
7
8 #include "unarchive.h"
9 #include "libbb.h"
10
11 /*  If we are reading through a pipe(), or from stdin then we can't lseek,
12  *  we must read and discard the data to skip over it.
13  */
14 void seek_by_read(const archive_handle_t *archive_handle, const unsigned int jump_size)
15 {
16         if (jump_size) {
17                 bb_copyfd_size(archive_handle->src_fd, -1, jump_size);
18         }
19 }