From 6f929b2c8998bab44ca81b01cd8e1381fb6e9dfe Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sat, 19 May 2007 17:03:01 +0000 Subject: [PATCH] (buffer_write_global_xheader): New function Update to use new xheader calls. --- src/buffer.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/buffer.c b/src/buffer.c index 50b4749..f103463 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -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 (); -- 2.45.2