X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fxheader.c;h=087cb1baca957928f07bd1fda2c6b7f1f9f7e5b4;hb=2d2e1d411e09126a7ed82ad774e24082914a51ce;hp=d880bd5600a5ef9f3873b07632a3cab23b5f684b;hpb=9590e781c0ed2ea8a792327fc17d6bb122a92b04;p=chaz%2Ftar diff --git a/src/xheader.c b/src/xheader.c index d880bd5..087cb1b 100644 --- a/src/xheader.c +++ b/src/xheader.c @@ -1,6 +1,6 @@ /* POSIX extended headers for tar. - Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -374,17 +374,6 @@ xheader_write (char type, char *name, struct xheader *xhdr) size_t size; char *p; - if (multi_volume_option) - { - /* Estimate the total size of the extended header and, in case - if XHDTYPE, the ustar header following it, and make sure that - these fit into the current volume */ - size_t hblocks = 1 + (extended_header.size + BLOCKSIZE - 1) / BLOCKSIZE; - if (type == XHDTYPE) - hblocks++; - multi_volume_fixup (hblocks); - } - size = xhdr->size; header = start_private_header (name, size); header->header.typeflag = type; @@ -415,44 +404,6 @@ xheader_write (char type, char *name, struct xheader *xhdr) global_header_count++; } -/* SIZE is guaranteed to be divisible by BLOCKSIZE */ -void -xheader_eof (size_t size) -{ - union block *header; - char *name; - int first_block = 1; - int nl = 0; - - size -= BLOCKSIZE; - name = xheader_ghdr_name (); - header = start_private_header (name, size); - header->header.typeflag = XGLTYPE; - free (name); - simple_finish_header (header); - if (size) - nl = 1; - while (size > 0) - { - size_t len; - - header = find_next_block (); - len = BLOCKSIZE; - if (len > size) - len = size; - memset (header->buffer, 0, len); - if (first_block) - { - first_block = 0; - sprintf (header->buffer, "%d GNU.volume.eof=", size); - } - size -= len; - set_next_block_after (header); - } - if (nl) - header->buffer[BLOCKSIZE-1] = '\n'; -} - void xheader_write_global (void) { @@ -668,20 +619,6 @@ extended_header_init (void) } } -void -xheader_save (struct xheader *xhdr) -{ - *xhdr = extended_header; - memset (&extended_header, 0, sizeof extended_header); -} - -void -xheader_restore (struct xheader *xhdr) -{ - xheader_destroy (&extended_header); - extended_header = *xhdr; -} - void xheader_store (char const *keyword, struct tar_stat_info const *st, void const *data) @@ -1312,7 +1249,7 @@ sparse_map_decoder (struct tar_stat_info *st, char const *arg, else { ERROR ((0, 0, _("Malformed extended header: excess %s=%s"), - "GNU.sparse.numbytes", arg)); + keyword, arg)); return; } }