ar.h (cb0dad38e4faf38d13b6b7406659555ff40ea83f) | ar.h (0c099281a3c52b1effd3bfb3775d62e2d8f64cf4) |
---|---|
1/*- 2 * Copyright (c) 2007 Kai Wang 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * 26 * $FreeBSD$ 27 */ 28 | 1/*- 2 * Copyright (c) 2007 Kai Wang 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * 26 * $FreeBSD$ 27 */ 28 |
29#define BSDAR_VERSION "1.0.2" | 29#define BSDAR_VERSION "1.1.0" |
30 31/* 32 * ar(1) options. 33 */ 34#define AR_A 0x0001 /* position-after */ 35#define AR_B 0x0002 /* position-before */ 36#define AR_C 0x0004 /* creating new archive */ 37#define AR_CC 0x0008 /* do not overwrite when extracting */ --- 11 unchanged lines hidden (view full) --- 49/* 50 * Convenient wrapper for general libarchive error handling. 51 */ 52#define AC(CALL) do { \ 53 if ((CALL)) \ 54 bsdar_errc(bsdar, EX_SOFTWARE, 0, "%s", \ 55 archive_error_string(a)); \ 56} while (0) | 30 31/* 32 * ar(1) options. 33 */ 34#define AR_A 0x0001 /* position-after */ 35#define AR_B 0x0002 /* position-before */ 36#define AR_C 0x0004 /* creating new archive */ 37#define AR_CC 0x0008 /* do not overwrite when extracting */ --- 11 unchanged lines hidden (view full) --- 49/* 50 * Convenient wrapper for general libarchive error handling. 51 */ 52#define AC(CALL) do { \ 53 if ((CALL)) \ 54 bsdar_errc(bsdar, EX_SOFTWARE, 0, "%s", \ 55 archive_error_string(a)); \ 56} while (0) |
57 | 57 |
58/* 59 * In-memory representation of archive member(object). 60 */ 61struct ar_obj { 62 char *name; /* member name */ 63 void *maddr; /* mmap start address */ 64 uid_t uid; /* user id */ 65 gid_t gid; /* group id */ 66 mode_t md; /* octal file permissions */ 67 size_t size; /* member size */ 68 time_t mtime; /* modification time */ 69 int fd; /* file descriptor */ 70 dev_t dev; /* inode's device */ 71 ino_t ino; /* inode's number */ 72 73 TAILQ_ENTRY(ar_obj) objs; 74}; 75 76/* | 58/* 59 * In-memory representation of archive member(object). 60 */ 61struct ar_obj { 62 char *name; /* member name */ 63 void *maddr; /* mmap start address */ 64 uid_t uid; /* user id */ 65 gid_t gid; /* group id */ 66 mode_t md; /* octal file permissions */ 67 size_t size; /* member size */ 68 time_t mtime; /* modification time */ 69 int fd; /* file descriptor */ 70 dev_t dev; /* inode's device */ 71 ino_t ino; /* inode's number */ 72 73 TAILQ_ENTRY(ar_obj) objs; 74}; 75 76/* |
77 * Structure encapsulates the "global" data for "ar" program. | 77 * Structure encapsulates the "global" data for "ar" program. |
78 */ 79struct bsdar { 80 const char *filename; /* archive name. */ | 78 */ 79struct bsdar { 80 const char *filename; /* archive name. */ |
81 const char *addlib; /* target of ADDLIB. */ |
|
81 const char *posarg; /* position arg for modifiers -a, -b. */ 82 char mode; /* program mode */ 83 char compression; /* compression mode */ 84 int options; /* command line options */ 85 86 const char *progname; /* program name */ 87 int argc; 88 char **argv; --- 26 unchanged lines hidden (view full) --- 115void ar_mode_d(struct bsdar *bsdar); 116void ar_mode_m(struct bsdar *bsdar); 117void ar_mode_p(struct bsdar *bsdar); 118void ar_mode_q(struct bsdar *bsdar); 119void ar_mode_r(struct bsdar *bsdar); 120void ar_mode_s(struct bsdar *bsdar); 121void ar_mode_t(struct bsdar *bsdar); 122void ar_mode_x(struct bsdar *bsdar); | 82 const char *posarg; /* position arg for modifiers -a, -b. */ 83 char mode; /* program mode */ 84 char compression; /* compression mode */ 85 int options; /* command line options */ 86 87 const char *progname; /* program name */ 88 int argc; 89 char **argv; --- 26 unchanged lines hidden (view full) --- 116void ar_mode_d(struct bsdar *bsdar); 117void ar_mode_m(struct bsdar *bsdar); 118void ar_mode_p(struct bsdar *bsdar); 119void ar_mode_q(struct bsdar *bsdar); 120void ar_mode_r(struct bsdar *bsdar); 121void ar_mode_s(struct bsdar *bsdar); 122void ar_mode_t(struct bsdar *bsdar); 123void ar_mode_x(struct bsdar *bsdar); |
124void ar_mode_A(struct bsdar *bsdar); 125void ar_mode_script(struct bsdar *ar); |
|