/src/CMake/Utilities/cmlibarchive/libarchive/archive_virtual.c
Line | Count | Source |
1 | | /*- |
2 | | * Copyright (c) 2003-2007 Tim Kientzle |
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 |
9 | | * notice, this list of conditions and the following disclaimer. |
10 | | * 2. Redistributions in binary form must reproduce the above copyright |
11 | | * notice, this list of conditions and the following disclaimer in the |
12 | | * documentation and/or other materials provided with the distribution. |
13 | | * |
14 | | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR |
15 | | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
16 | | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
17 | | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, |
18 | | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
19 | | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
20 | | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
21 | | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
22 | | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
23 | | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 | | */ |
25 | | |
26 | | #include "archive_platform.h" |
27 | | |
28 | | #include "archive.h" |
29 | | #include "archive_entry.h" |
30 | | #include "archive_private.h" |
31 | | |
32 | | int |
33 | | archive_filter_code(struct archive *a, int n) |
34 | 0 | { |
35 | 0 | return ((a->vtable->archive_filter_code)(a, n)); |
36 | 0 | } |
37 | | |
38 | | int |
39 | | archive_filter_count(struct archive *a) |
40 | 0 | { |
41 | 0 | return ((a->vtable->archive_filter_count)(a)); |
42 | 0 | } |
43 | | |
44 | | const char * |
45 | | archive_filter_name(struct archive *a, int n) |
46 | 0 | { |
47 | 0 | return ((a->vtable->archive_filter_name)(a, n)); |
48 | 0 | } |
49 | | |
50 | | la_int64_t |
51 | | archive_filter_bytes(struct archive *a, int n) |
52 | 72 | { |
53 | 72 | return ((a->vtable->archive_filter_bytes)(a, n)); |
54 | 72 | } |
55 | | |
56 | | int |
57 | | archive_free(struct archive *a) |
58 | 58.1k | { |
59 | 58.1k | if (a == NULL) |
60 | 0 | return (ARCHIVE_OK); |
61 | 58.1k | return ((a->vtable->archive_free)(a)); |
62 | 58.1k | } |
63 | | |
64 | | int |
65 | | archive_write_close(struct archive *a) |
66 | 0 | { |
67 | 0 | return ((a->vtable->archive_close)(a)); |
68 | 0 | } |
69 | | |
70 | | int |
71 | | archive_read_close(struct archive *a) |
72 | 29.0k | { |
73 | 29.0k | return ((a->vtable->archive_close)(a)); |
74 | 29.0k | } |
75 | | |
76 | | int |
77 | | archive_write_fail(struct archive *a) |
78 | 0 | { |
79 | 0 | a->state = ARCHIVE_STATE_FATAL; |
80 | 0 | return a->state; |
81 | 0 | } |
82 | | |
83 | | int |
84 | | archive_write_free(struct archive *a) |
85 | 29.0k | { |
86 | 29.0k | return archive_free(a); |
87 | 29.0k | } |
88 | | |
89 | | #if ARCHIVE_VERSION_NUMBER < 4000000 |
90 | | /* For backwards compatibility; will be removed with libarchive 4.0. */ |
91 | | int |
92 | | archive_write_finish(struct archive *a) |
93 | 0 | { |
94 | 0 | return archive_write_free(a); |
95 | 0 | } |
96 | | #endif |
97 | | |
98 | | int |
99 | | archive_read_free(struct archive *a) |
100 | 29.0k | { |
101 | 29.0k | return archive_free(a); |
102 | 29.0k | } |
103 | | |
104 | | #if ARCHIVE_VERSION_NUMBER < 4000000 |
105 | | /* For backwards compatibility; will be removed with libarchive 4.0. */ |
106 | | int |
107 | | archive_read_finish(struct archive *a) |
108 | 0 | { |
109 | 0 | return archive_read_free(a); |
110 | 0 | } |
111 | | #endif |
112 | | |
113 | | int |
114 | | archive_write_header(struct archive *a, struct archive_entry *entry) |
115 | 4.65k | { |
116 | 4.65k | ++a->file_count; |
117 | 4.65k | return ((a->vtable->archive_write_header)(a, entry)); |
118 | 4.65k | } |
119 | | |
120 | | int |
121 | | archive_write_finish_entry(struct archive *a) |
122 | 808 | { |
123 | 808 | return ((a->vtable->archive_write_finish_entry)(a)); |
124 | 808 | } |
125 | | |
126 | | la_ssize_t |
127 | | archive_write_data(struct archive *a, const void *buff, size_t s) |
128 | 0 | { |
129 | 0 | return ((a->vtable->archive_write_data)(a, buff, s)); |
130 | 0 | } |
131 | | |
132 | | la_ssize_t |
133 | | archive_write_data_block(struct archive *a, const void *buff, size_t s, |
134 | | la_int64_t o) |
135 | 1.29k | { |
136 | 1.29k | if (a->vtable->archive_write_data_block == NULL) { |
137 | 0 | archive_set_error(a, ARCHIVE_ERRNO_MISC, |
138 | 0 | "archive_write_data_block not supported"); |
139 | 0 | a->state = ARCHIVE_STATE_FATAL; |
140 | 0 | return (ARCHIVE_FATAL); |
141 | 0 | } |
142 | 1.29k | return ((a->vtable->archive_write_data_block)(a, buff, s, o)); |
143 | 1.29k | } |
144 | | |
145 | | int |
146 | | archive_read_next_header(struct archive *a, struct archive_entry **entry) |
147 | 11.7k | { |
148 | 11.7k | return ((a->vtable->archive_read_next_header)(a, entry)); |
149 | 11.7k | } |
150 | | |
151 | | int |
152 | | archive_read_next_header2(struct archive *a, struct archive_entry *entry) |
153 | 0 | { |
154 | 0 | return ((a->vtable->archive_read_next_header2)(a, entry)); |
155 | 0 | } |
156 | | |
157 | | int |
158 | | archive_read_data_block(struct archive *a, |
159 | | const void **buff, size_t *s, la_int64_t *o) |
160 | 5.57k | { |
161 | 5.57k | return ((a->vtable->archive_read_data_block)(a, buff, s, o)); |
162 | 5.57k | } |