Annotation of embedaddon/php/ext/phar/tar.h, revision 1.1

1.1     ! misho       1: #ifndef __PHAR_TAR_H
        !             2: #define __PHAR_TAR_H
        !             3: /*
        !             4:   +----------------------------------------------------------------------+
        !             5:   | TAR archive support for Phar                                         |
        !             6:   +----------------------------------------------------------------------+
        !             7:   | Copyright (c) 2005-2012 The PHP Group                                |
        !             8:   +----------------------------------------------------------------------+
        !             9:   | This source file is subject to version 3.01 of the PHP license,      |
        !            10:   | that is bundled with this package in the file LICENSE, and is        |
        !            11:   | available through the world-wide-web at the following url:           |
        !            12:   | http://www.php.net/license/3_01.txt.                                 |
        !            13:   | If you did not receive a copy of the PHP license and are unable to   |
        !            14:   | obtain it through the world-wide-web, please send a note to          |
        !            15:   | license@php.net so we can mail you a copy immediately.               |
        !            16:   +----------------------------------------------------------------------+
        !            17:   | Authors: Dmitry Stogov <dmitry@zend.com>                             |
        !            18:   |          Gregory Beaver <cellog@php.net>                             |
        !            19:   +----------------------------------------------------------------------+
        !            20: */
        !            21: 
        !            22: #ifdef PHP_WIN32
        !            23: #pragma pack(1)
        !            24: # define PHAR_TAR_PACK
        !            25: #elif defined(__sgi)
        !            26: # define PHAR_TAR_PACK
        !            27: #elif defined(__GNUC__)
        !            28: # define PHAR_TAR_PACK __attribute__((__packed__))
        !            29: #else
        !            30: # define PHAR_TAR_PACK
        !            31: #endif
        !            32: 
        !            33: #if defined(__sgi)
        !            34: # pragma pack 0
        !            35: #endif
        !            36: /**
        !            37:  * the format of the header block for a file, in the older UNIX-compatible
        !            38:  * TAR format
        !            39:  */
        !            40: typedef struct _old_tar_header {  /* {{{ */
        !            41:        char name[100];     /* name of file;
        !            42:                                 directory is indicated by a trailing slash (/) */
        !            43:        char mode[8];       /* file mode */
        !            44:        char uid[8];        /* owner user ID */
        !            45:        char gid[8];        /* owner group ID */
        !            46:        char size[12];      /* length of file in bytes */
        !            47:        char mtime[12];     /* modify time of file */
        !            48:        char checksum[8];   /* checksum for header */
        !            49:        char link;          /* indicator for links;
        !            50:                                 1 for a linked file,
        !            51:                                 2 for a symbolic link,
        !            52:                                 0 otherwise */
        !            53:        char linkname[100]; /* name of linked file */
        !            54: } PHAR_TAR_PACK old_tar_header;
        !            55: /* }}} */
        !            56: 
        !            57: #if defined(__sgi)
        !            58: # pragma pack 0
        !            59: #endif
        !            60: /**
        !            61:  * the new USTAR header format.
        !            62:  * Note that tar can determine that the USTAR format is being used by the
        !            63:  * presence of the null-terminated string "ustar" in the magic field.
        !            64:  */
        !            65: typedef struct _tar_header {  /* {{{ */
        !            66:        char name[100];     /* name of file */
        !            67:        char mode[8];       /* file mode   */
        !            68:        char uid[8];        /* owner user ID */
        !            69:        char gid[8];        /* owner group ID */
        !            70:        char size[12];      /* length of file in bytes */
        !            71:        char mtime[12];     /* modify time of file */
        !            72:        char checksum[8];   /* checksum for header */
        !            73:        char typeflag;      /* type of file
        !            74:                                 0 Regular file
        !            75:                                 1 Link to another file already archived
        !            76:                                 2 Symbolic link
        !            77:                                 3 Character special device
        !            78:                                 4 Block special device
        !            79:                                 5 Directory
        !            80:                                 6 FIFO special file
        !            81:                                 7 Reserved */
        !            82:        char linkname[100]; /* name of linked file */
        !            83:        char magic[6];      /* USTAR indicator */
        !            84:        char version[2];    /* USTAR version */
        !            85:        char uname[32];     /* owner user name */
        !            86:        char gname[32];     /* owner group name */
        !            87:        char devmajor[8];   /* device major number */
        !            88:        char devminor[8];   /* device minor number */
        !            89:        char prefix[155];   /* prefix for file name;
        !            90:                               the value of the prefix field, if non-null,
        !            91:                               is prefixed to the name field to allow names
        !            92:                               longer then 100 characters */
        !            93:        char padding[12];   /* unused zeroed bytes */
        !            94: } PHAR_TAR_PACK tar_header;
        !            95: /* }}} */
        !            96: 
        !            97: #ifdef PHP_WIN32
        !            98: #pragma pack()
        !            99: #endif
        !           100: 
        !           101: #endif /* __PHAR_TAR_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>