union block *header;
header = start_private_header ("././@LongLink", size);
+ strcpy (header->header.magic, OLDGNU_MAGIC);
header->header.typeflag = type;
finish_header (st, header, -1);
switch (archive_format)
{
case POSIX_FORMAT:
- xheader_store ("linkpath", st);
+ xheader_store ("linkpath", st, NULL);
break;
case V7_FORMAT: /* old V7 tar format */
switch (archive_format)
{
case POSIX_FORMAT:
- xheader_store ("path", st);
+ xheader_store ("path", st, NULL);
break;
case V7_FORMAT:
MODE_TO_CHARS (st->stat.st_mode, header->header.mode);
if (st->stat.st_uid > MAXOCTAL7 && archive_format == POSIX_FORMAT)
- xheader_store ("uid", st);
+ xheader_store ("uid", st, NULL);
else
UID_TO_CHARS (st->stat.st_uid, header->header.uid);
if (st->stat.st_gid > MAXOCTAL7 && archive_format == POSIX_FORMAT)
- xheader_store ("gid", st);
+ xheader_store ("gid", st, NULL);
else
GID_TO_CHARS (st->stat.st_gid, header->header.gid);
if (st->stat.st_size > MAXOCTAL11 && archive_format == POSIX_FORMAT)
- xheader_store ("size", st);
+ xheader_store ("size", st, NULL);
else
OFF_TO_CHARS (st->stat.st_size, header->header.size);
st->devminor = minor (st->stat.st_rdev);
if (st->devmajor > MAXOCTAL7 && archive_format == POSIX_FORMAT)
- xheader_store ("devmajor", st);
+ xheader_store ("devmajor", st, NULL);
else
MAJOR_TO_CHARS (st->devmajor, header->header.devmajor);
if (st->devminor > MAXOCTAL7 && archive_format == POSIX_FORMAT)
- xheader_store ("devminor", st);
+ xheader_store ("devminor", st, NULL);
else
MAJOR_TO_CHARS (st->devminor, header->header.devminor);
}
if (archive_format == POSIX_FORMAT)
{
- xheader_store ("atime", st);
- xheader_store ("ctime", st);
+ xheader_store ("atime", st, NULL);
+ xheader_store ("ctime", st, NULL);
}
else if (incremental_option)
if (archive_format == OLDGNU_FORMAT)
if (archive_format == POSIX_FORMAT
&& strlen (st->uname) > UNAME_FIELD_SIZE)
- xheader_store ("uname", st);
+ xheader_store ("uname", st, NULL);
else
UNAME_TO_CHARS (st->uname, header->header.uname);
if (archive_format == POSIX_FORMAT
&& strlen (st->gname) > GNAME_FIELD_SIZE)
- xheader_store ("gname", st);
+ xheader_store ("gname", st, NULL);
else
GNAME_TO_CHARS (st->gname, header->header.gname);
}
return;
}
}
- else if (!recursion_option)
+
+ if (!recursion_option)
return;
- else if (one_file_system_option
+
+ if (one_file_system_option
&& !top_level
&& parent_device != stat->stat.st_dev)
{
if ((dup = hash_lookup (link_table, &lp)))
{
/* We found a link. */
- char const *link_name = safer_name_suffix (dup->name, 1);
+ char const *link_name = safer_name_suffix (dup->name, true);
dup->nlink--;
return;
assign_string (&stat->orig_file_name, p);
- assign_string (&stat->file_name, safer_name_suffix (p, 0));
+ assign_string (&stat->file_name, safer_name_suffix (p, false));
if (deref_stat (dereference_option, p, &stat->stat) != 0)
{
return;
}
stat->archive_file_size = stat->stat.st_size;
-
+ sys_stat_nanoseconds(stat);
original_ctime = stat->stat.st_ctime;
restore_times.actime = stat->stat.st_atime;
restore_times.modtime = stat->stat.st_mtime;