// that all nodes have the same data type, so when
// deleting this list the last node must be
// manually deleted
- listnode_add (currbest, leaf->data);
+ struct cmd_element *el = leaf->data;
+ listnode_add (currbest, copy_cmd_element (el));
currbest->del = (void (*)(void *)) &del_cmd_token;
break;
}
char *token = vector_slot(vline, i);
if ((best = disambiguate_tokens (ftok, stok, token)))
return best == ftok ? first : second;
- ftok = listgetdata (listnextnode (fnode));
- stok = listgetdata (listnextnode (snode));
+ fnode = listnextnode (fnode);
+ snode = listnextnode (snode);
+ ftok = listgetdata (fnode);
+ stok = listgetdata (snode);
}
return NULL;
{
char *piece = NULL;
if (!docstr || !(piece = strsep (&docstr, "\n")))
- return NULL;
+ return XSTRDUP (MTYPE_CMD_TOKENS, "");
return XSTRDUP (MTYPE_CMD_TOKENS, piece);
}