diff options
Diffstat (limited to 'archival')
-rw-r--r-- | archival/gzip.c | 14 | ||||
-rw-r--r-- | archival/rpm.c | 43 |
2 files changed, 23 insertions, 34 deletions
diff --git a/archival/gzip.c b/archival/gzip.c index 0962a00a7..37fefbf6a 100644 --- a/archival/gzip.c +++ b/archival/gzip.c | |||
@@ -263,15 +263,14 @@ DECLARE(ush, tab_prefix, 1L << BITS); | |||
263 | static int foreground; /* set if program run in foreground */ | 263 | static int foreground; /* set if program run in foreground */ |
264 | static int method = DEFLATED; /* compression method */ | 264 | static int method = DEFLATED; /* compression method */ |
265 | static int exit_code = OK; /* program exit code */ | 265 | static int exit_code = OK; /* program exit code */ |
266 | static int part_nb; /* number of parts in .gz file */ | ||
267 | static long time_stamp; /* original time stamp (modification time) */ | 266 | static long time_stamp; /* original time stamp (modification time) */ |
268 | static long ifile_size; /* input file size, -1 for devices (debug only) */ | ||
269 | static char z_suffix[MAX_SUFFIX + 1]; /* default suffix (can be set with --suffix) */ | 267 | static char z_suffix[MAX_SUFFIX + 1]; /* default suffix (can be set with --suffix) */ |
270 | static int z_len; /* strlen(z_suffix) */ | ||
271 | 268 | ||
272 | static int ifd; /* input file descriptor */ | 269 | static int ifd; /* input file descriptor */ |
273 | static int ofd; /* output file descriptor */ | 270 | static int ofd; /* output file descriptor */ |
271 | #ifdef DEBUG | ||
274 | static unsigned insize; /* valid bytes in inbuf */ | 272 | static unsigned insize; /* valid bytes in inbuf */ |
273 | #endif | ||
275 | static unsigned outcnt; /* bytes in output buffer */ | 274 | static unsigned outcnt; /* bytes in output buffer */ |
276 | 275 | ||
277 | static uint32_t *crc_32_tab; | 276 | static uint32_t *crc_32_tab; |
@@ -302,7 +301,9 @@ static void abort_gzip(int ATTRIBUTE_UNUSED ignored) | |||
302 | static void clear_bufs(void) | 301 | static void clear_bufs(void) |
303 | { | 302 | { |
304 | outcnt = 0; | 303 | outcnt = 0; |
304 | #ifdef DEBUG | ||
305 | insize = 0; | 305 | insize = 0; |
306 | #endif | ||
306 | bytes_in = 0L; | 307 | bytes_in = 0L; |
307 | } | 308 | } |
308 | 309 | ||
@@ -1177,7 +1178,6 @@ int gzip_main(int argc, char **argv) | |||
1177 | #endif | 1178 | #endif |
1178 | 1179 | ||
1179 | strncpy(z_suffix, Z_SUFFIX, sizeof(z_suffix) - 1); | 1180 | strncpy(z_suffix, Z_SUFFIX, sizeof(z_suffix) - 1); |
1180 | z_len = strlen(z_suffix); | ||
1181 | 1181 | ||
1182 | /* Allocate all global buffers (for DYN_ALLOC option) */ | 1182 | /* Allocate all global buffers (for DYN_ALLOC option) */ |
1183 | ALLOC(uch, inbuf, INBUFSIZ + INBUF_EXTRA); | 1183 | ALLOC(uch, inbuf, INBUFSIZ + INBUF_EXTRA); |
@@ -1188,13 +1188,11 @@ int gzip_main(int argc, char **argv) | |||
1188 | 1188 | ||
1189 | /* Initialise the CRC32 table */ | 1189 | /* Initialise the CRC32 table */ |
1190 | crc_32_tab = crc32_filltable(0); | 1190 | crc_32_tab = crc32_filltable(0); |
1191 | 1191 | ||
1192 | clear_bufs(); | 1192 | clear_bufs(); |
1193 | part_nb = 0; | ||
1194 | 1193 | ||
1195 | if (optind == argc) { | 1194 | if (optind == argc) { |
1196 | time_stamp = 0; | 1195 | time_stamp = 0; |
1197 | ifile_size = -1L; | ||
1198 | zip(STDIN_FILENO, STDOUT_FILENO); | 1196 | zip(STDIN_FILENO, STDOUT_FILENO); |
1199 | } else { | 1197 | } else { |
1200 | int i; | 1198 | int i; |
@@ -1205,7 +1203,6 @@ int gzip_main(int argc, char **argv) | |||
1205 | clear_bufs(); | 1203 | clear_bufs(); |
1206 | if (strcmp(argv[i], "-") == 0) { | 1204 | if (strcmp(argv[i], "-") == 0) { |
1207 | time_stamp = 0; | 1205 | time_stamp = 0; |
1208 | ifile_size = -1L; | ||
1209 | inFileNum = STDIN_FILENO; | 1206 | inFileNum = STDIN_FILENO; |
1210 | outFileNum = STDOUT_FILENO; | 1207 | outFileNum = STDOUT_FILENO; |
1211 | } else { | 1208 | } else { |
@@ -1213,7 +1210,6 @@ int gzip_main(int argc, char **argv) | |||
1213 | if (fstat(inFileNum, &statBuf) < 0) | 1210 | if (fstat(inFileNum, &statBuf) < 0) |
1214 | bb_perror_msg_and_die("%s", argv[i]); | 1211 | bb_perror_msg_and_die("%s", argv[i]); |
1215 | time_stamp = statBuf.st_ctime; | 1212 | time_stamp = statBuf.st_ctime; |
1216 | ifile_size = statBuf.st_size; | ||
1217 | 1213 | ||
1218 | if (!tostdout) { | 1214 | if (!tostdout) { |
1219 | path = xmalloc(strlen(argv[i]) + 4); | 1215 | path = xmalloc(strlen(argv[i]) + 4); |
diff --git a/archival/rpm.c b/archival/rpm.c index 7b27c0250..d399e0ea2 100644 --- a/archival/rpm.c +++ b/archival/rpm.c | |||
@@ -70,17 +70,15 @@ static void *map; | |||
70 | static rpm_index **mytags; | 70 | static rpm_index **mytags; |
71 | static int tagcount; | 71 | static int tagcount; |
72 | 72 | ||
73 | void extract_cpio_gz(int fd); | 73 | static void extract_cpio_gz(int fd); |
74 | rpm_index **rpm_gettags(int fd, int *num_tags); | 74 | static rpm_index **rpm_gettags(int fd, int *num_tags); |
75 | int bsearch_rpmtag(const void *key, const void *item); | 75 | static int bsearch_rpmtag(const void *key, const void *item); |
76 | char *rpm_getstring(int tag, int itemindex); | 76 | static char *rpm_getstring(int tag, int itemindex); |
77 | int rpm_getint(int tag, int itemindex); | 77 | static int rpm_getint(int tag, int itemindex); |
78 | int rpm_getcount(int tag); | 78 | static int rpm_getcount(int tag); |
79 | void exec_script(int progtag, int datatag, char *prefix); | 79 | static void fileaction_dobackup(char *filename, int fileref); |
80 | void fileaction_dobackup(char *filename, int fileref); | 80 | static void fileaction_setowngrp(char *filename, int fileref); |
81 | void fileaction_setowngrp(char *filename, int fileref); | 81 | static void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)); |
82 | void fileaction_list(char *filename, int itemno); | ||
83 | void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)); | ||
84 | 82 | ||
85 | int rpm_main(int argc, char **argv) | 83 | int rpm_main(int argc, char **argv) |
86 | { | 84 | { |
@@ -169,7 +167,7 @@ int rpm_main(int argc, char **argv) | |||
169 | return 0; | 167 | return 0; |
170 | } | 168 | } |
171 | 169 | ||
172 | void extract_cpio_gz(int fd) { | 170 | static void extract_cpio_gz(int fd) { |
173 | archive_handle_t *archive_handle; | 171 | archive_handle_t *archive_handle; |
174 | unsigned char magic[2]; | 172 | unsigned char magic[2]; |
175 | 173 | ||
@@ -196,7 +194,7 @@ void extract_cpio_gz(int fd) { | |||
196 | } | 194 | } |
197 | 195 | ||
198 | 196 | ||
199 | rpm_index **rpm_gettags(int fd, int *num_tags) | 197 | static rpm_index **rpm_gettags(int fd, int *num_tags) |
200 | { | 198 | { |
201 | rpm_index **tags = xzalloc(200 * sizeof(struct rpmtag *)); /* We should never need mode than 200, and realloc later */ | 199 | rpm_index **tags = xzalloc(200 * sizeof(struct rpmtag *)); /* We should never need mode than 200, and realloc later */ |
202 | int pass, tagindex = 0; | 200 | int pass, tagindex = 0; |
@@ -235,14 +233,14 @@ rpm_index **rpm_gettags(int fd, int *num_tags) | |||
235 | return tags; /* All done, leave the file at the start of the gzipped cpio archive */ | 233 | return tags; /* All done, leave the file at the start of the gzipped cpio archive */ |
236 | } | 234 | } |
237 | 235 | ||
238 | int bsearch_rpmtag(const void *key, const void *item) | 236 | static int bsearch_rpmtag(const void *key, const void *item) |
239 | { | 237 | { |
240 | int *tag = (int *)key; | 238 | int *tag = (int *)key; |
241 | rpm_index **tmp = (rpm_index **) item; | 239 | rpm_index **tmp = (rpm_index **) item; |
242 | return (*tag - tmp[0]->tag); | 240 | return (*tag - tmp[0]->tag); |
243 | } | 241 | } |
244 | 242 | ||
245 | int rpm_getcount(int tag) | 243 | static int rpm_getcount(int tag) |
246 | { | 244 | { |
247 | rpm_index **found; | 245 | rpm_index **found; |
248 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); | 246 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); |
@@ -250,7 +248,7 @@ int rpm_getcount(int tag) | |||
250 | else return found[0]->count; | 248 | else return found[0]->count; |
251 | } | 249 | } |
252 | 250 | ||
253 | char *rpm_getstring(int tag, int itemindex) | 251 | static char *rpm_getstring(int tag, int itemindex) |
254 | { | 252 | { |
255 | rpm_index **found; | 253 | rpm_index **found; |
256 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); | 254 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); |
@@ -263,7 +261,7 @@ char *rpm_getstring(int tag, int itemindex) | |||
263 | } else return NULL; | 261 | } else return NULL; |
264 | } | 262 | } |
265 | 263 | ||
266 | int rpm_getint(int tag, int itemindex) | 264 | static int rpm_getint(int tag, int itemindex) |
267 | { | 265 | { |
268 | rpm_index **found; | 266 | rpm_index **found; |
269 | int n, *tmpint; | 267 | int n, *tmpint; |
@@ -284,7 +282,7 @@ int rpm_getint(int tag, int itemindex) | |||
284 | } else return -1; | 282 | } else return -1; |
285 | } | 283 | } |
286 | 284 | ||
287 | void fileaction_dobackup(char *filename, int fileref) | 285 | static void fileaction_dobackup(char *filename, int fileref) |
288 | { | 286 | { |
289 | struct stat oldfile; | 287 | struct stat oldfile; |
290 | int stat_res; | 288 | int stat_res; |
@@ -301,7 +299,7 @@ void fileaction_dobackup(char *filename, int fileref) | |||
301 | } | 299 | } |
302 | } | 300 | } |
303 | 301 | ||
304 | void fileaction_setowngrp(char *filename, int fileref) | 302 | static void fileaction_setowngrp(char *filename, int fileref) |
305 | { | 303 | { |
306 | int uid, gid; | 304 | int uid, gid; |
307 | uid = bb_xgetpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); | 305 | uid = bb_xgetpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); |
@@ -309,12 +307,7 @@ void fileaction_setowngrp(char *filename, int fileref) | |||
309 | chown (filename, uid, gid); | 307 | chown (filename, uid, gid); |
310 | } | 308 | } |
311 | 309 | ||
312 | void fileaction_list(char *filename, int ATTRIBUTE_UNUSED fileref) | 310 | static void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)) |
313 | { | ||
314 | printf("%s\n", filename); | ||
315 | } | ||
316 | |||
317 | void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)) | ||
318 | { | 311 | { |
319 | int count = 0; | 312 | int count = 0; |
320 | while (rpm_getstring(filetag, count)) { | 313 | while (rpm_getstring(filetag, count)) { |