aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-06-15 05:40:56 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-06-15 05:40:56 +0000
commitd50dda8c3501af9d593cd11272a15b480864a01c (patch)
tree652da97787e8e86f876b647ca9dab4b6b64fe291 /archival
parent873b895d50d69a45b52bef85a8a4fb190f9c89ce (diff)
downloadbusybox-w32-d50dda8c3501af9d593cd11272a15b480864a01c.tar.gz
busybox-w32-d50dda8c3501af9d593cd11272a15b480864a01c.tar.bz2
busybox-w32-d50dda8c3501af9d593cd11272a15b480864a01c.zip
*: use llist_pop for traverse-and-free list operation
function old new delta append_file_list_to_list 109 111 +2 udhcpc_main 2414 2413 -1 run_parts_main 325 324 -1 od_main 2324 2323 -1 getopt_main 709 707 -2 env_main 253 251 -2 sed_main 659 656 -3 ps_main 522 519 -3 traceroute_main 3960 3954 -6 sort_main 844 838 -6 diff_main 866 858 -8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/10 up/down: 2/-33) Total: -31 bytes
Diffstat (limited to 'archival')
-rw-r--r--archival/tar.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/archival/tar.c b/archival/tar.c
index 64a4e35be..0162e0623 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -659,16 +659,11 @@ int writeTarFile(int tar_fd, int verboseFlag,
659static llist_t *append_file_list_to_list(llist_t *list) 659static llist_t *append_file_list_to_list(llist_t *list)
660{ 660{
661 FILE *src_stream; 661 FILE *src_stream;
662 llist_t *cur = list;
663 llist_t *tmp;
664 char *line; 662 char *line;
665 llist_t *newlist = NULL; 663 llist_t *newlist = NULL;
666 664
667 while (cur) { 665 while (list) {
668 src_stream = xfopen(cur->data, "r"); 666 src_stream = xfopen(llist_pop(&list), "r");
669 tmp = cur;
670 cur = cur->link;
671 free(tmp);
672 while ((line = xmalloc_fgetline(src_stream)) != NULL) { 667 while ((line = xmalloc_fgetline(src_stream)) != NULL) {
673 /* kill trailing '/' unless the string is just "/" */ 668 /* kill trailing '/' unless the string is just "/" */
674 char *cp = last_char_is(line, '/'); 669 char *cp = last_char_is(line, '/');