Lines Matching defs:sections
168 section_list *sections;
171 sections = (section_list *)__libc_calloc(1, sizeof *sections);
173 if (sections) {
174 sections->names = (char**)__libc_calloc(size, sizeof *sections->names);
175 sections->kvs = (kvlist**)__libc_calloc(size, sizeof *sections->kvs);
176 if (sections->names && sections->kvs) {
177 sections->size = size;
179 __libc_free(sections->names);
180 __libc_free(sections->kvs);
181 __libc_free(sections);
182 sections = NULL;
185 return sections;
188 UT_STATIC void sections_realloc(section_list *sections)
190 if (!sections) return;
191 size_t size = 2 * sections->size;
195 names = (char **)__libc_realloc(sections->names, size * (sizeof *sections->names));
197 sections->names = names;
198 kvs = (kvlist **)__libc_realloc(sections->kvs, size * (sizeof *sections->kvs));
200 sections->kvs = kvs;
201 sections->size = size;
206 static void sections_free(section_list *sections)
208 if (!sections) return;
209 for (size_t i = 0; i < sections->num; i++) {
210 __libc_free(sections->names[i]);
211 kvlist_free(sections->kvs[i]);
213 __libc_free(sections->names);
214 __libc_free(sections->kvs);
215 __libc_free(sections);
253 static void sections_set(section_list *sections, const char *name, const char *key, const char *val)
256 if (!sections || !name || !key || !val) return;
258 for(size_t i = 0; i < sections->num; i++) {
259 if (!strcmp(sections->names[i], name)) {
260 kvs = sections->kvs[i];
269 if (sections->num == sections->size) {
270 sections_realloc(sections);
273 if (sections->num < sections->size) {
275 sections->names[sections->num] = ld_strdup(name);
276 sections->kvs[sections->num] = kvs;
277 if (sections->names[sections->num] && kvs) {
278 sections->num++;
281 __libc_free(sections->names[sections->num]);
298 section_list *sections;
305 sections = sections_alloc(0);
306 if (!sections) {
324 sections_free(sections);
340 sections_set(sections, section, key, val);
354 return sections;
380 for (i = 0; i < g_configor.sections->num; i++) {
381 if (!strcmp(g_configor.sections->names[i], sname)) {
382 return g_configor.sections->kvs[i];
486 g_configor.sections = config_load(fpath);
488 if (!g_configor.sections) {
668 if (g_configor.sections) {
669 sections_free(g_configor.sections);
670 g_configor.sections = NULL;