/* Get the maximum size of uncompressed chunks in this resource, which
* we require be a power of 2. */
- u32 chunk_size;
+ u32 chunk_size = 0;
u64 cur_read_offset = rspec->offset_in_wim;
- int ctype;
+ int ctype = WIMLIB_COMPRESSION_TYPE_NONE;
if (alt_chunk_table) {
/* Alternate chunk table format. Its header specifies the chunk
* size and compression format. */
if (ctx->cur_stream_offset == ctx->cur_stream->size) {
/* Finished reading all the data for a stream. */
+ ctx->cur_stream_offset = 0;
+
DEBUG("End stream (size=%"PRIu64").", ctx->cur_stream->size);
ret = (*ctx->cbs.end_stream)(ctx->cur_stream, 0,
ctx->cbs.end_stream_ctx);
else
ctx->next_stream = NULL;
}
- ctx->cur_stream_offset = 0;
}
return 0;
}
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)