Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 8871645d6fb2d75b3b56fecdf5e99eda > files > 78

gutenprint-devel-5.2.7-2.fc14.x86_64.rpm

<!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&#160;<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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;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> &#124;
<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&#160;</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">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ga53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</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(*&#160;</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">&#160;</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 *(*&#160;</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">&#160;</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 *(*&#160;</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">&#160;</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(*&#160;</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">&#160;</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&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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>&#160;</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">&#160;</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&#160;</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">&#160;</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>&#160;</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">&#160;</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&#160;</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">&#160;</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>&#160;</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">&#160;</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&#160;</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">&#160;</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>&#160;</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">&#160;</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&#160;</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">&#160;</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>&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</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 *&#160;</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">&#160;</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&#160;</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">&#160;</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 &lt;0 if the first sorts before the second, 0 if they sort identically, and &gt;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> *&#160;</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&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>idx</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>long_name</em>&#160;</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> *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>next</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>item</em>&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>item</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</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 *&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>copyfunc</em>&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>freefunc</em>&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>long_namefunc</em>&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>namefunc</em>&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>sortfunc</em>&#160;</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&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>