extract_stream_to_fd(struct wim_lookup_table_entry *lte,
struct filedes *fd, u64 size);
+extern int
+extract_full_stream_to_fd(struct wim_lookup_table_entry *lte,
+ struct filedes *fd);
+
extern int
extract_chunk_to_fd(const void *chunk, size_t size, void *_fd_p);
if (ret)
goto out_free_found_lte;
- ret = extract_stream_to_fd(needed_lte, &tmpfile_fd,
- needed_lte->size);
+ ret = extract_full_stream_to_fd(needed_lte,
+ &tmpfile_fd);
if (ret) {
filedes_close(&tmpfile_fd);
goto delete_tmpfile;
if (lte) {
struct filedes _stdout;
filedes_init(&_stdout, STDOUT_FILENO);
- ret = extract_stream_to_fd(lte, &_stdout, lte->size);
+ ret = extract_full_stream_to_fd(lte, &_stdout);
}
}
return ret;
return extract_stream(lte, size, extract_chunk_to_fd, fd);
}
+/* Extract the full uncompressed contents of the specified stream to the
+ * specified file descriptor. */
+int
+extract_full_stream_to_fd(struct wim_lookup_table_entry *lte,
+ struct filedes *fd)
+{
+ return extract_stream_to_fd(lte, fd, lte->size);
+}
+
/* Calculate the SHA1 message digest of a stream and store it in @lte->hash. */
int
sha1_stream(struct wim_lookup_table_entry *lte)
if (raw_fd < 0)
return WIMLIB_ERR_OPEN;
filedes_init(&fd, raw_fd);
- ret = extract_stream_to_fd(lte, &fd, lte->size);
+ ret = extract_full_stream_to_fd(lte, &fd);
if (filedes_close(&fd) && !ret)
ret = WIMLIB_ERR_WRITE;
return ret;
if (filedes_seek(out_fd, begin_offset) == -1)
return 0;
- ret = extract_stream_to_fd(lte, out_fd, lte->size);
+ ret = extract_full_stream_to_fd(lte, out_fd);
if (ret) {
/* Error reading the uncompressed data. */
if (out_fd->offset == begin_offset &&