Abstract read and seek in unarchiving code, convert bunzip to file descriptors, support tar -j

This commit is contained in:
Glenn L McGrath
2002-11-03 14:05:15 +00:00
parent 2fc54a9258
commit 237ae42fc9
28 changed files with 466 additions and 332 deletions

View File

@@ -50,9 +50,9 @@ extern char get_header_tar(archive_handle_t *archive_handle)
char *tmp;
/* Align header */
archive_handle->offset += data_align(archive_handle->src_fd, archive_handle->offset, 512);
data_align(archive_handle, 512);
if (xread_all_eof(archive_handle->src_fd, tar.raw, 512) == 0) {
if (archive_xread_all_eof(archive_handle, tar.raw, 512) == 0) {
/* End of file */
return(EXIT_FAILURE);
}
@@ -72,7 +72,6 @@ extern char get_header_tar(archive_handle_t *archive_handle)
#endif
error_msg_and_die("Invalid tar magic");
}
/* Do checksum on headers */
for (i = 0; i < 148 ; i++) {
sum += tar.raw[i];
@@ -138,7 +137,7 @@ extern char get_header_tar(archive_handle_t *archive_handle)
char *longname;
longname = xmalloc(file_header->size + 1);
xread_all(archive_handle->src_fd, longname, file_header->size);
archive_xread_all(archive_handle, longname, file_header->size);
longname[file_header->size] = '\0';
archive_handle->offset += file_header->size;
@@ -150,7 +149,7 @@ extern char get_header_tar(archive_handle_t *archive_handle)
char *linkname;
linkname = xmalloc(file_header->size + 1);
xread_all(archive_handle->src_fd, linkname, file_header->size);
archive_xread_all(archive_handle, linkname, file_header->size);
linkname[file_header->size] = '\0';
archive_handle->offset += file_header->size;