Revert my "microfix". It was caused by misreading code. Gilad is right as
always.
diff --git a/lib/linklist.c b/lib/linklist.c
index 9c1b297..1c95da4 100644
--- a/lib/linklist.c
+++ b/lib/linklist.c
@@ -85,10 +85,6 @@
* cmp function, insert a new node with the given val such that the
* list remains sorted. The new node is always inserted; there is no
* notion of omitting duplicates.
- *
- * XXX not sure this is right:
- * It is currently undefined whether new nodes for which cmp returns 0
- * should be added before or after any existing nodes.
*/
void
listnode_add_sort (struct list *list, void *val)
@@ -103,8 +99,7 @@
{
for (n = list->head; n; n = n->next)
{
- /* XXX should an "equal" node be inserted before or after? */
- if ((*list->cmp) (val, n->data) <= 0)
+ if ((*list->cmp) (val, n->data) < 0)
{
new->next = n;
new->prev = n->prev;