(buffer_write_global_xheader): New function

Update to use new xheader calls.
This commit is contained in:
Sergey Poznyakoff
2007-05-19 17:03:01 +00:00
parent 64cddf2fbc
commit 6f929b2c89

View File

@@ -121,6 +121,15 @@ static off_t save_totsize; /* total size of file we are writing, only
static off_t save_sizeleft; /* where we are in the file we are writing,
only valid if save_name is nonzero */
static struct tar_stat_info dummy;
void
buffer_write_global_xheader ()
{
xheader_write_global (&dummy.xhdr);
}
void
mv_begin (struct tar_stat_info *st)
{
@@ -1123,7 +1132,6 @@ try_new_volume ()
{
size_t status;
union block *header;
struct tar_stat_info dummy;
int access;
switch (subcommand_option)
@@ -1295,7 +1303,7 @@ static void
_write_volume_label (const char *str)
{
if (archive_format == POSIX_FORMAT)
xheader_store ("GNU.volume.label", NULL, str);
xheader_store ("GNU.volume.label", &dummy, str);
else
{
union block *label = find_next_block ();
@@ -1412,9 +1420,9 @@ add_multi_volume_header (void)
if (archive_format == POSIX_FORMAT)
{
off_t d = real_s_totsize - real_s_sizeleft;
xheader_store ("GNU.volume.filename", NULL, real_s_name);
xheader_store ("GNU.volume.size", NULL, &real_s_sizeleft);
xheader_store ("GNU.volume.offset", NULL, &d);
xheader_store ("GNU.volume.filename", &dummy, real_s_name);
xheader_store ("GNU.volume.size", &dummy, &real_s_sizeleft);
xheader_store ("GNU.volume.offset", &dummy, &d);
}
else
gnu_add_multi_volume_header ();
@@ -1601,7 +1609,7 @@ _gnu_flush_write (size_t buffer_level)
if (!new_volume (ACCESS_WRITE))
return;
xheader_destroy (&extended_header);
tar_stat_destroy (&dummy);
increase_volume_number ();
prev_written += bytes_written;
@@ -1619,7 +1627,9 @@ _gnu_flush_write (size_t buffer_level)
if (real_s_name)
add_multi_volume_header ();
write_extended (true, NULL, find_next_block ());
write_extended (true, &dummy, find_next_block ());
tar_stat_destroy (&dummy);
if (real_s_name)
add_chunk_header ();
header = find_next_block ();