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
118 return strlist__load(slist, s + 7); in strlist__parse_list_entry()
126 err = strlist__load(slist, subst); in strlist__parse_list_entry()
130 if (slist->file_only) { in strlist__parse_list_entry()
136 err = strlist__add(slist, s); in strlist__parse_list_entry()
142 static int strlist__parse_list(struct strlist *slist, const char *s, const char *subst_dir) in strlist__parse_list() argument
149 err = strlist__parse_list_entry(slist, s, subst_dir); in strlist__parse_list()
156 return *s ? strlist__parse_list_entry(slist, s, subst_dir) : 0; in strlist__parse_list()
161 struct strlist *slist = malloc(sizeof(*slist)); in strlist__new() local
163 if (slist != NULL) { in strlist__new()
174 rblist__init(&slist->rblist); in strlist__new()
175 slist->rblist.node_cmp = strlist__node_cmp; in strlist__new()
176 slist->rblist.node_new = strlist__node_new; in strlist__new()
177 slist->rblist.node_delete = strlist__node_delete; in strlist__new()
179 slist->dupstr = dupstr; in strlist__new()
180 slist->file_only = file_only; in strlist__new()
182 if (list && strlist__parse_list(slist, list, dirname) != 0) in strlist__new()
186 return slist; in strlist__new()
188 free(slist); in strlist__new()
192 void strlist__delete(struct strlist *slist) in strlist__delete() argument
194 if (slist != NULL) in strlist__delete()
195 rblist__delete(&slist->rblist); in strlist__delete()
198 struct str_node *strlist__entry(const struct strlist *slist, unsigned int idx) in strlist__entry() argument
203 rb_node = rblist__entry(&slist->rblist, idx); in strlist__entry()