Lines Matching defs:kvs
115 kvlist *kvs;
119 kvs = (kvlist *)__libc_calloc(1, sizeof *kvs);
120 if (kvs) {
121 kvs->key = (char **)__libc_calloc(size, sizeof *kvs->key);
122 kvs->val = (char **)__libc_calloc(size, sizeof *kvs->val);
123 if (kvs->key && kvs->val) {
124 kvs->size = size;
126 __libc_free(kvs->key);
127 __libc_free(kvs->val);
128 __libc_free(kvs);
129 kvs = NULL;
132 return kvs;
135 UT_STATIC void kvlist_realloc(kvlist *kvs)
137 if (!kvs) return;
138 size_t size = 2 * kvs->size;
141 keys = (char **)__libc_realloc(kvs->key, size * (sizeof *kvs->key));
143 kvs->key = keys;
144 vals = (char **)__libc_realloc(kvs->val, size * (sizeof *kvs->val));
146 kvs->val = vals;
147 kvs->size = size;
153 static void kvlist_free(kvlist *kvs)
156 if (!kvs) return;
157 for (i = 0; i < kvs->num; i++) {
158 __libc_free(kvs->key[i]);
159 __libc_free(kvs->val[i]);
161 __libc_free(kvs->key);
162 __libc_free(kvs->val);
163 __libc_free(kvs);
175 sections->kvs = (kvlist**)__libc_calloc(size, sizeof *sections->kvs);
176 if (sections->names && sections->kvs) {
180 __libc_free(sections->kvs);
194 kvlist **kvs;
198 kvs = (kvlist **)__libc_realloc(sections->kvs, size * (sizeof *sections->kvs));
199 if (!kvs) return;
200 sections->kvs = kvs;
211 kvlist_free(sections->kvs[i]);
214 __libc_free(sections->kvs);
218 static void kvlist_set(kvlist *kvs, const char *key, const char *val)
221 if (!kvs || !key || !val) return;
223 for (i = 0; i < kvs->num; i++) {
224 if (!strcmp(kvs->key[i], key)) {
229 if (i < kvs->num) {
232 __libc_free(kvs->val[i]);
233 kvs->val[i] = v;
237 if (kvs->num == kvs->size) {
238 kvlist_realloc(kvs);
240 if (kvs->num < kvs->size) {
241 kvs->key[kvs->num] = ld_strdup(key);
242 kvs->val[kvs->num] = ld_strdup(val);
243 if (kvs->key[kvs->num] && kvs->val[kvs->num]) {
244 kvs->num++;
246 __libc_free(kvs->key[kvs->num]);
247 __libc_free(kvs->val[kvs->num]);
255 kvlist* kvs = NULL;
260 kvs = sections->kvs[i];
264 if (kvs) {
265 kvlist_set(kvs, key, val);
274 kvs = kvlist_alloc(0);
276 sections->kvs[sections->num] = kvs;
277 if (sections->names[sections->num] && kvs) {
279 kvlist_set(kvs, key, val);
282 kvlist_free(kvs);
382 return g_configor.sections->kvs[i];
436 if (!g_configor.kvs) {
440 for (i = 0; i < g_configor.kvs->num; i++) {
441 if (!strcmp(g_configor.kvs->key[i], key)) return g_configor.kvs->val[i];
519 if (!(g_configor.kvs = config_get_kvs(sname))) {