123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #ifndef __PHAR_TAR_H
- #define __PHAR_TAR_H
- /*
- +----------------------------------------------------------------------+
- | TAR archive support for Phar |
- +----------------------------------------------------------------------+
- | Copyright (c) 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: |
- | https://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 */
|