]> Dogcows Code - chaz/tar/commitdiff
(buffer_write_global_xheader): New function
authorSergey Poznyakoff <gray@gnu.org.ua>
Sat, 19 May 2007 17:03:01 +0000 (17:03 +0000)
committerSergey Poznyakoff <gray@gnu.org.ua>
Sat, 19 May 2007 17:03:01 +0000 (17:03 +0000)
Update to use new xheader calls.

src/buffer.c

index 50b474936939f0e606c8c2dc504581611ef09a00..f1034636b6de70a13eec147bc791580268135080 100644 (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 */
 
+\f
+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 ();
This page took 0.027376 seconds and 4 git commands to generate.