Lines Matching refs:slist
57 int strlist__add(struct strlist *slist, const char *new_entry) in strlist__add() argument
59 return rblist__add_node(&slist->rblist, new_entry); in strlist__add()
62 int strlist__load(struct strlist *slist, const char *filename) in strlist__load() argument
78 err = strlist__add(slist, entry); in strlist__load()
89 void strlist__remove(struct strlist *slist, struct str_node *snode) in strlist__remove() argument
91 rblist__remove_node(&slist->rblist, &snode->rb_node); in strlist__remove()
94 struct str_node *strlist__find(struct strlist *slist, const char *entry) in strlist__find() argument
97 struct rb_node *rb_node = rblist__find(&slist->rblist, entry); in strlist__find()
105 static int strlist__parse_list_entry(struct strlist *slist, const char *s, in strlist__parse_list_entry() argument
112 return strlist__load(slist, s + 7); in strlist__parse_list_entry()
120 err = strlist__load(slist, subst); in strlist__parse_list_entry()
124 if (slist->file_only) { in strlist__parse_list_entry()
130 err = strlist__add(slist, s); in strlist__parse_list_entry()
136 static int strlist__parse_list(struct strlist *slist, const char *list, const char *subst_dir) in strlist__parse_list() argument
146 err = strlist__parse_list_entry(slist, s, subst_dir); in strlist__parse_list()
152 err = *s ? strlist__parse_list_entry(slist, s, subst_dir) : 0; in strlist__parse_list()
159 struct strlist *slist = malloc(sizeof(*slist)); in strlist__new() local
161 if (slist != NULL) { in strlist__new()
170 rblist__init(&slist->rblist); in strlist__new()
171 slist->rblist.node_cmp = strlist__node_cmp; in strlist__new()
172 slist->rblist.node_new = strlist__node_new; in strlist__new()
173 slist->rblist.node_delete = strlist__node_delete; in strlist__new()
175 slist->file_only = file_only; in strlist__new()
177 if (list && strlist__parse_list(slist, list, dirname) != 0) in strlist__new()
181 return slist; in strlist__new()
183 free(slist); in strlist__new()
187 void strlist__delete(struct strlist *slist) in strlist__delete() argument
189 if (slist != NULL) in strlist__delete()
190 rblist__delete(&slist->rblist); in strlist__delete()
193 struct str_node *strlist__entry(const struct strlist *slist, unsigned int idx) in strlist__entry() argument
198 rb_node = rblist__entry(&slist->rblist, idx); in strlist__entry()