<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libgutenprint API Reference: list</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">libgutenprint API Reference <span id="projectnumber">5.2.7</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">list</div> </div> </div> <div class="contents"> <p>The list data type implements a fast generic doubly-linked list. <a href="#details">More...</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct stp_list_item </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The list item opaque data type. <a href="#ga67b4fafe1ab6ead5be7500f88874bdb0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct stp_list </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The list opaque data type. <a href="#ga53cf4f01ab7d712f771cb5fb479d2ba7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gac09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> )(void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A callback function to free the data a node contains. <a href="#gac09ea139ad36a6e21f30755439afeab5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef void *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> )(const void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A callback function to copy the data a node contains. <a href="#ga8d8084abc24eb4b00290916d5ff44c1f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef const char *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> )(const void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A callback function to get the name of a node. <a href="#ga815993ed02f7e9c7b5cb4680f0504d97"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gae5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> )(const void *, const void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A callback function to compare two nodes. <a href="#gae5c7167d6fc957fee0b6aff45bc0b126"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga55fbb8f7a3920b783b02183c5ea57624">stp_list_node_free_data</a> (void *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free node data allocated with stp_malloc. <a href="#ga55fbb8f7a3920b783b02183c5ea57624"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga3cfea94cd07f50d7d9b4ce384d349fca">stp_list_create</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new list object. <a href="#ga3cfea94cd07f50d7d9b4ce384d349fca"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga0ba249dd06efbf5c0af8511ceab671e8">stp_list_copy</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy and allocate a list object. <a href="#ga0ba249dd06efbf5c0af8511ceab671e8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gae23ef06175b27dd6772d4d4c098999b1">stp_list_destroy</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy a list object. <a href="#gae23ef06175b27dd6772d4d4c098999b1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gad185100e8d7969a473e9d42bc8084572">stp_list_get_start</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find the first item in a list. <a href="#gad185100e8d7969a473e9d42bc8084572"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gae939f15ee1a6e4c0aaad7a7be7f40b74">stp_list_get_end</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find the last item in a list. <a href="#gae939f15ee1a6e4c0aaad7a7be7f40b74"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gad377973e8b13d02c9c111d970f491993">stp_list_get_item_by_index</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, int idx)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find an item in a list by its index. <a href="#gad377973e8b13d02c9c111d970f491993"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga729867c847dd8282f74806968c708f28">stp_list_get_item_by_name</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, const char *name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find an item in a list by its name. <a href="#ga729867c847dd8282f74806968c708f28"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gacc9140df3f4311cd750ba10a1cbf37d1">stp_list_get_item_by_long_name</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, const char *long_name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find an item in a list by its long name. <a href="#gacc9140df3f4311cd750ba10a1cbf37d1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gae22741060734c9cbc47656c5ea35c3f3">stp_list_get_length</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the length of a list. <a href="#gae22741060734c9cbc47656c5ea35c3f3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gae3300d7971c393d119d6fd62e2b578ec">stp_list_set_freefunc</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#gac09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> freefunc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a list node free function. <a href="#gae3300d7971c393d119d6fd62e2b578ec"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#gac09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gabfc1ef258084a3e1ad959aa3d2f053f4">stp_list_get_freefunc</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list node free function. <a href="#gabfc1ef258084a3e1ad959aa3d2f053f4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga7e002ed25bbfbad236c1c619841f1ac6">stp_list_set_copyfunc</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#ga8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> copyfunc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a list node copy function. <a href="#ga7e002ed25bbfbad236c1c619841f1ac6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga686e92ee802147171e5fc723d0079b8d">stp_list_get_copyfunc</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list node copy function. <a href="#ga686e92ee802147171e5fc723d0079b8d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga889af512d87a00d696acc0b6b3fafe78">stp_list_set_namefunc</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> namefunc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a list node name function. <a href="#ga889af512d87a00d696acc0b6b3fafe78"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga50b1ab3c3b6b0ba7c0cf2128e2024369">stp_list_get_namefunc</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list node name function. <a href="#ga50b1ab3c3b6b0ba7c0cf2128e2024369"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga5be91978431b0ed48ea7919807bdcb73">stp_list_set_long_namefunc</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> long_namefunc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a list node long name function. <a href="#ga5be91978431b0ed48ea7919807bdcb73"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gab99b3ed6da1ea739eed3f2c04fbb7fa7">stp_list_get_long_namefunc</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list node long name function. <a href="#gab99b3ed6da1ea739eed3f2c04fbb7fa7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gab1d2486542b858b44b299cfcdf7d8784">stp_list_set_sortfunc</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#gae5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> sortfunc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a list node sort function. <a href="#gab1d2486542b858b44b299cfcdf7d8784"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#gae5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga4b32e315d3fd23eabeffcc8d931ea454">stp_list_get_sortfunc</a> (const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list node sort function. <a href="#ga4b32e315d3fd23eabeffcc8d931ea454"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gae726297a82e140672a018e135ffc6a0e">stp_list_item_create</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *next, const void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new list item. <a href="#gae726297a82e140672a018e135ffc6a0e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga5e36d4f61e00cb3e4c4a759f5e7e9f4b">stp_list_item_destroy</a> (<a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy a list item. <a href="#ga5e36d4f61e00cb3e4c4a759f5e7e9f4b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gabaa2a241055402438a0cae6f40cf6a78">stp_list_item_prev</a> (const <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the previous item in the list. <a href="#gabaa2a241055402438a0cae6f40cf6a78"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga81ab310caf6432ce1e492eaafdb6c0d7">stp_list_item_next</a> (const <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the next item in the list. <a href="#ga81ab310caf6432ce1e492eaafdb6c0d7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gad6f6b303b40fa75f22a86391785178cb">stp_list_item_get_data</a> (const <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the data associated with a list item. <a href="#gad6f6b303b40fa75f22a86391785178cb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gac1e34edcd47ffdc119cdcaf5ad38e1c4">stp_list_item_set_data</a> (<a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the data associated with a list item. <a href="#gac1e34edcd47ffdc119cdcaf5ad38e1c4"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <p>The list data type implements a fast generic doubly-linked list. </p> <p>It supports all of the operations you might want in a list (insert, remove, iterate over the list, copy whole lists), plus some (optional) less common features: finding items by index, name or long name, and sorting. These should also be fairly fast, due to caching in the list head. </p> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="ga67b4fafe1ab6ead5be7500f88874bdb0"></a><!-- doxytag: member="list.h::stp_list_item_t" ref="ga67b4fafe1ab6ead5be7500f88874bdb0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct stp_list_item <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>The list item opaque data type. </p> <p>This object is a node in the list. </p> </div> </div> <a class="anchor" id="ga53cf4f01ab7d712f771cb5fb479d2ba7"></a><!-- doxytag: member="list.h::stp_list_t" ref="ga53cf4f01ab7d712f771cb5fb479d2ba7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct stp_list <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>The list opaque data type. </p> <p>This object represents the list as a whole. </p> </div> </div> <a class="anchor" id="ga8d8084abc24eb4b00290916d5ff44c1f"></a><!-- doxytag: member="list.h::stp_node_copyfunc" ref="ga8d8084abc24eb4b00290916d5ff44c1f" args=")(const void *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void*(* <a class="el" href="group__list.html#ga8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a>)(const void *)</td> </tr> </table> </div> <div class="memdoc"> <p>A callback function to copy the data a node contains. </p> <p>The parameter is a pointer to the node data. The return value is a pointer to the new copy of the data. </p> </div> </div> <a class="anchor" id="gac09ea139ad36a6e21f30755439afeab5"></a><!-- doxytag: member="list.h::stp_node_freefunc" ref="gac09ea139ad36a6e21f30755439afeab5" args=")(void *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="group__list.html#gac09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a>)(void *)</td> </tr> </table> </div> <div class="memdoc"> <p>A callback function to free the data a node contains. </p> <p>The parameter is a pointer to the node data. </p> </div> </div> <a class="anchor" id="ga815993ed02f7e9c7b5cb4680f0504d97"></a><!-- doxytag: member="list.h::stp_node_namefunc" ref="ga815993ed02f7e9c7b5cb4680f0504d97" args=")(const void *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef const char*(* <a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a>)(const void *)</td> </tr> </table> </div> <div class="memdoc"> <p>A callback function to get the name of a node. </p> <p>The parameter is a pointer to the node data. The return value is a pointer to the name of the node, or NULL if there is no name. </p> </div> </div> <a class="anchor" id="gae5c7167d6fc957fee0b6aff45bc0b126"></a><!-- doxytag: member="list.h::stp_node_sortfunc" ref="gae5c7167d6fc957fee0b6aff45bc0b126" args=")(const void *, const void *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int(* <a class="el" href="group__list.html#gae5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a>)(const void *, const void *)</td> </tr> </table> </div> <div class="memdoc"> <p>A callback function to compare two nodes. </p> <p>The two parameters are pointers to node data. The return value is <0 if the first sorts before the second, 0 if they sort identically, and >0 if the first sorts after the second. </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga0ba249dd06efbf5c0af8511ceab671e8"></a><!-- doxytag: member="list.h::stp_list_copy" ref="ga0ba249dd06efbf5c0af8511ceab671e8" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a>* stp_list_copy </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Copy and allocate a list object. </p> <p>list must be a valid list object previously created with <a class="el" href="group__list.html#ga3cfea94cd07f50d7d9b4ce384d349fca" title="Create a new list object.">stp_list_create()</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to copy. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the new copy of the list. </dd></dl> </div> </div> <a class="anchor" id="ga3cfea94cd07f50d7d9b4ce384d349fca"></a><!-- doxytag: member="list.h::stp_list_create" ref="ga3cfea94cd07f50d7d9b4ce384d349fca" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a>* stp_list_create </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new list object. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the newly created list object. </dd></dl> </div> </div> <a class="anchor" id="gae23ef06175b27dd6772d4d4c098999b1"></a><!-- doxytag: member="list.h::stp_list_destroy" ref="gae23ef06175b27dd6772d4d4c098999b1" args="(stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int stp_list_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destroy a list object. </p> <p>It is an error to destroy the list more than once. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to destroy. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure. </dd></dl> </div> </div> <a class="anchor" id="ga686e92ee802147171e5fc723d0079b8d"></a><!-- doxytag: member="list.h::stp_list_get_copyfunc" ref="ga686e92ee802147171e5fc723d0079b8d" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> stp_list_get_copyfunc </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a list node copy function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the function previously set with stp_list_set_copyfunc, or NULL if no function has been set. </dd></dl> </div> </div> <a class="anchor" id="gae939f15ee1a6e4c0aaad7a7be7f40b74"></a><!-- doxytag: member="list.h::stp_list_get_end" ref="gae939f15ee1a6e4c0aaad7a7be7f40b74" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_get_end </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Find the last item in a list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the last list item, or NULL if the list is empty. </dd></dl> </div> </div> <a class="anchor" id="gabfc1ef258084a3e1ad959aa3d2f053f4"></a><!-- doxytag: member="list.h::stp_list_get_freefunc" ref="gabfc1ef258084a3e1ad959aa3d2f053f4" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#gac09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> stp_list_get_freefunc </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a list node free function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the function previously set with stp_list_set_freefunc, or NULL if no function has been set. </dd></dl> </div> </div> <a class="anchor" id="gad377973e8b13d02c9c111d970f491993"></a><!-- doxytag: member="list.h::stp_list_get_item_by_index" ref="gad377973e8b13d02c9c111d970f491993" args="(const stp_list_t *list, int idx)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_get_item_by_index </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>idx</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Find an item in a list by its index. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">idx</td><td>the index to find. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the list item, or NULL if the index is invalid or the list is empty. </dd></dl> </div> </div> <a class="anchor" id="gacc9140df3f4311cd750ba10a1cbf37d1"></a><!-- doxytag: member="list.h::stp_list_get_item_by_long_name" ref="gacc9140df3f4311cd750ba10a1cbf37d1" args="(const stp_list_t *list, const char *long_name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_get_item_by_long_name </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>long_name</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Find an item in a list by its long name. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">long_name</td><td>the long name to find. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the list item, or NULL if the long name is invalid or the list is empty. </dd></dl> </div> </div> <a class="anchor" id="ga729867c847dd8282f74806968c708f28"></a><!-- doxytag: member="list.h::stp_list_get_item_by_name" ref="ga729867c847dd8282f74806968c708f28" args="(const stp_list_t *list, const char *name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_get_item_by_name </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>name</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Find an item in a list by its name. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">name</td><td>the name to find. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the list item, or NULL if the name is invalid or the list is empty. </dd></dl> </div> </div> <a class="anchor" id="gae22741060734c9cbc47656c5ea35c3f3"></a><!-- doxytag: member="list.h::stp_list_get_length" ref="gae22741060734c9cbc47656c5ea35c3f3" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int stp_list_get_length </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the length of a list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the list length (number of list items). </dd></dl> </div> </div> <a class="anchor" id="gab99b3ed6da1ea739eed3f2c04fbb7fa7"></a><!-- doxytag: member="list.h::stp_list_get_long_namefunc" ref="gab99b3ed6da1ea739eed3f2c04fbb7fa7" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> stp_list_get_long_namefunc </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a list node long name function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the function previously set with stp_list_set_long_namefunc, or NULL if no function has been set. </dd></dl> </div> </div> <a class="anchor" id="ga50b1ab3c3b6b0ba7c0cf2128e2024369"></a><!-- doxytag: member="list.h::stp_list_get_namefunc" ref="ga50b1ab3c3b6b0ba7c0cf2128e2024369" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> stp_list_get_namefunc </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a list node name function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the function previously set with stp_list_set_namefunc, or NULL if no function has been set. </dd></dl> </div> </div> <a class="anchor" id="ga4b32e315d3fd23eabeffcc8d931ea454"></a><!-- doxytag: member="list.h::stp_list_get_sortfunc" ref="ga4b32e315d3fd23eabeffcc8d931ea454" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#gae5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> stp_list_get_sortfunc </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a list node sort function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the function previously set with stp_list_set_sortfunc, or NULL if no function has been set. </dd></dl> </div> </div> <a class="anchor" id="gad185100e8d7969a473e9d42bc8084572"></a><!-- doxytag: member="list.h::stp_list_get_start" ref="gad185100e8d7969a473e9d42bc8084572" args="(const stp_list_t *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_get_start </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Find the first item in a list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the first list item, or NULL if the list is empty. </dd></dl> </div> </div> <a class="anchor" id="gae726297a82e140672a018e135ffc6a0e"></a><!-- doxytag: member="list.h::stp_list_item_create" ref="gae726297a82e140672a018e135ffc6a0e" args="(stp_list_t *list, stp_list_item_t *next, const void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int stp_list_item_create </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td> <td class="paramname"><em>next</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"><em>data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new list item. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">next</td><td>the next item in the list, or NULL to insert at the end of the list. </td></tr> <tr><td class="paramname">data</td><td>the data the list item will contain. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure (if data is NULL, for example). </dd></dl> </div> </div> <a class="anchor" id="ga5e36d4f61e00cb3e4c4a759f5e7e9f4b"></a><!-- doxytag: member="list.h::stp_list_item_destroy" ref="ga5e36d4f61e00cb3e4c4a759f5e7e9f4b" args="(stp_list_t *list, stp_list_item_t *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int stp_list_item_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td> <td class="paramname"><em>item</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Destroy a list item. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">item</td><td>the item to destroy. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure. </dd></dl> </div> </div> <a class="anchor" id="gad6f6b303b40fa75f22a86391785178cb"></a><!-- doxytag: member="list.h::stp_list_item_get_data" ref="gad6f6b303b40fa75f22a86391785178cb" args="(const stp_list_item_t *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* stp_list_item_get_data </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td> <td class="paramname"><em>item</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the data associated with a list item. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">item</td><td>the list item to use. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the data associated with item. </dd></dl> </div> </div> <a class="anchor" id="ga81ab310caf6432ce1e492eaafdb6c0d7"></a><!-- doxytag: member="list.h::stp_list_item_next" ref="ga81ab310caf6432ce1e492eaafdb6c0d7" args="(const stp_list_item_t *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_item_next </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td> <td class="paramname"><em>item</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the next item in the list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">item</td><td>the item to start from. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the list item following from item, or NULL if item is the end of the list. </dd></dl> </div> </div> <a class="anchor" id="gabaa2a241055402438a0cae6f40cf6a78"></a><!-- doxytag: member="list.h::stp_list_item_prev" ref="gabaa2a241055402438a0cae6f40cf6a78" args="(const stp_list_item_t *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_item_prev </td> <td>(</td> <td class="paramtype">const <a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td> <td class="paramname"><em>item</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the previous item in the list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">item</td><td>the item to start from. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the list item prior to item, or NULL if item is the start of the list. </dd></dl> </div> </div> <a class="anchor" id="gac1e34edcd47ffdc119cdcaf5ad38e1c4"></a><!-- doxytag: member="list.h::stp_list_item_set_data" ref="gac1e34edcd47ffdc119cdcaf5ad38e1c4" args="(stp_list_item_t *item, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int stp_list_item_set_data </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> * </td> <td class="paramname"><em>item</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the data associated with a list item. </p> <dl class="warning"><dt><b>Warning:</b></dt><dd>Note that if a sortfunc is in use, changing the data will NOT re-sort the list! </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">item</td><td>the list item to use. </td></tr> <tr><td class="paramname">data</td><td>the data to set. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure (if data is NULL). </dd></dl> </div> </div> <a class="anchor" id="ga55fbb8f7a3920b783b02183c5ea57624"></a><!-- doxytag: member="list.h::stp_list_node_free_data" ref="ga55fbb8f7a3920b783b02183c5ea57624" args="(void *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void stp_list_node_free_data </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>item</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free node data allocated with stp_malloc. </p> <p>This function is indended for use as an stp_node_freefunc, which uses stp_free to free the node data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">item</td><td>the node data to free </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga7e002ed25bbfbad236c1c619841f1ac6"></a><!-- doxytag: member="list.h::stp_list_set_copyfunc" ref="ga7e002ed25bbfbad236c1c619841f1ac6" args="(stp_list_t *list, stp_node_copyfunc copyfunc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void stp_list_set_copyfunc </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__list.html#ga8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> </td> <td class="paramname"><em>copyfunc</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set a list node copy function. </p> <p>This callback function will be called whenever a list item is copied. Its intended use is for automatic object copying (since C lacks a copy constructor). </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">copyfunc</td><td>the function to set. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gae3300d7971c393d119d6fd62e2b578ec"></a><!-- doxytag: member="list.h::stp_list_set_freefunc" ref="gae3300d7971c393d119d6fd62e2b578ec" args="(stp_list_t *list, stp_node_freefunc freefunc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void stp_list_set_freefunc </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__list.html#gac09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> </td> <td class="paramname"><em>freefunc</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set a list node free function. </p> <p>This callback function will be called whenever a list item is destroyed. Its intended use is for automatic object destruction and any other cleanup required. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">freefunc</td><td>the function to set. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga5be91978431b0ed48ea7919807bdcb73"></a><!-- doxytag: member="list.h::stp_list_set_long_namefunc" ref="ga5be91978431b0ed48ea7919807bdcb73" args="(stp_list_t *list, stp_node_namefunc long_namefunc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void stp_list_set_long_namefunc </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> </td> <td class="paramname"><em>long_namefunc</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set a list node long name function. </p> <p>This callback function will be called whenever the long name of a list item needs to be determined. This is used to find list items by long name. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">long_namefunc</td><td>the function to set. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga889af512d87a00d696acc0b6b3fafe78"></a><!-- doxytag: member="list.h::stp_list_set_namefunc" ref="ga889af512d87a00d696acc0b6b3fafe78" args="(stp_list_t *list, stp_node_namefunc namefunc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void stp_list_set_namefunc </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__list.html#ga815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> </td> <td class="paramname"><em>namefunc</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set a list node name function. </p> <p>This callback function will be called whenever the name of a list item needs to be determined. This is used to find list items by name. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">namefunc</td><td>the function to set. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gab1d2486542b858b44b299cfcdf7d8784"></a><!-- doxytag: member="list.h::stp_list_set_sortfunc" ref="gab1d2486542b858b44b299cfcdf7d8784" args="(stp_list_t *list, stp_node_sortfunc sortfunc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void stp_list_set_sortfunc </td> <td>(</td> <td class="paramtype"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__list.html#gae5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> </td> <td class="paramname"><em>sortfunc</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set a list node sort function. </p> <p>This callback function will be called to determine the sort order for list items in sorted lists. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">list</td><td>the list to use. </td></tr> <tr><td class="paramname">sortfunc</td><td>the function to set. </td></tr> </table> </dd> </dl> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>