nv_pair_list_prev: remove unused function
[oweals/opkg-lede.git] / libopkg / nv_pair_list.c
1 /* nv_pair_list.c - the opkg package management system
2
3    Carl D. Worth
4
5    Copyright (C) 2001 University of Southern California
6
7    This program is free software; you can redistribute it and/or
8    modify it under the terms of the GNU General Public License as
9    published by the Free Software Foundation; either version 2, or (at
10    your option) any later version.
11
12    This program is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16 */
17
18 #include "nv_pair.h"
19 #include "void_list.h"
20 #include "nv_pair_list.h"
21 #include "libbb/libbb.h"
22
23 void nv_pair_list_init(nv_pair_list_t * list)
24 {
25         void_list_init((void_list_t *) list);
26 }
27
28 void nv_pair_list_deinit(nv_pair_list_t * list)
29 {
30         nv_pair_list_elt_t *pos;
31         nv_pair_t *nv_pair;
32
33         while (!void_list_empty(list)) {
34                 pos = nv_pair_list_pop(list);
35                 if (!pos)
36                         break;
37                 nv_pair = (nv_pair_t *) pos->data;
38                 nv_pair_deinit(nv_pair);
39                 /* malloced in nv_pair_list_append */
40                 free(nv_pair);
41                 pos->data = NULL;
42                 free(pos);
43         }
44         void_list_deinit((void_list_t *) list);
45 }
46
47 nv_pair_t *nv_pair_list_append(nv_pair_list_t * list, const char *name,
48                                const char *value)
49 {
50         /* freed in nv_pair_list_deinit */
51         nv_pair_t *nv_pair = xcalloc(1, sizeof(nv_pair_t));
52         nv_pair_init(nv_pair, name, value);
53         void_list_append((void_list_t *) list, nv_pair);
54
55         return nv_pair;
56 }
57
58 void nv_pair_list_push(nv_pair_list_t * list, nv_pair_t * data)
59 {
60         void_list_push((void_list_t *) list, data);
61 }
62
63 nv_pair_list_elt_t *nv_pair_list_pop(nv_pair_list_t * list)
64 {
65         return (nv_pair_list_elt_t *) void_list_pop((void_list_t *) list);
66 }
67
68 char *nv_pair_list_find(nv_pair_list_t * list, char *name)
69 {
70         nv_pair_list_elt_t *iter;
71         nv_pair_t *nv_pair;
72
73         list_for_each_entry(iter, &list->head, node) {
74                 nv_pair = (nv_pair_t *) iter->data;
75                 if (strcmp(nv_pair->name, name) == 0) {
76                         return nv_pair->value;
77                 }
78         }
79         return NULL;
80 }
81
82 nv_pair_list_elt_t *nv_pair_list_first(nv_pair_list_t * list)
83 {
84         return (nv_pair_list_elt_t *) void_list_first((void_list_t *) list);
85 }
86
87 nv_pair_list_elt_t *nv_pair_list_next(nv_pair_list_t * list,
88                                       nv_pair_list_elt_t * node)
89 {
90         return (nv_pair_list_elt_t *) void_list_next((void_list_t *) list,
91                                                      (void_list_elt_t *) node);
92 }