/* GNU tar Archive Format description.
Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
- 2000, 2001, 2003 Free Software Foundation, Inc.
+ 2000, 2001, 2003, 2004, 2005 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
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/* tar Header Block, from POSIX 1003.1-1990. */
/* This file is a tape/volume header. Ignore it on extraction. */
#define GNUTYPE_VOLHDR 'V'
+/* Solaris extended header */
+#define SOLARIS_XHDTYPE 'X'
+
\f
-/* Jörg Schilling star header */
+/* Jörg Schilling star header */
struct star_header
{ /* byte offset */
USTAR_FORMAT, /* POSIX.1-1988 (ustar) format */
POSIX_FORMAT, /* POSIX.1-2001 format */
STAR_FORMAT, /* Star format defined in 1994 */
- GNU_FORMAT /* POSIX format with GNU extensions */
+ GNU_FORMAT /* Same as OLDGNU_FORMAT with one exception:
+ see FIXME note for to_chars() function
+ (create.c:189) */
};
/* Information about a sparse file. */
unsigned long atime_nsec;
unsigned long mtime_nsec;
unsigned long ctime_nsec;
-
+
off_t archive_file_size; /* Size of file as stored in the archive.
Equals stat.st_size for non-sparse files */
+ bool is_sparse; /* Is the file sparse */
+
size_t sparse_map_avail; /* Index to the first unused element in
sparse_map array. Zero if the file is
not sparse */
size_t sparse_map_size; /* Size of the sparse map */
- struct sp_array *sparse_map;
+ struct sp_array *sparse_map;
};
union block