diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-06-04 15:40:29 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-06-04 15:40:29 +0200 |
commit | 8af4ee6f415fe316894e4423235dfc4ee70d8cbb (patch) | |
tree | eb0cb6e236276e3bfa39aff7c7b2ec771ee8d171 /lib/io/src/ostream.c | |
parent | 723306c417b3b0f8e6a3904906d6c5612cace432 (diff) |
libio: move splice function from ostream to istream
It touches internals of the istream, particularly the buffer, but
not of the ostream. It really belongs to istream_t.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/io/src/ostream.c')
-rw-r--r-- | lib/io/src/ostream.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/lib/io/src/ostream.c b/lib/io/src/ostream.c index da0b7b3..35f98d4 100644 --- a/lib/io/src/ostream.c +++ b/lib/io/src/ostream.c @@ -33,36 +33,3 @@ int ostream_append_sparse(ostream_t *strm, size_t size) return strm->append_sparse(strm, size); } - -sqfs_s32 ostream_append_from_istream(ostream_t *out, istream_t *in, - sqfs_u32 size) -{ - sqfs_s32 total = 0; - size_t diff; - - if (size > 0x7FFFFFFF) - size = 0x7FFFFFFF; - - while (size > 0) { - if (in->buffer_offset >= in->buffer_used) { - if (istream_precache(in)) - return -1; - - if (in->buffer_used == 0) - break; - } - - diff = in->buffer_used - in->buffer_offset; - if (diff > size) - diff = size; - - if (out->append(out, in->buffer + in->buffer_offset, diff)) - return -1; - - in->buffer_offset += diff; - size -= diff; - total += diff; - } - - return total; -} |