Sophie

Sophie

distrib > Fedora > 16 > x86_64 > by-pkgid > a56af13763747629d8dc453763fd5281 > files > 56

libthai-devel-0.1.14-4.fc15.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>libthai: /builddir/build/BUILD/libthai-0.1.14/libdatrie/datrie/tail.h File Reference</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.3 -->
<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">libthai&#160;<span id="projectnumber">0.1.14</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="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>/builddir/build/BUILD/libthai-0.1.14/libdatrie/datrie/tail.h File Reference</h1>  </div>
</div>
<div class="contents">

<p>trie tail for keeping suffixes  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a6c18411372028dc3dc6e74fc0e09db25">tail_is_walkable_char</a>(t, s, suffix_idx, c)&#160;&#160;&#160;(tail_get_suffix ((t), (s)) [suffix_idx] == (c))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Test walkability in tail with a character.  <a href="#a6c18411372028dc3dc6e74fc0e09db25"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57310a081de76a2bf1be2cf3513afd93"></a><!-- doxytag: member="tail.h::Tail" ref="a57310a081de76a2bf1be2cf3513afd93" args="" -->
typedef struct _Tail&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Double-array structure type. <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"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#addf4e5d5529b3d39b77c1a4c412e405f">tail_new</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new tail object.  <a href="#addf4e5d5529b3d39b77c1a4c412e405f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#ade5ab3a7c7b5ec0e85c7d9c655e9b2da">tail_read</a> (FILE *file)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read tail data from file.  <a href="#ade5ab3a7c7b5ec0e85c7d9c655e9b2da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#ab79597c0b16d1dfed4b78cfddd5ea8ca">tail_free</a> (<a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Free tail data.  <a href="#ab79597c0b16d1dfed4b78cfddd5ea8ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#ae8d17a74abafddf5d84520f983ab2b53">tail_write</a> (const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, FILE *file)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write tail data.  <a href="#ae8d17a74abafddf5d84520f983ab2b53"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#ab477450dd2939774336ac7905433bc40">tail_get_suffix</a> (const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get suffix.  <a href="#ab477450dd2939774336ac7905433bc40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a99b0035b411e6913451dec06fd1f1b23">tail_set_suffix</a> (<a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> index, const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> *suffix)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set suffix of existing entry.  <a href="#a99b0035b411e6913451dec06fd1f1b23"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#afd08e82e06f71fff7eb5cf15f7dbc1dd">tail_add_suffix</a> (<a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> *suffix)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new suffix.  <a href="#afd08e82e06f71fff7eb5cf15f7dbc1dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a8333db7ed9357d27bb6bea6783a19c7a">tail_get_data</a> (const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get data associated to suffix entry.  <a href="#a8333db7ed9357d27bb6bea6783a19c7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a6a952e452716e1f1898fd005d8652aea">tail_set_data</a> (<a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> index, <a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set data associated to suffix entry.  <a href="#a6a952e452716e1f1898fd005d8652aea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a0fdd2d0f42491c977d494c98c5ecc732">tail_delete</a> (<a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete suffix entry.  <a href="#a0fdd2d0f42491c977d494c98c5ecc732"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a39beccf71ddb69ddcce98e58af0c2251">tail_walk_str</a> (const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> s, short *suffix_idx, const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> *str, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Walk in tail with a string.  <a href="#a39beccf71ddb69ddcce98e58af0c2251"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tail_8h.html#a9d83d8bde17c9833eadc0f3664c83651">tail_walk_char</a> (const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *t, <a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> s, short *suffix_idx, <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> c)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Walk in tail with a character.  <a href="#a9d83d8bde17c9833eadc0f3664c83651"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>trie tail for keeping suffixes </p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a6c18411372028dc3dc6e74fc0e09db25"></a><!-- doxytag: member="tail.h::tail_is_walkable_char" ref="a6c18411372028dc3dc6e74fc0e09db25" args="(t, s, suffix_idx, c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define tail_is_walkable_char</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">t, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">suffix_idx, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(tail_get_suffix ((t), (s)) [suffix_idx] == (c))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test walkability in tail with a character. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">s</td><td>: the tail data index </td></tr>
    <tr><td class="paramname">suffix_idx</td><td>: current character index in suffix </td></tr>
    <tr><td class="paramname">c</td><td>: the character to test walkability</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>boolean indicating walkability</dd></dl>
<p>Test if the character <em>c</em> can be used to walk from given character position <em>suffix_idx</em> of entry <em>s</em> of the tail data <em>t</em>. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="afd08e82e06f71fff7eb5cf15f7dbc1dd"></a><!-- doxytag: member="tail.h::tail_add_suffix" ref="afd08e82e06f71fff7eb5cf15f7dbc1dd" args="(Tail *t, const TrieChar *suffix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a> tail_add_suffix </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> *&#160;</td>
          <td class="paramname"><em>suffix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a new suffix. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">suffix</td><td>: the new suffix</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the index of the newly added suffix.</dd></dl>
<p>Add a new suffix entry to tail. </p>

</div>
</div>
<a class="anchor" id="a0fdd2d0f42491c977d494c98c5ecc732"></a><!-- doxytag: member="tail.h::tail_delete" ref="a0fdd2d0f42491c977d494c98c5ecc732" args="(Tail *t, TrieIndex index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tail_delete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete suffix entry. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">index</td><td>: the index of the suffix to delete</td></tr>
  </table>
  </dd>
</dl>
<p>Delete suffix entry from the tail data. </p>

</div>
</div>
<a class="anchor" id="ab79597c0b16d1dfed4b78cfddd5ea8ca"></a><!-- doxytag: member="tail.h::tail_free" ref="ab79597c0b16d1dfed4b78cfddd5ea8ca" args="(Tail *t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tail_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free tail data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, non-zero on failure</dd></dl>
<p>Free the given tail data. </p>

</div>
</div>
<a class="anchor" id="a8333db7ed9357d27bb6bea6783a19c7a"></a><!-- doxytag: member="tail.h::tail_get_data" ref="a8333db7ed9357d27bb6bea6783a19c7a" args="(const Tail *t, TrieIndex index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a> tail_get_data </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get data associated to suffix entry. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">index</td><td>: the index of the suffix</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the data associated to the suffix entry</dd></dl>
<p>Get data associated to suffix entry <em>index</em> in tail data. </p>

</div>
</div>
<a class="anchor" id="ab477450dd2939774336ac7905433bc40"></a><!-- doxytag: member="tail.h::tail_get_suffix" ref="ab477450dd2939774336ac7905433bc40" args="(const Tail *t, TrieIndex index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a>* tail_get_suffix </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get suffix. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">index</td><td>: the index of the suffix</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an allocated string of the indexed suffix.</dd></dl>
<p>Get suffix from tail with given <em>index</em>. The returned string is allocated. The caller should free it with free(). </p>

</div>
</div>
<a class="anchor" id="addf4e5d5529b3d39b77c1a4c412e405f"></a><!-- doxytag: member="tail.h::tail_new" ref="addf4e5d5529b3d39b77c1a4c412e405f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a>* tail_new </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new tail object. </p>
<p>Create a new empty tail object. </p>

</div>
</div>
<a class="anchor" id="ade5ab3a7c7b5ec0e85c7d9c655e9b2da"></a><!-- doxytag: member="tail.h::tail_read" ref="ade5ab3a7c7b5ec0e85c7d9c655e9b2da" args="(FILE *file)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a>* tail_read </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read tail data from file. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>: the file to read</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to the openned tail data, NULL on failure</dd></dl>
<p>Read tail data from the opened file, starting from the current file pointer until the end of tail data block. On return, the file pointer is left at the position after the read block. </p>

</div>
</div>
<a class="anchor" id="a6a952e452716e1f1898fd005d8652aea"></a><!-- doxytag: member="tail.h::tail_set_data" ref="a6a952e452716e1f1898fd005d8652aea" args="(Tail *t, TrieIndex index, TrieData data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool tail_set_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ab29d7be15a1627450c0591317f56162e">TrieData</a>&#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 data associated to suffix entry. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">index</td><td>: the index of the suffix </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>boolean indicating success</dd></dl>
<p>Set data associated to suffix entry <em>index</em> in tail data. </p>

</div>
</div>
<a class="anchor" id="a99b0035b411e6913451dec06fd1f1b23"></a><!-- doxytag: member="tail.h::tail_set_suffix" ref="a99b0035b411e6913451dec06fd1f1b23" args="(Tail *t, TrieIndex index, const TrieChar *suffix)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool tail_set_suffix </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> *&#160;</td>
          <td class="paramname"><em>suffix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set suffix of existing entry. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">index</td><td>: the index of the suffix </td></tr>
    <tr><td class="paramname">suffix</td><td>: the new suffix</td></tr>
  </table>
  </dd>
</dl>
<p>Set suffix of existing entry of given <em>index</em> in tail. </p>

</div>
</div>
<a class="anchor" id="a9d83d8bde17c9833eadc0f3664c83651"></a><!-- doxytag: member="tail.h::tail_walk_char" ref="a9d83d8bde17c9833eadc0f3664c83651" args="(const Tail *t, TrieIndex s, short *suffix_idx, TrieChar c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Bool tail_walk_char </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short *&#160;</td>
          <td class="paramname"><em>suffix_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Walk in tail with a character. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">s</td><td>: the tail data index </td></tr>
    <tr><td class="paramname">suffix_idx</td><td>: pointer to current character index in suffix </td></tr>
    <tr><td class="paramname">c</td><td>: the character to use in walking</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>boolean indicating success</dd></dl>
<p>Walk in the tail data <em>t</em> at entry <em>s</em>, from given character position <em>*suffix_idx</em>, using given character <em>c</em>. If the walk is successful, it returns TRUE, and <em>*suffix_idx</em> is updated to the next character. Otherwise, it returns FALSE, and <em>*suffix_idx</em> is left unchanged. </p>

</div>
</div>
<a class="anchor" id="a39beccf71ddb69ddcce98e58af0c2251"></a><!-- doxytag: member="tail.h::tail_walk_str" ref="a39beccf71ddb69ddcce98e58af0c2251" args="(const Tail *t, TrieIndex s, short *suffix_idx, const TrieChar *str, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tail_walk_str </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="triedefs_8h.html#ad3530f975e9bcdb8ef00eb24d7f5bdbc">TrieIndex</a>&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short *&#160;</td>
          <td class="paramname"><em>suffix_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="triedefs_8h.html#a0d28476db8e582153531f3e098e1f708">TrieChar</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Walk in tail with a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">s</td><td>: the tail data index </td></tr>
    <tr><td class="paramname">suffix_idx</td><td>: pointer to current character index in suffix </td></tr>
    <tr><td class="paramname">str</td><td>: the string to use in walking </td></tr>
    <tr><td class="paramname">len</td><td>: total characters in <em>str</em> to walk</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>total number of characters successfully walked</dd></dl>
<p>Walk in the tail data <em>t</em> at entry <em>s</em>, from given character position <em>*suffix_idx</em>, using <em>len</em> characters of given string <em>str</em>. On return, <em>*suffix_idx</em> is updated to the position after the last successful walk, and the function returns the total number of character succesfully walked. </p>

</div>
</div>
<a class="anchor" id="ae8d17a74abafddf5d84520f983ab2b53"></a><!-- doxytag: member="tail.h::tail_write" ref="ae8d17a74abafddf5d84520f983ab2b53" args="(const Tail *t, FILE *file)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tail_write </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="tail_8h.html#a57310a081de76a2bf1be2cf3513afd93">Tail</a> *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>file</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write tail data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>: the tail data </td></tr>
    <tr><td class="paramname">file</td><td>: the file to write to</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, non-zero on failure</dd></dl>
<p>Write tail data to the given <em>file</em>, starting from the current file pointer. On return, the file pointer is left after the tail data block. </p>

</div>
</div>
</div>
<hr size="1"><address style="text-align: right;"><small>
Generated for libthai by&nbsp;<a href="http://www.doxygen.org/
index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 
1.7.3</small></address>
</body>
</html>