list - Man Page

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 $

Referenced By

man-pages(7), queue(7).

The man pages LIST_EMPTY(3), LIST_ENTRY(3), LIST_FIRST(3), LIST_FOREACH(3), LIST_HEAD(3), LIST_HEAD_INITIALIZER(3), LIST_INIT(3), LIST_INSERT_AFTER(3), LIST_INSERT_BEFORE(3), LIST_INSERT_HEAD(3), LIST_NEXT(3) and LIST_REMOVE(3) are aliases of list(3).

2015-09-12 INN 2.6.4 InterNetNews Documentation