diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/linklist.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/lib/linklist.c b/lib/linklist.c index 6fc03e16..d6eeab41 100644 --- a/lib/linklist.c +++ b/lib/linklist.c @@ -80,7 +80,12 @@ listnode_add (struct list *list, void *val)    list->count++;  } -/* Add new node with sort function. */ +/* + * Add a node to the list.  If the list was sorted according to the + * 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. + */  void  listnode_add_sort (struct list *list, void *val)  { @@ -94,6 +99,7 @@ listnode_add_sort (struct list *list, void *val)      {        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)  	    {	      	      new->next = n; | 
