list

list(3)                    InterNetNews Documentation                    list(3)



NAME
       list - list routines

SYNOPSIS
           #include <inn/list.h>

           struct node {
               struct node *succ;
               struct node *pred;
           };

           struct list {
               struct node *head;
               struct node *tail;
               struct node *tailpred;
           };

           void list_new(struct list *list);

           struct node *list_addhead(struct list *list, struct node *node);

           struct node *list_addtail(struct list *list, struct node *node);

           struct node *list_head(struct list *list);

           struct node *list_tail(struct list *list);

           struct node *list_succ(struct node *node);

           struct node *list_pred(struct node *node);

           struct node *list_remhead(struct list *list);

           struct node *list_remtail(struct list *list);

           struct node *list_remove(struct node *node);

           struct node *list_insert(struct list *list, struct node *node, struct node *pred);

           bool list_isempty(struct list *list);

DESCRIPTION
       list_new initialises the list header list so as to create an empty list.

       list_addhead adds node to the head of list, returning the node just
       added.

       list_addtail adds node to the tail of list, returning the node just
       added.

       list_head returns a pointer to the the node at the head of list or NULL
       if the list is empty.

       list_tail returns a pointer to the the node at the tail of list or NULL
       if the list is empty.

       list_succ returns the next (successor) node on the list after node or
       NULL if node was the final node.

       list_pred returns the previous (predecessor) node on the list before node
       or NULL if node was the first node.

       list_remhead removes the first node from list and returns it to the
       caller. If the list is empty NULL is returned.

       list_remtail removes the last node from list and returns it to the
       caller. If the list is empty NULL is returned.

       list_remove removes node from the list it is on and returns it to the
       caller.

       list_insert inserts node onto list after the node pred. If pred is NULL
       then node is added to the head of list.

HISTORY
       Written by Alex Kiernan <alex.kiernan@thus.net> for InterNetNews 2.4.0.

       $Id: list.pod 9073 2010-05-31 19:00:23Z iulius $



INN 2.6.3                          2015-09-12                            list(3)