diff options
| author | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2002-12-08 00:54:33 +0000 |
|---|---|---|
| committer | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2002-12-08 00:54:33 +0000 |
| commit | cf8bf5cd0fc134b9b61e1fa2ffeb4d7aba31af77 (patch) | |
| tree | f7e34d157460ad689c350071a25d19cdd51e1ebb | |
| parent | 582df5509027f8cef2b76d3da3c105bb8af2b236 (diff) | |
| download | busybox-w32-cf8bf5cd0fc134b9b61e1fa2ffeb4d7aba31af77.tar.gz busybox-w32-cf8bf5cd0fc134b9b61e1fa2ffeb4d7aba31af77.tar.bz2 busybox-w32-cf8bf5cd0fc134b9b61e1fa2ffeb4d7aba31af77.zip | |
Move add_to_list from libunarchive to libbb so it can be of more general use (eg ifupdown). Changed the name to llist_add_to as i plan on adding more llist_ functions as needed (e.g. llist_free).
git-svn-id: svn://busybox.net/trunk/busybox@6132 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -rw-r--r-- | archival/ar.c | 2 | ||||
| -rw-r--r-- | archival/cpio.c | 2 | ||||
| -rw-r--r-- | archival/dpkg.c | 14 | ||||
| -rw-r--r-- | archival/dpkg_deb.c | 12 | ||||
| -rw-r--r-- | archival/libunarchive/Makefile.in | 1 | ||||
| -rw-r--r-- | archival/libunarchive/get_header_tar.c | 2 | ||||
| -rw-r--r-- | archival/tar.c | 6 | ||||
| -rw-r--r-- | archival/unzip.c | 2 | ||||
| -rw-r--r-- | include/libbb.h | 6 | ||||
| -rw-r--r-- | include/unarchive.h | 14 | ||||
| -rw-r--r-- | libbb/Makefile.in | 2 | ||||
| -rw-r--r-- | libbb/llist_add_to.c (renamed from archival/libunarchive/add_to_list.c) | 2 |
12 files changed, 32 insertions, 33 deletions
diff --git a/archival/ar.c b/archival/ar.c index 71cde4ebe..87968f7be 100644 --- a/archival/ar.c +++ b/archival/ar.c | |||
| @@ -124,7 +124,7 @@ extern int ar_main(int argc, char **argv) | |||
| 124 | /* TODO: This is the same as in tar, seperate function ? */ | 124 | /* TODO: This is the same as in tar, seperate function ? */ |
| 125 | while (optind < argc) { | 125 | while (optind < argc) { |
| 126 | archive_handle->filter = filter_accept_list; | 126 | archive_handle->filter = filter_accept_list; |
| 127 | archive_handle->accept = add_to_list(archive_handle->accept, argv[optind]); | 127 | archive_handle->accept = llist_add_to(archive_handle->accept, argv[optind]); |
| 128 | optind++; | 128 | optind++; |
| 129 | } | 129 | } |
| 130 | 130 | ||
diff --git a/archival/cpio.c b/archival/cpio.c index 2aa11943e..8b4cc2d3e 100644 --- a/archival/cpio.c +++ b/archival/cpio.c | |||
| @@ -79,7 +79,7 @@ extern int cpio_main(int argc, char **argv) | |||
| 79 | 79 | ||
| 80 | while (optind < argc) { | 80 | while (optind < argc) { |
| 81 | archive_handle->filter = filter_accept_list; | 81 | archive_handle->filter = filter_accept_list; |
| 82 | archive_handle->accept = add_to_list(archive_handle->accept, argv[optind]); | 82 | archive_handle->accept = llist_add_to(archive_handle->accept, argv[optind]); |
| 83 | optind++; | 83 | optind++; |
| 84 | } | 84 | } |
| 85 | 85 | ||
diff --git a/archival/dpkg.c b/archival/dpkg.c index 274d711dc..d3e652bc8 100644 --- a/archival/dpkg.c +++ b/archival/dpkg.c | |||
| @@ -1330,10 +1330,10 @@ static void init_archive_deb_control(archive_handle_t *ar_handle) | |||
| 1330 | 1330 | ||
| 1331 | /* We dont care about data.tar.* or debian-binary, just control.tar.* */ | 1331 | /* We dont care about data.tar.* or debian-binary, just control.tar.* */ |
| 1332 | #ifdef CONFIG_FEATURE_DEB_TAR_GZ | 1332 | #ifdef CONFIG_FEATURE_DEB_TAR_GZ |
| 1333 | ar_handle->accept = add_to_list(NULL, "control.tar.gz"); | 1333 | ar_handle->accept = llist_add_to(NULL, "control.tar.gz"); |
| 1334 | #endif | 1334 | #endif |
| 1335 | #ifdef CONFIG_FEATURE_DEB_TAR_BZ2 | 1335 | #ifdef CONFIG_FEATURE_DEB_TAR_BZ2 |
| 1336 | ar_handle->accept = add_to_list(ar_handle->accept, "control.tar.bz2"); | 1336 | ar_handle->accept = llist_add_to(ar_handle->accept, "control.tar.bz2"); |
| 1337 | #endif | 1337 | #endif |
| 1338 | 1338 | ||
| 1339 | /* Assign the tar handle as a subarchive of the ar handle */ | 1339 | /* Assign the tar handle as a subarchive of the ar handle */ |
| @@ -1353,10 +1353,10 @@ static void init_archive_deb_data(archive_handle_t *ar_handle) | |||
| 1353 | 1353 | ||
| 1354 | /* We dont care about data.tar.* or debian-binary, just control.tar.* */ | 1354 | /* We dont care about data.tar.* or debian-binary, just control.tar.* */ |
| 1355 | #ifdef CONFIG_FEATURE_DEB_TAR_GZ | 1355 | #ifdef CONFIG_FEATURE_DEB_TAR_GZ |
| 1356 | tar_handle->accept = add_to_list(NULL, "data.tar.gz"); | 1356 | tar_handle->accept = llist_add_to(NULL, "data.tar.gz"); |
| 1357 | #endif | 1357 | #endif |
| 1358 | #ifdef CONFIG_FEATURE_DEB_TAR_BZ2 | 1358 | #ifdef CONFIG_FEATURE_DEB_TAR_BZ2 |
| 1359 | tar_handle->accept = add_to_list(ar_handle->accept, "data.tar.bz2"); | 1359 | tar_handle->accept = llist_add_to(ar_handle->accept, "data.tar.bz2"); |
| 1360 | #endif | 1360 | #endif |
| 1361 | 1361 | ||
| 1362 | /* Assign the tar handle as a subarchive of the ar handle */ | 1362 | /* Assign the tar handle as a subarchive of the ar handle */ |
| @@ -1365,7 +1365,7 @@ static void init_archive_deb_data(archive_handle_t *ar_handle) | |||
| 1365 | return; | 1365 | return; |
| 1366 | } | 1366 | } |
| 1367 | 1367 | ||
| 1368 | static char *deb_extract_control_file_to_buffer(archive_handle_t *ar_handle, const llist_t *accept) | 1368 | static char *deb_extract_control_file_to_buffer(archive_handle_t *ar_handle, llist_t *accept) |
| 1369 | { | 1369 | { |
| 1370 | ar_handle->sub_archive->action_data = data_extract_to_buffer; | 1370 | ar_handle->sub_archive->action_data = data_extract_to_buffer; |
| 1371 | ar_handle->sub_archive->accept = accept; | 1371 | ar_handle->sub_archive->accept = accept; |
| @@ -1532,10 +1532,10 @@ int dpkg_main(int argc, char **argv) | |||
| 1532 | deb_file[deb_count] = (deb_file_t *) xmalloc(sizeof(deb_file_t)); | 1532 | deb_file[deb_count] = (deb_file_t *) xmalloc(sizeof(deb_file_t)); |
| 1533 | if (dpkg_opt & dpkg_opt_filename) { | 1533 | if (dpkg_opt & dpkg_opt_filename) { |
| 1534 | archive_handle_t *archive_handle; | 1534 | archive_handle_t *archive_handle; |
| 1535 | const llist_t *control_list = NULL; | 1535 | llist_t *control_list = NULL; |
| 1536 | 1536 | ||
| 1537 | /* Extract the control file */ | 1537 | /* Extract the control file */ |
| 1538 | control_list = add_to_list(NULL, "./control"); | 1538 | control_list = llist_add_to(NULL, "./control"); |
| 1539 | archive_handle = init_archive_deb_ar(argv[optind]); | 1539 | archive_handle = init_archive_deb_ar(argv[optind]); |
| 1540 | init_archive_deb_control(archive_handle); | 1540 | init_archive_deb_control(archive_handle); |
| 1541 | deb_file[deb_count]->control_file = deb_extract_control_file_to_buffer(archive_handle, control_list); | 1541 | deb_file[deb_count]->control_file = deb_extract_control_file_to_buffer(archive_handle, control_list); |
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c index 7ce637e5e..2c338227c 100644 --- a/archival/dpkg_deb.c +++ b/archival/dpkg_deb.c | |||
| @@ -27,7 +27,7 @@ extern int dpkg_deb_main(int argc, char **argv) | |||
| 27 | archive_handle_t *tar_archive; | 27 | archive_handle_t *tar_archive; |
| 28 | int opt = 0; | 28 | int opt = 0; |
| 29 | #ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY | 29 | #ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY |
| 30 | const llist_t *control_tar_llist = NULL; | 30 | llist_t *control_tar_llist = NULL; |
| 31 | #endif | 31 | #endif |
| 32 | 32 | ||
| 33 | /* Setup the tar archive handle */ | 33 | /* Setup the tar archive handle */ |
| @@ -39,16 +39,16 @@ extern int dpkg_deb_main(int argc, char **argv) | |||
| 39 | ar_archive->filter = filter_accept_list_reassign; | 39 | ar_archive->filter = filter_accept_list_reassign; |
| 40 | 40 | ||
| 41 | #ifdef CONFIG_FEATURE_DEB_TAR_GZ | 41 | #ifdef CONFIG_FEATURE_DEB_TAR_GZ |
| 42 | ar_archive->accept = add_to_list(NULL, "data.tar.gz"); | 42 | ar_archive->accept = llist_add_to(NULL, "data.tar.gz"); |
| 43 | # ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY | 43 | # ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY |
| 44 | control_tar_llist = add_to_list(NULL, "control.tar.gz"); | 44 | control_tar_llist = llist_add_to(NULL, "control.tar.gz"); |
| 45 | # endif | 45 | # endif |
| 46 | #endif | 46 | #endif |
| 47 | 47 | ||
| 48 | #ifdef CONFIG_FEATURE_DEB_TAR_BZ2 | 48 | #ifdef CONFIG_FEATURE_DEB_TAR_BZ2 |
| 49 | ar_archive->accept = add_to_list(ar_archive->accept, "data.tar.bz2"); | 49 | ar_archive->accept = llist_add_to(ar_archive->accept, "data.tar.bz2"); |
| 50 | # ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY | 50 | # ifndef CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY |
| 51 | control_tar_llist = add_to_list(control_tar_llist, "control.tar.bz2"); | 51 | control_tar_llist = llist_add_to(control_tar_llist, "control.tar.bz2"); |
| 52 | # endif | 52 | # endif |
| 53 | #endif | 53 | #endif |
| 54 | 54 | ||
| @@ -71,7 +71,7 @@ extern int dpkg_deb_main(int argc, char **argv) | |||
| 71 | * it should accept a second argument which specifies a | 71 | * it should accept a second argument which specifies a |
| 72 | * specific field to print */ | 72 | * specific field to print */ |
| 73 | ar_archive->accept = control_tar_llist; | 73 | ar_archive->accept = control_tar_llist; |
| 74 | tar_archive->accept = add_to_list(NULL, "./control");; | 74 | tar_archive->accept = llist_add_to(NULL, "./control");; |
| 75 | tar_archive->filter = filter_accept_list; | 75 | tar_archive->filter = filter_accept_list; |
| 76 | tar_archive->action_data = data_extract_to_stdout; | 76 | tar_archive->action_data = data_extract_to_stdout; |
| 77 | break; | 77 | break; |
diff --git a/archival/libunarchive/Makefile.in b/archival/libunarchive/Makefile.in index 5675d092f..28e2955b9 100644 --- a/archival/libunarchive/Makefile.in +++ b/archival/libunarchive/Makefile.in | |||
| @@ -53,7 +53,6 @@ LIBUNARCHIVE-y:= \ | |||
| 53 | \ | 53 | \ |
| 54 | archive_copy_file.o \ | 54 | archive_copy_file.o \ |
| 55 | \ | 55 | \ |
| 56 | add_to_list.o \ | ||
| 57 | check_header_gzip.o \ | 56 | check_header_gzip.o \ |
| 58 | check_trailer_gzip.o \ | 57 | check_trailer_gzip.o \ |
| 59 | data_align.o \ | 58 | data_align.o \ |
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c index 37e33d4c3..5fed7c1bf 100644 --- a/archival/libunarchive/get_header_tar.c +++ b/archival/libunarchive/get_header_tar.c | |||
| @@ -171,7 +171,7 @@ extern char get_header_tar(archive_handle_t *archive_handle) | |||
| 171 | archive_handle->action_header(archive_handle->file_header); | 171 | archive_handle->action_header(archive_handle->file_header); |
| 172 | archive_handle->flags |= ARCHIVE_EXTRACT_QUIET; | 172 | archive_handle->flags |= ARCHIVE_EXTRACT_QUIET; |
| 173 | archive_handle->action_data(archive_handle); | 173 | archive_handle->action_data(archive_handle); |
| 174 | archive_handle->passed = add_to_list(archive_handle->passed, archive_handle->file_header->name); | 174 | archive_handle->passed = llist_add_to(archive_handle->passed, archive_handle->file_header->name); |
| 175 | } else { | 175 | } else { |
| 176 | data_skip(archive_handle); | 176 | data_skip(archive_handle); |
| 177 | } | 177 | } |
diff --git a/archival/tar.c b/archival/tar.c index 1899ab954..fa1c57512 100644 --- a/archival/tar.c +++ b/archival/tar.c | |||
| @@ -583,13 +583,13 @@ static inline int writeTarFile(const char *tarName, const int verboseFlag, | |||
| 583 | #endif /* tar_create */ | 583 | #endif /* tar_create */ |
| 584 | 584 | ||
| 585 | #ifdef CONFIG_FEATURE_TAR_EXCLUDE | 585 | #ifdef CONFIG_FEATURE_TAR_EXCLUDE |
| 586 | static const llist_t *append_file_list_to_list(const char *filename, const llist_t *list) | 586 | static llist_t *append_file_list_to_list(const char *filename, llist_t *list) |
| 587 | { | 587 | { |
| 588 | FILE *src_stream = xfopen(filename, "r"); | 588 | FILE *src_stream = xfopen(filename, "r"); |
| 589 | char *line; | 589 | char *line; |
| 590 | while((line = get_line_from_file(src_stream)) != NULL) { | 590 | while((line = get_line_from_file(src_stream)) != NULL) { |
| 591 | chomp(line); | 591 | chomp(line); |
| 592 | list = add_to_list(list, line); | 592 | list = llist_add_to(list, line); |
| 593 | } | 593 | } |
| 594 | fclose(src_stream); | 594 | fclose(src_stream); |
| 595 | 595 | ||
| @@ -708,7 +708,7 @@ int tar_main(int argc, char **argv) | |||
| 708 | /* Setup an array of filenames to work with */ | 708 | /* Setup an array of filenames to work with */ |
| 709 | /* TODO: This is the same as in ar, seperate function ? */ | 709 | /* TODO: This is the same as in ar, seperate function ? */ |
| 710 | while (optind < argc) { | 710 | while (optind < argc) { |
| 711 | tar_handle->accept = add_to_list(tar_handle->accept, argv[optind]); | 711 | tar_handle->accept = llist_add_to(tar_handle->accept, argv[optind]); |
| 712 | optind++; | 712 | optind++; |
| 713 | } | 713 | } |
| 714 | 714 | ||
diff --git a/archival/unzip.c b/archival/unzip.c index 4c1e5ce40..86416d327 100644 --- a/archival/unzip.c +++ b/archival/unzip.c | |||
| @@ -147,7 +147,7 @@ extern int unzip_main(int argc, char **argv) | |||
| 147 | 147 | ||
| 148 | while (optind < argc) { | 148 | while (optind < argc) { |
| 149 | archive_handle->filter = filter_accept_list; | 149 | archive_handle->filter = filter_accept_list; |
| 150 | archive_handle->accept = add_to_list(archive_handle->accept, argv[optind]); | 150 | archive_handle->accept = llist_add_to(archive_handle->accept, argv[optind]); |
| 151 | optind++; | 151 | optind++; |
| 152 | } | 152 | } |
| 153 | 153 | ||
diff --git a/include/libbb.h b/include/libbb.h index dec6df116..1e95a903e 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
| @@ -357,4 +357,10 @@ typedef struct { | |||
| 357 | extern procps_status_t * procps_scan(int save_user_arg0); | 357 | extern procps_status_t * procps_scan(int save_user_arg0); |
| 358 | extern unsigned short compare_string_array(const char *string_array[], const char *key); | 358 | extern unsigned short compare_string_array(const char *string_array[], const char *key); |
| 359 | 359 | ||
| 360 | typedef struct llist_s { | ||
| 361 | char *data; | ||
| 362 | struct llist_s *link; | ||
| 363 | } llist_t; | ||
| 364 | extern llist_t *llist_add_to(llist_t *old_head, char *new_item); | ||
| 365 | |||
| 360 | #endif /* __LIBCONFIG_H__ */ | 366 | #endif /* __LIBCONFIG_H__ */ |
diff --git a/include/unarchive.h b/include/unarchive.h index bfd9a1458..aca685915 100644 --- a/include/unarchive.h +++ b/include/unarchive.h | |||
| @@ -7,8 +7,8 @@ | |||
| 7 | #define ARCHIVE_EXTRACT_QUIET 8 | 7 | #define ARCHIVE_EXTRACT_QUIET 8 |
| 8 | 8 | ||
| 9 | #include <sys/types.h> | 9 | #include <sys/types.h> |
| 10 | |||
| 11 | #include <stdio.h> | 10 | #include <stdio.h> |
| 11 | #include "libbb.h" | ||
| 12 | 12 | ||
| 13 | typedef struct file_headers_s { | 13 | typedef struct file_headers_s { |
| 14 | char *name; | 14 | char *name; |
| @@ -21,17 +21,12 @@ typedef struct file_headers_s { | |||
| 21 | dev_t device; | 21 | dev_t device; |
| 22 | } file_header_t; | 22 | } file_header_t; |
| 23 | 23 | ||
| 24 | typedef struct llist_s { | ||
| 25 | const char *data; | ||
| 26 | const struct llist_s *link; | ||
| 27 | } llist_t; | ||
| 28 | |||
| 29 | typedef struct archive_handle_s { | 24 | typedef struct archive_handle_s { |
| 30 | /* define if the header and data compenent should processed */ | 25 | /* define if the header and data compenent should processed */ |
| 31 | char (*filter)(struct archive_handle_s *); | 26 | char (*filter)(struct archive_handle_s *); |
| 32 | const llist_t *accept; | 27 | llist_t *accept; |
| 33 | const llist_t *reject; | 28 | llist_t *reject; |
| 34 | const llist_t *passed; /* List of files that have successfully been worked on */ | 29 | llist_t *passed; /* List of files that have successfully been worked on */ |
| 35 | 30 | ||
| 36 | /* Contains the processed header entry */ | 31 | /* Contains the processed header entry */ |
| 37 | file_header_t *file_header; | 32 | file_header_t *file_header; |
| @@ -103,7 +98,6 @@ extern void archive_xread_all(const archive_handle_t *archive_handle, void *buf, | |||
| 103 | extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count); | 98 | extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count); |
| 104 | 99 | ||
| 105 | extern void data_align(archive_handle_t *archive_handle, const unsigned short boundary); | 100 | extern void data_align(archive_handle_t *archive_handle, const unsigned short boundary); |
| 106 | extern const llist_t *add_to_list(const llist_t *old_head, const char *new_item); | ||
| 107 | extern void archive_copy_file(const archive_handle_t *archive_handle, const int dst_fd); | 101 | extern void archive_copy_file(const archive_handle_t *archive_handle, const int dst_fd); |
| 108 | extern const llist_t *find_list_entry(const llist_t *list, const char *filename); | 102 | extern const llist_t *find_list_entry(const llist_t *list, const char *filename); |
| 109 | 103 | ||
diff --git a/libbb/Makefile.in b/libbb/Makefile.in index 22fcd8306..3f4e77314 100644 --- a/libbb/Makefile.in +++ b/libbb/Makefile.in | |||
| @@ -33,7 +33,7 @@ LIBBB_SRC:= \ | |||
| 33 | get_last_path_component.c get_line_from_file.c herror_msg.c \ | 33 | get_last_path_component.c get_line_from_file.c herror_msg.c \ |
| 34 | herror_msg_and_die.c human_readable.c inet_common.c inode_hash.c \ | 34 | herror_msg_and_die.c human_readable.c inet_common.c inode_hash.c \ |
| 35 | interface.c isdirectory.c kernel_version.c last_char_is.c libc5.c \ | 35 | interface.c isdirectory.c kernel_version.c last_char_is.c libc5.c \ |
| 36 | loop.c make_directory.c mode_string.c \ | 36 | llist_add_to.c loop.c make_directory.c mode_string.c \ |
| 37 | module_syscalls.c mtab.c mtab_file.c my_getgrgid.c my_getgrnam.c \ | 37 | module_syscalls.c mtab.c mtab_file.c my_getgrgid.c my_getgrnam.c \ |
| 38 | my_getpwnam.c my_getpwnamegid.c my_getpwuid.c obscure.c parse_mode.c \ | 38 | my_getpwnam.c my_getpwnamegid.c my_getpwuid.c obscure.c parse_mode.c \ |
| 39 | parse_number.c perror_msg.c perror_msg_and_die.c print_file.c \ | 39 | parse_number.c perror_msg.c perror_msg_and_die.c print_file.c \ |
diff --git a/archival/libunarchive/add_to_list.c b/libbb/llist_add_to.c index 052bca351..61e53f0c1 100644 --- a/archival/libunarchive/add_to_list.c +++ b/libbb/llist_add_to.c | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | #include "unarchive.h" | 3 | #include "unarchive.h" |
| 4 | #include "libbb.h" | 4 | #include "libbb.h" |
| 5 | 5 | ||
| 6 | extern const llist_t *add_to_list(const llist_t *old_head, const char *new_item) | 6 | extern llist_t *llist_add_to(llist_t *old_head, char *new_item) |
| 7 | { | 7 | { |
| 8 | llist_t *new_head; | 8 | llist_t *new_head; |
| 9 | 9 | ||
