Annotation of embedaddon/php/ext/phar/tar.h, revision 1.1.1.3
1.1 misho 1: #ifndef __PHAR_TAR_H
2: #define __PHAR_TAR_H
3: /*
4: +----------------------------------------------------------------------+
5: | TAR archive support for Phar |
6: +----------------------------------------------------------------------+
1.1.1.3 ! misho 7: | Copyright (c) 2005-2014 The PHP Group |
1.1 misho 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>