X-Git-Url: http://git.droids-corp.org/?p=protos%2Flibecoli.git;a=blobdiff_plain;f=src%2Fecoli_editline.c;h=e3e53cfd10dc837b8934e3d28ab94b444f388164;hp=42083f8a23301106d511f3f2a31c919646e99136;hb=331d87b8f34493ea7eb4db75fa9d90b2e3ed503b;hpb=67b4d8d2b2593e3e64a848ce548bc0fd76bc440a diff --git a/src/ecoli_editline.c b/src/ecoli_editline.c index 42083f8..e3e53cf 100644 --- a/src/ecoli_editline.c +++ b/src/ecoli_editline.c @@ -370,34 +370,34 @@ static int get_node_help(const struct ec_comp_item *item, struct ec_editline_help *help) { const struct ec_comp_group *grp; - const struct ec_pnode *state; + const struct ec_pnode *pstate; const struct ec_node *node; const char *node_help = NULL; - const char *node_desc = NULL; + char *node_desc = NULL; help->desc = NULL; help->help = NULL; grp = ec_comp_item_get_grp(item); - for (state = ec_comp_group_get_state(grp); state != NULL; - state = ec_pnode_get_parent(state)) { - node = ec_pnode_get_node(state); + for (pstate = ec_comp_group_get_pstate(grp); pstate != NULL; + pstate = ec_pnode_get_parent(pstate)) { + node = ec_pnode_get_node(pstate); if (node_help == NULL) node_help = ec_dict_get(ec_node_attrs(node), "help"); - if (node_desc == NULL) + if (node_desc == NULL) { node_desc = ec_node_desc(node); + if (node_desc == NULL) + goto fail; + } } - if (node_help == NULL) - node_help = ""; if (node_desc == NULL) goto fail; + if (node_help == NULL) + node_help = ""; - help->desc = ec_strdup(node_desc); - if (help->desc == NULL) - goto fail; - + help->desc = node_desc; help->help = ec_strdup(node_help); if (help->help == NULL) goto fail; @@ -405,6 +405,7 @@ static int get_node_help(const struct ec_comp_item *item, return 0; fail: + ec_free(node_desc); ec_free(help->desc); ec_free(help->help); return -1;