# include/gutenprint/list.h File Reference

## Typedefs

typedef struct stp_list_item | stp_list_item_t
| The list item opaque data type.
typedef struct stp_list | stp_list_t
| The list opaque data type.
typedef void(* | stp_node_freefunc )(void *)
| A callback function to free the data a node contains.
typedef void *(* | stp_node_copyfunc )(const void *)
| A callback function to copy the data a node contains.
typedef const char *(* | stp_node_namefunc )(const void *)
| A callback function to get the name of a node.
typedef int(* | stp_node_sortfunc )(const void *, const void *)
| A callback function to compare two nodes.

## Functions

void | stp_list_node_free_data (void *item)
| Free node data allocated with stp_malloc.
stp_list_t * | stp_list_create (void)
| Create a new list object.
stp_list_t * | stp_list_copy (const stp_list_t *list)
| Copy and allocate a list object.
int | stp_list_destroy (stp_list_t *list)
| Destroy a list object.
stp_list_item_t * | stp_list_get_start (const stp_list_t *list)
| Find the first item in a list.
stp_list_item_t * | stp_list_get_end (const stp_list_t *list)
| Find the last item in a list.
stp_list_item_t * | stp_list_get_item_by_index (const stp_list_t *list, int idx)
| Find an item in a list by its index.
stp_list_item_t * | stp_list_get_item_by_name (const stp_list_t *list, const char *name)
| Find an item in a list by its name.
stp_list_item_t * | stp_list_get_item_by_long_name (const stp_list_t *list, const char *long_name)
| Find an item in a list by its long name.
int | stp_list_get_length (const stp_list_t *list)
| Get the length of a list.
void | stp_list_set_freefunc (stp_list_t *list, stp_node_freefunc freefunc)
| Set a list node free function.
stp_node_freefunc | stp_list_get_freefunc (const stp_list_t *list)
| Get a list node free function.
void | stp_list_set_copyfunc (stp_list_t *list, stp_node_copyfunc copyfunc)
| Set a list node copy function.
stp_node_copyfunc | stp_list_get_copyfunc (const stp_list_t *list)
| Get a list node copy function.
void | stp_list_set_namefunc (stp_list_t *list, stp_node_namefunc namefunc)
| Set a list node name function.
stp_node_namefunc | stp_list_get_namefunc (const stp_list_t *list)
| Get a list node name function.
void | stp_list_set_long_namefunc (stp_list_t *list, stp_node_namefunc long_namefunc)
| Set a list node long name function.
stp_node_namefunc | stp_list_get_long_namefunc (const stp_list_t *list)
| Get a list node long name function.
void | stp_list_set_sortfunc (stp_list_t *list, stp_node_sortfunc sortfunc)
| Set a list node sort function.
stp_node_sortfunc | stp_list_get_sortfunc (const stp_list_t *list)
| Get a list node sort function.
int | stp_list_item_create (stp_list_t *list, stp_list_item_t *next, const void *data)
| Create a new list item.
int | stp_list_item_destroy (stp_list_t *list, stp_list_item_t *item)
| Destroy a list item.
stp_list_item_t * | stp_list_item_prev (const stp_list_item_t *item)
| Get the previous item in the list.
stp_list_item_t * | stp_list_item_next (const stp_list_item_t *item)
| Get the next item in the list.
void * | stp_list_item_get_data (const stp_list_item_t *item)
| Get the data associated with a list item.
int | stp_list_item_set_data (stp_list_item_t *item, void *data)
| Set the data associated with a list item.

## Detailed Description

Generic list functions.