Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 7a022198a50a2e9f6bdbca88b73d1ff0 > files > 76

gutenprint-devel-5.2.6-1.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>libgutenprint API Reference: list</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>list</h1>The list data type implements a fast generic doubly-linked list.  
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct stp_list_item&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list item opaque data type.  <a href="#g67b4fafe1ab6ead5be7500f88874bdb0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct stp_list&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list opaque data type.  <a href="#g53cf4f01ab7d712f771cb5fb479d2ba7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gc09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> )(void *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A callback function to free the data a node contains.  <a href="#gc09ea139ad36a6e21f30755439afeab5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> )(const void *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A callback function to copy the data a node contains.  <a href="#g8d8084abc24eb4b00290916d5ff44c1f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef const char *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> )(const void *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A callback function to get the name of a node.  <a href="#g815993ed02f7e9c7b5cb4680f0504d97"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ge5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> )(const void *, const void *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A callback function to compare two nodes.  <a href="#ge5c7167d6fc957fee0b6aff45bc0b126"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g55fbb8f7a3920b783b02183c5ea57624">stp_list_node_free_data</a> (void *item)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free node data allocated with stp_malloc.  <a href="#g55fbb8f7a3920b783b02183c5ea57624"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g3cfea94cd07f50d7d9b4ce384d349fca">stp_list_create</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new list object.  <a href="#g3cfea94cd07f50d7d9b4ce384d349fca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g0ba249dd06efbf5c0af8511ceab671e8">stp_list_copy</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy and allocate a list object.  <a href="#g0ba249dd06efbf5c0af8511ceab671e8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ge23ef06175b27dd6772d4d4c098999b1">stp_list_destroy</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy a list object.  <a href="#ge23ef06175b27dd6772d4d4c098999b1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gd185100e8d7969a473e9d42bc8084572">stp_list_get_start</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the first item in a list.  <a href="#gd185100e8d7969a473e9d42bc8084572"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ge939f15ee1a6e4c0aaad7a7be7f40b74">stp_list_get_end</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the last item in a list.  <a href="#ge939f15ee1a6e4c0aaad7a7be7f40b74"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gd377973e8b13d02c9c111d970f491993">stp_list_get_item_by_index</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, int idx)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find an item in a list by its index.  <a href="#gd377973e8b13d02c9c111d970f491993"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g729867c847dd8282f74806968c708f28">stp_list_get_item_by_name</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find an item in a list by its name.  <a href="#g729867c847dd8282f74806968c708f28"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gcc9140df3f4311cd750ba10a1cbf37d1">stp_list_get_item_by_long_name</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, const char *long_name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find an item in a list by its long name.  <a href="#gcc9140df3f4311cd750ba10a1cbf37d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ge22741060734c9cbc47656c5ea35c3f3">stp_list_get_length</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the length of a list.  <a href="#ge22741060734c9cbc47656c5ea35c3f3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ge3300d7971c393d119d6fd62e2b578ec">stp_list_set_freefunc</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#gc09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> freefunc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a list node free function.  <a href="#ge3300d7971c393d119d6fd62e2b578ec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#gc09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gbfc1ef258084a3e1ad959aa3d2f053f4">stp_list_get_freefunc</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a list node free function.  <a href="#gbfc1ef258084a3e1ad959aa3d2f053f4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g7e002ed25bbfbad236c1c619841f1ac6">stp_list_set_copyfunc</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#g8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> copyfunc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a list node copy function.  <a href="#g7e002ed25bbfbad236c1c619841f1ac6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g686e92ee802147171e5fc723d0079b8d">stp_list_get_copyfunc</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a list node copy function.  <a href="#g686e92ee802147171e5fc723d0079b8d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g889af512d87a00d696acc0b6b3fafe78">stp_list_set_namefunc</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> namefunc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a list node name function.  <a href="#g889af512d87a00d696acc0b6b3fafe78"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g50b1ab3c3b6b0ba7c0cf2128e2024369">stp_list_get_namefunc</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a list node name function.  <a href="#g50b1ab3c3b6b0ba7c0cf2128e2024369"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g5be91978431b0ed48ea7919807bdcb73">stp_list_set_long_namefunc</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> long_namefunc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a list node long name function.  <a href="#g5be91978431b0ed48ea7919807bdcb73"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gb99b3ed6da1ea739eed3f2c04fbb7fa7">stp_list_get_long_namefunc</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a list node long name function.  <a href="#gb99b3ed6da1ea739eed3f2c04fbb7fa7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gb1d2486542b858b44b299cfcdf7d8784">stp_list_set_sortfunc</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#ge5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> sortfunc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a list node sort function.  <a href="#gb1d2486542b858b44b299cfcdf7d8784"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#ge5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g4b32e315d3fd23eabeffcc8d931ea454">stp_list_get_sortfunc</a> (const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a list node sort function.  <a href="#g4b32e315d3fd23eabeffcc8d931ea454"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#ge726297a82e140672a018e135ffc6a0e">stp_list_item_create</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *next, const void *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new list item.  <a href="#ge726297a82e140672a018e135ffc6a0e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g5e36d4f61e00cb3e4c4a759f5e7e9f4b">stp_list_item_destroy</a> (<a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *list, <a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy a list item.  <a href="#g5e36d4f61e00cb3e4c4a759f5e7e9f4b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gbaa2a241055402438a0cae6f40cf6a78">stp_list_item_prev</a> (const <a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the previous item in the list.  <a href="#gbaa2a241055402438a0cae6f40cf6a78"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#g81ab310caf6432ce1e492eaafdb6c0d7">stp_list_item_next</a> (const <a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the next item in the list.  <a href="#g81ab310caf6432ce1e492eaafdb6c0d7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gd6f6b303b40fa75f22a86391785178cb">stp_list_item_get_data</a> (const <a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the data associated with a list item.  <a href="#gd6f6b303b40fa75f22a86391785178cb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__list.html#gc1e34edcd47ffdc119cdcaf5ad38e1c4">stp_list_item_set_data</a> (<a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *item, void *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the data associated with a list item.  <a href="#gc1e34edcd47ffdc119cdcaf5ad38e1c4"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The list data type implements a fast generic doubly-linked list. 
<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. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g67b4fafe1ab6ead5be7500f88874bdb0"></a><!-- doxytag: member="list.h::stp_list_item_t" ref="g67b4fafe1ab6ead5be7500f88874bdb0" 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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The list item opaque data type. 
<p>
This object is a node in the list. 
</div>
</div><p>
<a class="anchor" name="g53cf4f01ab7d712f771cb5fb479d2ba7"></a><!-- doxytag: member="list.h::stp_list_t" ref="g53cf4f01ab7d712f771cb5fb479d2ba7" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The list opaque data type. 
<p>
This object represents the list as a whole. 
</div>
</div><p>
<a class="anchor" name="g8d8084abc24eb4b00290916d5ff44c1f"></a><!-- doxytag: member="list.h::stp_node_copyfunc" ref="g8d8084abc24eb4b00290916d5ff44c1f" 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#g8d8084abc24eb4b00290916d5ff44c1f">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>
The parameter is a pointer to the node data. The return value is a pointer to the new copy of the data. 
</div>
</div><p>
<a class="anchor" name="gc09ea139ad36a6e21f30755439afeab5"></a><!-- doxytag: member="list.h::stp_node_freefunc" ref="gc09ea139ad36a6e21f30755439afeab5" args=")(void *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* <a class="el" href="group__list.html#gc09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a>)(void *)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A callback function to free the data a node contains. 
<p>
The parameter is a pointer to the node data. 
</div>
</div><p>
<a class="anchor" name="g815993ed02f7e9c7b5cb4680f0504d97"></a><!-- doxytag: member="list.h::stp_node_namefunc" ref="g815993ed02f7e9c7b5cb4680f0504d97" 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#g815993ed02f7e9c7b5cb4680f0504d97">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>
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. 
</div>
</div><p>
<a class="anchor" name="ge5c7167d6fc957fee0b6aff45bc0b126"></a><!-- doxytag: member="list.h::stp_node_sortfunc" ref="ge5c7167d6fc957fee0b6aff45bc0b126" 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#ge5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a>)(const void *, const void *)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A callback function to compare two nodes. 
<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. 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g0ba249dd06efbf5c0af8511ceab671e8"></a><!-- doxytag: member="list.h::stp_list_copy" ref="g0ba249dd06efbf5c0af8511ceab671e8" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a>* stp_list_copy           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy and allocate a list object. 
<p>
list must be a valid list object previously created with <a class="el" href="group__list.html#g3cfea94cd07f50d7d9b4ce384d349fca" title="Create a new list object.">stp_list_create()</a>. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to copy. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the new copy of the list. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3cfea94cd07f50d7d9b4ce384d349fca"></a><!-- doxytag: member="list.h::stp_list_create" ref="g3cfea94cd07f50d7d9b4ce384d349fca" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a>* stp_list_create           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a new list object. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the newly created list object. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge23ef06175b27dd6772d4d4c098999b1"></a><!-- doxytag: member="list.h::stp_list_destroy" ref="ge23ef06175b27dd6772d4d4c098999b1" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destroy a list object. 
<p>
It is an error to destroy the list more than once. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to destroy. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g686e92ee802147171e5fc723d0079b8d"></a><!-- doxytag: member="list.h::stp_list_get_copyfunc" ref="g686e92ee802147171e5fc723d0079b8d" 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#g8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a> stp_list_get_copyfunc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a list node copy function. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="ge939f15ee1a6e4c0aaad7a7be7f40b74"></a><!-- doxytag: member="list.h::stp_list_get_end" ref="ge939f15ee1a6e4c0aaad7a7be7f40b74" 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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_get_end           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find the last item in a list. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the last list item, or NULL if the list is empty. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gbfc1ef258084a3e1ad959aa3d2f053f4"></a><!-- doxytag: member="list.h::stp_list_get_freefunc" ref="gbfc1ef258084a3e1ad959aa3d2f053f4" 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#gc09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a> stp_list_get_freefunc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a list node free function. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="gd377973e8b13d02c9c111d970f491993"></a><!-- doxytag: member="list.h::stp_list_get_item_by_index" ref="gd377973e8b13d02c9c111d970f491993" 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#g67b4fafe1ab6ead5be7500f88874bdb0">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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>idx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>idx</em>&nbsp;</td><td>the index to find. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="gcc9140df3f4311cd750ba10a1cbf37d1"></a><!-- doxytag: member="list.h::stp_list_get_item_by_long_name" ref="gcc9140df3f4311cd750ba10a1cbf37d1" 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#g67b4fafe1ab6ead5be7500f88874bdb0">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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>long_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>long_name</em>&nbsp;</td><td>the long name to find. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="g729867c847dd8282f74806968c708f28"></a><!-- doxytag: member="list.h::stp_list_get_item_by_name" ref="g729867c847dd8282f74806968c708f28" 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#g67b4fafe1ab6ead5be7500f88874bdb0">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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>the name to find. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="ge22741060734c9cbc47656c5ea35c3f3"></a><!-- doxytag: member="list.h::stp_list_get_length" ref="ge22741060734c9cbc47656c5ea35c3f3" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the length of a list. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the list length (number of list items). </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb99b3ed6da1ea739eed3f2c04fbb7fa7"></a><!-- doxytag: member="list.h::stp_list_get_long_namefunc" ref="gb99b3ed6da1ea739eed3f2c04fbb7fa7" 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#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> stp_list_get_long_namefunc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a list node long name function. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="g50b1ab3c3b6b0ba7c0cf2128e2024369"></a><!-- doxytag: member="list.h::stp_list_get_namefunc" ref="g50b1ab3c3b6b0ba7c0cf2128e2024369" 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#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a> stp_list_get_namefunc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a list node name function. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="g4b32e315d3fd23eabeffcc8d931ea454"></a><!-- doxytag: member="list.h::stp_list_get_sortfunc" ref="g4b32e315d3fd23eabeffcc8d931ea454" 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#ge5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a> stp_list_get_sortfunc           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a list node sort function. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="gd185100e8d7969a473e9d42bc8084572"></a><!-- doxytag: member="list.h::stp_list_get_start" ref="gd185100e8d7969a473e9d42bc8084572" 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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_get_start           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find the first item in a list. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the first list item, or NULL if the list is empty. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge726297a82e140672a018e135ffc6a0e"></a><!-- doxytag: member="list.h::stp_list_item_create" ref="ge726297a82e140672a018e135ffc6a0e" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td>
          <td class="paramname"> <em>next</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a new list item. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>next</em>&nbsp;</td><td>the next item in the list, or NULL to insert at the end of the list. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>the data the list item will contain. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure (if data is NULL, for example). </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5e36d4f61e00cb3e4c4a759f5e7e9f4b"></a><!-- doxytag: member="list.h::stp_list_item_destroy" ref="g5e36d4f61e00cb3e4c4a759f5e7e9f4b" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td>
          <td class="paramname"> <em>item</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destroy a list item. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>item</em>&nbsp;</td><td>the item to destroy. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd6f6b303b40fa75f22a86391785178cb"></a><!-- doxytag: member="list.h::stp_list_item_get_data" ref="gd6f6b303b40fa75f22a86391785178cb" 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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td>
          <td class="paramname"> <em>item</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the data associated with a list item. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>item</em>&nbsp;</td><td>the list item to use. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the data associated with item. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g81ab310caf6432ce1e492eaafdb6c0d7"></a><!-- doxytag: member="list.h::stp_list_item_next" ref="g81ab310caf6432ce1e492eaafdb6c0d7" 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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_item_next           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td>
          <td class="paramname"> <em>item</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the next item in the list. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>item</em>&nbsp;</td><td>the item to start from. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="gbaa2a241055402438a0cae6f40cf6a78"></a><!-- doxytag: member="list.h::stp_list_item_prev" ref="gbaa2a241055402438a0cae6f40cf6a78" 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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a>* stp_list_item_prev           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__list.html#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td>
          <td class="paramname"> <em>item</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the previous item in the list. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>item</em>&nbsp;</td><td>the item to start from. </td></tr>
  </table>
</dl>
<dl class="return" compact><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><p>
<a class="anchor" name="gc1e34edcd47ffdc119cdcaf5ad38e1c4"></a><!-- doxytag: member="list.h::stp_list_item_set_data" ref="gc1e34edcd47ffdc119cdcaf5ad38e1c4" 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#g67b4fafe1ab6ead5be7500f88874bdb0">stp_list_item_t</a> *&nbsp;</td>
          <td class="paramname"> <em>item</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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" compact><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 compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>item</em>&nbsp;</td><td>the list item to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>the data to set. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure (if data is NULL). </dd></dl>

</div>
</div><p>
<a class="anchor" name="g55fbb8f7a3920b783b02183c5ea57624"></a><!-- doxytag: member="list.h::stp_list_node_free_data" ref="g55fbb8f7a3920b783b02183c5ea57624" 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 *&nbsp;</td>
          <td class="paramname"> <em>item</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free node data allocated with stp_malloc. 
<p>
This function is indended for use as an stp_node_freefunc, which uses stp_free to free the node data. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>item</em>&nbsp;</td><td>the node data to free </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g7e002ed25bbfbad236c1c619841f1ac6"></a><!-- doxytag: member="list.h::stp_list_set_copyfunc" ref="g7e002ed25bbfbad236c1c619841f1ac6" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</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#g8d8084abc24eb4b00290916d5ff44c1f">stp_node_copyfunc</a>&nbsp;</td>
          <td class="paramname"> <em>copyfunc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a list node copy function. 
<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). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>copyfunc</em>&nbsp;</td><td>the function to set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ge3300d7971c393d119d6fd62e2b578ec"></a><!-- doxytag: member="list.h::stp_list_set_freefunc" ref="ge3300d7971c393d119d6fd62e2b578ec" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</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#gc09ea139ad36a6e21f30755439afeab5">stp_node_freefunc</a>&nbsp;</td>
          <td class="paramname"> <em>freefunc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a list node free function. 
<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. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>freefunc</em>&nbsp;</td><td>the function to set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g5be91978431b0ed48ea7919807bdcb73"></a><!-- doxytag: member="list.h::stp_list_set_long_namefunc" ref="g5be91978431b0ed48ea7919807bdcb73" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</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#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a>&nbsp;</td>
          <td class="paramname"> <em>long_namefunc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a list node long name function. 
<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. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>long_namefunc</em>&nbsp;</td><td>the function to set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="g889af512d87a00d696acc0b6b3fafe78"></a><!-- doxytag: member="list.h::stp_list_set_namefunc" ref="g889af512d87a00d696acc0b6b3fafe78" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</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#g815993ed02f7e9c7b5cb4680f0504d97">stp_node_namefunc</a>&nbsp;</td>
          <td class="paramname"> <em>namefunc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a list node name function. 
<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. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>namefunc</em>&nbsp;</td><td>the function to set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="gb1d2486542b858b44b299cfcdf7d8784"></a><!-- doxytag: member="list.h::stp_list_set_sortfunc" ref="gb1d2486542b858b44b299cfcdf7d8784" 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#g53cf4f01ab7d712f771cb5fb479d2ba7">stp_list_t</a> *&nbsp;</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#ge5c7167d6fc957fee0b6aff45bc0b126">stp_node_sortfunc</a>&nbsp;</td>
          <td class="paramname"> <em>sortfunc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a list node sort function. 
<p>
This callback function will be called to determine the sort order for list items in sorted lists. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>the list to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sortfunc</em>&nbsp;</td><td>the function to set. </td></tr>
  </table>
</dl>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Aug 10 20:32:51 2010 for libgutenprint API Reference by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>