errno = EEXIST;
return r;
}
+
+ case UNLINK_FIRST_OLD_FILES:
+ break;
}
case ENOENT:
int openflag;
mode_t mode;
off_t size;
- off_t file_size;
int interdir_made = 0;
char typeflag;
char *file_name;
/* Extract the archive entry according to its type. */
- typeflag = current_header->header.typeflag;
- /*KLUDGE */
- if (current_format == POSIX_FORMAT
- && current_stat_info.archive_file_size != current_stat_info.stat.st_size)
- typeflag = GNUTYPE_SPARSE;
+ /* KLUDGE */
+ typeflag = sparse_member_p (¤t_stat_info) ?
+ GNUTYPE_SPARSE : current_header->header.typeflag;
switch (typeflag)
{
}
extract_file:
- if (typeflag == GNUTYPE_SPARSE)
+ if (current_stat_info.is_sparse)
{
sparse_extract_file (fd, ¤t_stat_info, &size);
}