X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fsparse.c;h=67e5a857166df9f31c98644dd024a4423cf01520;hb=ab6dd4948d1736b97a343d3c183f2dedad7421bb;hp=4a391a9cc6bd5202f89edc1b61dd81fd06a12a7c;hpb=b4bcb97e386a30996d3d4df8255116fc09c1f505;p=chaz%2Ftar diff --git a/src/sparse.c b/src/sparse.c index 4a391a9..67e5a85 100644 --- a/src/sparse.c +++ b/src/sparse.c @@ -324,7 +324,6 @@ sparse_dump_region (struct tar_sparse_file *file, size_t i) memset (blk->buffer + bytes_read, 0, BLOCKSIZE - bytes_read); bytes_left -= bytes_read; file->dumped_size += bytes_read; - mv_size_left (file->stat_info->archive_file_size - file->dumped_size); set_next_block_after (blk); } @@ -398,10 +397,11 @@ sparse_dump_file (int fd, struct tar_stat_info *st) { size_t i; - mv_begin (file.stat_info); + mv_begin_write (file.stat_info->file_name, + file.stat_info->stat.st_size, + file.stat_info->archive_file_size - file.dumped_size); for (i = 0; rc && i < file.stat_info->sparse_map_avail; i++) rc = tar_sparse_dump_region (&file, i); - mv_end (); } } @@ -566,7 +566,7 @@ sparse_diff_file (int fd, struct tar_stat_info *st) file.seekable = true; /* File *must* be seekable for compare to work */ rc = tar_sparse_decode_header (&file); - mv_begin (st); + mv_begin_read (st); for (i = 0; rc && i < file.stat_info->sparse_map_avail; i++) { rc = check_sparse_region (&file,