| 469 |
union block *header; |
union block *header; |
| 470 |
|
|
| 471 |
name = safer_name_suffix (name, 0); |
name = safer_name_suffix (name, 0); |
| 472 |
|
assign_string (&st->file_name, name); |
| 473 |
|
|
| 474 |
if (sizeof header->header.name <= strlen (name)) |
if (sizeof header->header.name <= strlen (name)) |
| 475 |
write_long (name, GNUTYPE_LONGNAME); |
{ |
| 476 |
|
if (archive_format == POSIX_FORMAT) |
| 477 |
|
xheader_store ("path", st); |
| 478 |
|
else |
| 479 |
|
write_long (name, GNUTYPE_LONGNAME); |
| 480 |
|
} |
| 481 |
|
|
| 482 |
header = find_next_block (); |
header = find_next_block (); |
| 483 |
memset (header->buffer, 0, sizeof (union block)); |
memset (header->buffer, 0, sizeof (union block)); |
| 484 |
|
|
| 635 |
int sum; |
int sum; |
| 636 |
char *p; |
char *p; |
| 637 |
|
|
| 638 |
|
/* Note: It is important to do this before the call to write_extended(), |
| 639 |
|
so that the actual ustar header is printed */ |
| 640 |
|
if (verbose_option |
| 641 |
|
&& header->header.typeflag != GNUTYPE_LONGLINK |
| 642 |
|
&& header->header.typeflag != GNUTYPE_LONGNAME |
| 643 |
|
&& header->header.typeflag != XHDTYPE |
| 644 |
|
&& header->header.typeflag != XGLTYPE) |
| 645 |
|
{ |
| 646 |
|
/* These globals are parameters to print_header, sigh. */ |
| 647 |
|
|
| 648 |
|
current_header = header; |
| 649 |
|
/* current_stat_info is already set up. */ |
| 650 |
|
current_format = archive_format; |
| 651 |
|
print_header (block_ordinal); |
| 652 |
|
} |
| 653 |
|
|
| 654 |
header = write_extended (header, XHDTYPE); |
header = write_extended (header, XHDTYPE); |
| 655 |
|
|
| 656 |
memcpy (header->header.chksum, CHKBLANKS, sizeof header->header.chksum); |
memcpy (header->header.chksum, CHKBLANKS, sizeof header->header.chksum); |
| 673 |
|
|
| 674 |
uintmax_to_chars ((uintmax_t) sum, header->header.chksum, 7); |
uintmax_to_chars ((uintmax_t) sum, header->header.chksum, 7); |
| 675 |
|
|
|
if (verbose_option |
|
|
&& header->header.typeflag != GNUTYPE_LONGLINK |
|
|
&& header->header.typeflag != GNUTYPE_LONGNAME) |
|
|
{ |
|
|
/* These globals are parameters to print_header, sigh. */ |
|
|
|
|
|
current_header = header; |
|
|
/* current_stat_info is already set up. */ |
|
|
current_format = archive_format; |
|
|
print_header (block_ordinal); |
|
|
} |
|
|
|
|
| 676 |
set_next_block_after (header); |
set_next_block_after (header); |
| 677 |
} |
} |
| 678 |
|
|