]> Dogcows Code - chaz/tar/blobdiff - src/tar.h
(struct tar_stat_info.dumpdir): New member.
[chaz/tar] / src / tar.h
index 449a93882678861c3479e30b6e0b9a504560702a..8a01a71a31019630bf217d8abca478f660cddfc3 100644 (file)
--- a/src/tar.h
+++ b/src/tar.h
@@ -1,7 +1,7 @@
 /* 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
@@ -15,7 +15,7 @@
 
    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.  */
 
@@ -189,8 +189,11 @@ struct oldgnu_header
 /* 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 */
@@ -253,7 +256,9 @@ enum archive_format
   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.  */
@@ -268,24 +273,34 @@ struct tar_stat_info
   char *orig_file_name;     /* name of file read from the archive header */
   char *file_name;          /* name of file for the current archive entry
                               after being normalized.  */
-  int had_trailing_slash;   /* nonzero if the current archive entry had a
+  bool had_trailing_slash;  /* true if the current archive entry had a
                               trailing slash before it was normalized. */
   char *link_name;          /* name of link for the current archive entry.  */
 
-  unsigned int  devminor;   /* device minor number */
-  unsigned int  devmajor;   /* device major number */
   char          *uname;     /* user name of owner */
   char          *gname;     /* group name of owner */
   struct stat   stat;       /* regular filesystem stat */
 
+  /* STAT doesn't always have access, data modification, and status
+     change times in a convenient form, so store them separately.  */
+  struct timespec atime;
+  struct timespec mtime;
+  struct timespec ctime;
+
   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 */
+
+  /* For sparse files: */
   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;
+
+  /* For dumpdirs */
+  char *dumpdir;
 };
 
 union block
This page took 0.025855 seconds and 4 git commands to generate.