Lines Matching refs:slist
49 struct strlist *slist = container_of(rblist, struct strlist, rblist); in strlist__node_delete() local
52 str_node__delete(snode, slist->dupstr); in strlist__node_delete()
63 int strlist__add(struct strlist *slist, const char *new_entry) in strlist__add() argument
65 return rblist__add_node(&slist->rblist, new_entry); in strlist__add()
68 int strlist__load(struct strlist *slist, const char *filename) in strlist__load() argument
84 err = strlist__add(slist, entry); in strlist__load()
95 void strlist__remove(struct strlist *slist, struct str_node *snode) in strlist__remove() argument
97 rblist__remove_node(&slist->rblist, &snode->rb_node); in strlist__remove()
100 struct str_node *strlist__find(struct strlist *slist, const char *entry) in strlist__find() argument
103 struct rb_node *rb_node = rblist__find(&slist->rblist, entry); in strlist__find()
111 static int strlist__parse_list_entry(struct strlist *slist, const char *s) in strlist__parse_list_entry() argument
114 return strlist__load(slist, s + 7); in strlist__parse_list_entry()
116 return strlist__add(slist, s); in strlist__parse_list_entry()
119 int strlist__parse_list(struct strlist *slist, const char *s) in strlist__parse_list() argument
126 err = strlist__parse_list_entry(slist, s); in strlist__parse_list()
133 return *s ? strlist__parse_list_entry(slist, s) : 0; in strlist__parse_list()
138 struct strlist *slist = malloc(sizeof(*slist)); in strlist__new() local
140 if (slist != NULL) { in strlist__new()
141 rblist__init(&slist->rblist); in strlist__new()
142 slist->rblist.node_cmp = strlist__node_cmp; in strlist__new()
143 slist->rblist.node_new = strlist__node_new; in strlist__new()
144 slist->rblist.node_delete = strlist__node_delete; in strlist__new()
146 slist->dupstr = dupstr; in strlist__new()
147 if (list && strlist__parse_list(slist, list) != 0) in strlist__new()
151 return slist; in strlist__new()
153 free(slist); in strlist__new()
157 void strlist__delete(struct strlist *slist) in strlist__delete() argument
159 if (slist != NULL) in strlist__delete()
160 rblist__delete(&slist->rblist); in strlist__delete()
163 struct str_node *strlist__entry(const struct strlist *slist, unsigned int idx) in strlist__entry() argument
168 rb_node = rblist__entry(&slist->rblist, idx); in strlist__entry()