text: #ifndef __PHAR_TAR_H
  #define __PHAR_TAR_H
  /*
    +----------------------------------------------------------------------+
    | TAR archive support for Phar                                         |
    +----------------------------------------------------------------------+
    | Copyright (c) 2005-2018 The PHP Group                                |
    +----------------------------------------------------------------------+
    | This source file is subject to version 3.01 of the PHP license,      |
    | that is bundled with this package in the file LICENSE, and is        |
    | available through the world-wide-web at the following url:           |
    | http://www.php.net/license/3_01.txt.                                 |
    | If you did not receive a copy of the PHP license and are unable to   |
    | obtain it through the world-wide-web, please send a note to          |
    | license@php.net so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
    | Authors: Dmitry Stogov <dmitry@php.net>                              |
    |          Gregory Beaver <cellog@php.net>                             |
    +----------------------------------------------------------------------+
  */
  
  #ifdef PHP_WIN32
  #pragma pack(1)
  # define PHAR_TAR_PACK
  #elif defined(__sgi)
  # define PHAR_TAR_PACK
  #elif defined(__GNUC__)
  # define PHAR_TAR_PACK __attribute__((__packed__))
  #else
  # define PHAR_TAR_PACK
  #endif
  
  #if defined(__sgi)
  # pragma pack 0
  #endif
  /**
   * the format of the header block for a file, in the older UNIX-compatible
   * TAR format
   */
  typedef struct _old_tar_header {  /* {{{ */
  	char name[100];     /* name of file;
  	                         directory is indicated by a trailing slash (/) */
  	char mode[8];       /* file mode */
  	char uid[8];        /* owner user ID */
  	char gid[8];        /* owner group ID */
  	char size[12];      /* length of file in bytes */
  	char mtime[12];     /* modify time of file */
  	char checksum[8];   /* checksum for header */
  	char link;          /* indicator for links;
  	                         1 for a linked file,
  	                         2 for a symbolic link,
  	                         0 otherwise */
  	char linkname[100]; /* name of linked file */
  } PHAR_TAR_PACK old_tar_header;
  /* }}} */
  
  #if defined(__sgi)
  # pragma pack 0
  #endif
  /**
   * the new USTAR header format.
   * Note that tar can determine that the USTAR format is being used by the
   * presence of the null-terminated string "ustar" in the magic field.
   */
  typedef struct _tar_header {  /* {{{ */
  	char name[100];     /* name of file */
  	char mode[8];       /* file mode   */
  	char uid[8];        /* owner user ID */
  	char gid[8];        /* owner group ID */
  	char size[12];      /* length of file in bytes */
  	char mtime[12];     /* modify time of file */
  	char checksum[8];   /* checksum for header */
  	char typeflag;      /* type of file
  	                         0 Regular file
  	                         1 Link to another file already archived
  	                         2 Symbolic link
  	                         3 Character special device
  	                         4 Block special device
  	                         5 Directory
  	                         6 FIFO special file
  	                         7 Reserved */
  	char linkname[100]; /* name of linked file */
  	char magic[6];      /* USTAR indicator */
  	char version[2];    /* USTAR version */
  	char uname[32];     /* owner user name */
  	char gname[32];     /* owner group name */
  	char devmajor[8];   /* device major number */
  	char devminor[8];   /* device minor number */
  	char prefix[155];   /* prefix for file name;
  	                       the value of the prefix field, if non-null,
  	                       is prefixed to the name field to allow names
  	                       longer then 100 characters */
  	char padding[12];   /* unused zeroed bytes */
  } PHAR_TAR_PACK tar_header;
  /* }}} */
  
  #ifdef PHP_WIN32
  #pragma pack()
  #endif
  
  #endif /* __PHAR_TAR_H */
  