Index: util_parse.c =================================================================== --- util_parse.c (revision 2155) +++ util_parse.c (revision 2156) @@ -88,33 +88,33 @@ { lht_node_t *i; long idx; - const char *val; + const char *val; - switch(n->type) { - case LHT_TEXT: - val = n->data.text.value; + switch(n->type) { + case LHT_TEXT: + val = n->data.text.value; + if (dsth != NULL) + csch_cobj_attrib_set(sheet, dsth, prio, n->name, val, src); + else + csch_attrib_set(dsta, prio, n->name, val, src, NULL); + break; + case LHT_LIST: + for(i = n->data.list.first, idx = 0; i != NULL; i = i->next) { + if (i->type != LHT_TEXT) { + error(ectx, i, "invalid node type for an attribute list item"); + continue; + } + val = i->data.text.value; if (dsth != NULL) - csch_cobj_attrib_set(sheet, dsth, prio, n->name, val, src); + csch_cobj_attrib_seti(sheet, dsth, prio, n->name, idx, val, src); else - csch_attrib_set(dsta, prio, n->name, val, src, NULL); - break; - case LHT_LIST: - for(i = n->data.list.first, idx = 0; i != NULL; i = i->next) { - if (i->type != LHT_TEXT) { - error(ectx, i, "invalid node type for an attribute list item"); - continue; - } - val = i->data.text.value; - if (dsth != NULL) - csch_cobj_attrib_seti(sheet, dsth, prio, n->name, idx, val, src); - else - csch_attrib_seti(dsta, prio, n->name, idx, val, src, NULL); - idx++; - } - break; - default: - error(ectx, n, "invalid node type for an attribute"); - } + csch_attrib_seti(dsta, prio, n->name, idx, val, src, NULL); + idx++; + } + break; + default: + error(ectx, n, "invalid node type for an attribute"); + } } int csch_lht_parse_attribs_(csch_sheet_t *sheet, csch_chdr_t *dsth, csch_attribs_t *dsta, csch_source_arg_t src, lht_node_t *subtree, char *src_append_loc, void (*error)(void *ectx, lht_node_t *n, const char *msg), void *ectx)