php-src/ext/phar/tar.h
Peter Kokot c245898bfa Update and fix remaining year ranges (2019)
This patch follows previous license year ranges updates. With new
approach source code files now have simplified headers with license
information without year ranges.
2019-02-08 23:14:29 +01:00

102 lines
3.9 KiB
C

#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: |
| 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 */