aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
Diffstat (limited to 'libbb')
-rw-r--r--libbb/getopt32.c4
-rw-r--r--libbb/llist.c23
2 files changed, 14 insertions, 13 deletions
diff --git a/libbb/getopt32.c b/libbb/getopt32.c
index 6cdbfd35d..dec97d743 100644
--- a/libbb/getopt32.c
+++ b/libbb/getopt32.c
@@ -242,7 +242,7 @@ Special characters:
242 llist_t *patterns = NULL; 242 llist_t *patterns = NULL;
243 243
244 (this pointer must be initializated to NULL if the list is empty 244 (this pointer must be initializated to NULL if the list is empty
245 as required by *llist_add_to(llist_t *old_head, char *new_item).) 245 as required by llist_add_to_end(llist_t **old_head, char *new_item).)
246 246
247 opt_complementary = "e::"; 247 opt_complementary = "e::";
248 248
@@ -487,7 +487,7 @@ getopt32(int argc, char **argv, const char *applet_opts, ...)
487 if (on_off->counter) 487 if (on_off->counter)
488 (*(on_off->counter))++; 488 (*(on_off->counter))++;
489 if (on_off->list_flg) { 489 if (on_off->list_flg) {
490 llist_add_to((llist_t **)(on_off->optarg), optarg); 490 llist_add_to_end((llist_t **)(on_off->optarg), optarg);
491 } else if (on_off->optarg) { 491 } else if (on_off->optarg) {
492 *(char **)(on_off->optarg) = optarg; 492 *(char **)(on_off->optarg) = optarg;
493 } 493 }
diff --git a/libbb/llist.c b/libbb/llist.c
index 2b34f762c..706751447 100644
--- a/libbb/llist.c
+++ b/libbb/llist.c
@@ -14,7 +14,7 @@
14#include "libbb.h" 14#include "libbb.h"
15 15
16/* Add data to the start of the linked list. */ 16/* Add data to the start of the linked list. */
17void llist_add_to(llist_t ** old_head, void *data) 17void llist_add_to(llist_t **old_head, void *data)
18{ 18{
19 llist_t *new_head = xmalloc(sizeof(llist_t)); 19 llist_t *new_head = xmalloc(sizeof(llist_t));
20 20
@@ -24,7 +24,7 @@ void llist_add_to(llist_t ** old_head, void *data)
24} 24}
25 25
26/* Add data to the end of the linked list. */ 26/* Add data to the end of the linked list. */
27void llist_add_to_end(llist_t ** list_head, void *data) 27void llist_add_to_end(llist_t **list_head, void *data)
28{ 28{
29 llist_t *new_item = xmalloc(sizeof(llist_t)); 29 llist_t *new_item = xmalloc(sizeof(llist_t));
30 30
@@ -43,7 +43,7 @@ void llist_add_to_end(llist_t ** list_head, void *data)
43} 43}
44 44
45/* Remove first element from the list and return it */ 45/* Remove first element from the list and return it */
46void *llist_pop(llist_t ** head) 46void *llist_pop(llist_t **head)
47{ 47{
48 void *data, *next; 48 void *data, *next;
49 49
@@ -81,7 +81,7 @@ void llist_unlink(llist_t **head, llist_t *elm)
81 81
82/* Recursively free all elements in the linked list. If freeit != NULL 82/* Recursively free all elements in the linked list. If freeit != NULL
83 * call it on each datum in the list */ 83 * call it on each datum in the list */
84void llist_free(llist_t * elm, void (*freeit) (void *data)) 84void llist_free(llist_t *elm, void (*freeit) (void *data))
85{ 85{
86 while (elm) { 86 while (elm) {
87 void *data = llist_pop(&elm); 87 void *data = llist_pop(&elm);
@@ -91,18 +91,19 @@ void llist_free(llist_t * elm, void (*freeit) (void *data))
91 } 91 }
92} 92}
93 93
94/* Reverse list order. Useful since getopt32 saves option params 94#ifdef UNUSED
95 * in reverse order */ 95/* Reverse list order. */
96llist_t *llist_rev(llist_t * list) 96llist_t *llist_rev(llist_t *list)
97{ 97{
98 llist_t *new = NULL; 98 llist_t *rev = NULL;
99 99
100 while (list) { 100 while (list) {
101 llist_t *next = list->link; 101 llist_t *next = list->link;
102 102
103 list->link = new; 103 list->link = rev;
104 new = list; 104 rev = list;
105 list = next; 105 list = next;
106 } 106 }
107 return new; 107 return rev;
108} 108}
109#endif