return errno != ENOENT;
}
if (!S_ISDIR (st.st_mode)
- && timespec_cmp (tar_stat->mtime, get_stat_mtime (&st)) <= 0)
+ && tar_timespec_cmp (tar_stat->mtime, get_stat_mtime (&st)) <= 0)
{
return true;
}
}
}
+ mv_begin (¤t_stat_info);
if (current_stat_info.is_sparse)
sparse_extract_file (fd, ¤t_stat_info, &size);
else
for (size = current_stat_info.stat.st_size; size > 0; )
{
- if (multi_volume_option)
- {
- assign_string (&save_name, current_stat_info.orig_file_name);
- save_totsize = current_stat_info.stat.st_size;
- save_sizeleft = size;
- }
-
+ mv_size_left (size);
+
/* Locate data, determine max length writeable, write it,
block that we have used the data, then check if the write
worked. */
-
+
data_block = find_next_block ();
if (! data_block)
{
ERROR ((0, 0, _("Unexpected EOF in archive")));
break; /* FIXME: What happens, then? */
}
-
+
written = available_space_after (data_block);
-
+
if (written > size)
written = size;
errno = 0;
count = full_write (fd, data_block->buffer, written);
size -= written;
-
+
set_next_block_after ((union block *)
(data_block->buffer + written - 1));
if (count != written)
skip_file (size);
- if (multi_volume_option)
- assign_string (&save_name, 0);
-
+ mv_end ();
+
/* If writing to stdout, don't try to do anything to the filename;
it doesn't exist, or we don't want to touch it anyway. */