- struct uci_parse_context *pctx = ctx->pctx;
- char *word, *brk;
-
- for (word = strtok_r(pctx->buf, ";", &brk);
- word;
- word = strtok_r(NULL, ";", &brk)) {
-
- char *pbrk;
- word = strtok_r(word, " \t", &pbrk);
-
- switch(word[0]) {
- case 'c':
- if ((word[1] == 0) || !strcmp(word + 1, "onfig"))
- uci_parse_config(ctx, &word);
- break;
- case 'o':
- if ((word[1] == 0) || !strcmp(word + 1, "ption"))
- uci_parse_option(ctx, &word);
- break;
- default:
- pctx->byte = word - pctx->buf;
- UCI_THROW(ctx, UCI_ERR_PARSE);
- break;
- }
+ const struct uci_element *e;
+
+ uci_foreach_element(list, e) {
+ h = hash_murmur2(h, e->name, strlen(e->name) + 1);