set_next_block_after (current_header);
if (multi_volume_option)
{
- assign_string (&save_name, current_stat_info.file_name);
+ assign_string (&save_name, current_stat_info.orig_file_name);
save_totsize = current_stat_info.stat.st_size;
}
for (size = current_stat_info.stat.st_size; size > 0; size -= written)
}
if (multi_volume_option)
- assign_string (&save_name, current_stat_info.file_name);
+ assign_string (&save_name, current_stat_info.orig_file_name);
skip_member ();
if (header->header.typeflag == GNUTYPE_LONGNAME
|| header->header.typeflag == GNUTYPE_LONGLINK
|| header->header.typeflag == XHDTYPE
- || header->header.typeflag == XGLTYPE)
+ || header->header.typeflag == XGLTYPE
+ || header->header.typeflag == SOLARIS_XHDTYPE)
{
if (raw_extended_headers)
return HEADER_SUCCESS_EXTENDED;
*bp = '\0';
}
- else if (header->header.typeflag == XHDTYPE)
+ else if (header->header.typeflag == XHDTYPE
+ || header->header.typeflag == SOLARIS_XHDTYPE)
xheader_read (header, OFF_FROM_HEADER (header->header.size));
else if (header->header.typeflag == XGLTYPE)
{
/* User and group names. */
- if (st->uname && current_format != V7_FORMAT
+ if (st->uname
+ && st->uname[0]
+ && current_format != V7_FORMAT
&& !numeric_owner_option)
user = st->uname;
else
}
}
- if (st->gname && current_format != V7_FORMAT
+ if (st->gname
+ && st->gname[0]
+ && current_format != V7_FORMAT
&& !numeric_owner_option)
group = st->gname;
else
char save_typeflag = current_header->header.typeflag;
set_next_block_after (current_header);
- assign_string (&save_name, current_stat_info.file_name);
+ assign_string (&save_name, current_stat_info.orig_file_name);
if (current_stat_info.is_sparse)
sparse_skip_file (¤t_stat_info);