Sophie

Sophie

distrib > Fedora > 20 > x86_64 > media > updates > by-pkgid > c579c38484b8ffa244858626df1128ca > files > 6

libhtp-doc-0.5.6-3.fc20.noarch.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>HTP: bstr.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">HTP
   &#160;<span id="projectnumber">0.5</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
  <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 id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_5edaa2d740570af18be6e40ef0aff597.html">htp</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">bstr.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;ctype.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="bstr_8h_source.html">bstr.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6b551b4e84311c0608d2a359440d9118"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a6b551b4e84311c0608d2a359440d9118">bstr_alloc</a> (size_t len)</td></tr>
<tr class="separator:a6b551b4e84311c0608d2a359440d9118"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebff13ea048f6c632e8b5cb85879480c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#aebff13ea048f6c632e8b5cb85879480c">bstr_add</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *destination, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *source)</td></tr>
<tr class="separator:aebff13ea048f6c632e8b5cb85879480c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28d8a05819a40c6f19dba8ab7d4f4c26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a28d8a05819a40c6f19dba8ab7d4f4c26">bstr_add_c</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *bdestination, const char *csource)</td></tr>
<tr class="separator:a28d8a05819a40c6f19dba8ab7d4f4c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adac130490755d97728f1c2e6b6330333"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#adac130490755d97728f1c2e6b6330333">bstr_add_c_noex</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *destination, const char *source)</td></tr>
<tr class="separator:adac130490755d97728f1c2e6b6330333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87094fb0fdfd15f430caa0e91d091511"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a87094fb0fdfd15f430caa0e91d091511">bstr_add_mem</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *destination, const void *data, size_t len)</td></tr>
<tr class="separator:a87094fb0fdfd15f430caa0e91d091511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dc5d24b60cf123df96b274b7d5bb567"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a5dc5d24b60cf123df96b274b7d5bb567">bstr_add_mem_noex</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *destination, const void *data, size_t len)</td></tr>
<tr class="separator:a5dc5d24b60cf123df96b274b7d5bb567"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbbec871f8fd06709d92af6892b264a2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#acbbec871f8fd06709d92af6892b264a2">bstr_add_noex</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *destination, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *source)</td></tr>
<tr class="separator:acbbec871f8fd06709d92af6892b264a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6bdcaadaf0034880584515edbca2427"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ad6bdcaadaf0034880584515edbca2427">bstr_adjust_len</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, size_t newlen)</td></tr>
<tr class="separator:ad6bdcaadaf0034880584515edbca2427"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3f9aa44f3a6948d66ca875432b7a255"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#af3f9aa44f3a6948d66ca875432b7a255">bstr_adjust_realptr</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, void *newrealptr)</td></tr>
<tr class="separator:af3f9aa44f3a6948d66ca875432b7a255"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac28786b1f330ae5992293ba028db9936"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ac28786b1f330ae5992293ba028db9936">bstr_adjust_size</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, size_t newsize)</td></tr>
<tr class="separator:ac28786b1f330ae5992293ba028db9936"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03b158d860b3709218556a3051d7bdeb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a03b158d860b3709218556a3051d7bdeb">bstr_begins_with</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *needle)</td></tr>
<tr class="separator:a03b158d860b3709218556a3051d7bdeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bff516fbecb8a3863502a8dfd95f50b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a4bff516fbecb8a3863502a8dfd95f50b">bstr_begins_with_c</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const char *needle)</td></tr>
<tr class="separator:a4bff516fbecb8a3863502a8dfd95f50b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f8f76b7017594ec0c29a5abbb2cf484"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a9f8f76b7017594ec0c29a5abbb2cf484">bstr_begins_with_c_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const char *needle)</td></tr>
<tr class="separator:a9f8f76b7017594ec0c29a5abbb2cf484"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb576d190ef0c1a5a336ba34d352bc0a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#acb576d190ef0c1a5a336ba34d352bc0a">bstr_begins_with_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *needle)</td></tr>
<tr class="separator:acb576d190ef0c1a5a336ba34d352bc0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7d6c173fd90255dffac7bd702048563"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ab7d6c173fd90255dffac7bd702048563">bstr_begins_with_mem</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const void *_data, size_t len)</td></tr>
<tr class="separator:ab7d6c173fd90255dffac7bd702048563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77fd09883e293c0bd94fabe9b6949374"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a77fd09883e293c0bd94fabe9b6949374">bstr_begins_with_mem_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const void *_data, size_t len)</td></tr>
<tr class="separator:a77fd09883e293c0bd94fabe9b6949374"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0164a6d51901a909e3ae473ecc8b8a42"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a0164a6d51901a909e3ae473ecc8b8a42">bstr_char_at</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, size_t pos)</td></tr>
<tr class="separator:a0164a6d51901a909e3ae473ecc8b8a42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eb4cfb22e61753899620617f200a36c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a8eb4cfb22e61753899620617f200a36c">bstr_char_at_end</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, size_t pos)</td></tr>
<tr class="separator:a8eb4cfb22e61753899620617f200a36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7440589d0619590384aa3ac7070ba89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ae7440589d0619590384aa3ac7070ba89">bstr_chop</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b)</td></tr>
<tr class="separator:ae7440589d0619590384aa3ac7070ba89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75dc35dde15052db45ac0496e33b76ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a75dc35dde15052db45ac0496e33b76ce">bstr_chr</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, int c)</td></tr>
<tr class="separator:a75dc35dde15052db45ac0496e33b76ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bac22bafd8fdc42aba04a50218bb14f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a8bac22bafd8fdc42aba04a50218bb14f">bstr_cmp</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b1, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b2)</td></tr>
<tr class="separator:a8bac22bafd8fdc42aba04a50218bb14f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ac48f2b29c76130b28bc2fa8280ce49"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a7ac48f2b29c76130b28bc2fa8280ce49">bstr_cmp_c</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, const char *c)</td></tr>
<tr class="separator:a7ac48f2b29c76130b28bc2fa8280ce49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37ec2adc98a8251ee1ab49cf9f6f5050"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a37ec2adc98a8251ee1ab49cf9f6f5050">bstr_cmp_c_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, const char *c)</td></tr>
<tr class="separator:a37ec2adc98a8251ee1ab49cf9f6f5050"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ac2b78d0f24179d733f2a9b11ec2efd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a2ac2b78d0f24179d733f2a9b11ec2efd">bstr_cmp_mem</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, const void *data, size_t len)</td></tr>
<tr class="separator:a2ac2b78d0f24179d733f2a9b11ec2efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9102c361d1a16e943beadc60162cc123"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a9102c361d1a16e943beadc60162cc123">bstr_cmp_mem_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, const void *data, size_t len)</td></tr>
<tr class="separator:a9102c361d1a16e943beadc60162cc123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d6765fb2a88a0f2bac4e41bee24c294"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a4d6765fb2a88a0f2bac4e41bee24c294">bstr_cmp_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b1, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b2)</td></tr>
<tr class="separator:a4d6765fb2a88a0f2bac4e41bee24c294"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4fc824d8df74ad6863a085f3901d30f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ab4fc824d8df74ad6863a085f3901d30f">bstr_dup</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b)</td></tr>
<tr class="separator:ab4fc824d8df74ad6863a085f3901d30f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97c6e59a9a439d6f6c42a154c4059036"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a97c6e59a9a439d6f6c42a154c4059036">bstr_dup_c</a> (const char *cstr)</td></tr>
<tr class="separator:a97c6e59a9a439d6f6c42a154c4059036"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaf68b4b27be54655cba0d74c24646c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#abaf68b4b27be54655cba0d74c24646c1">bstr_dup_ex</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, size_t offset, size_t len)</td></tr>
<tr class="separator:abaf68b4b27be54655cba0d74c24646c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad866778a2b2da1cee5a668f7e3bb99de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ad866778a2b2da1cee5a668f7e3bb99de">bstr_dup_lower</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b)</td></tr>
<tr class="separator:ad866778a2b2da1cee5a668f7e3bb99de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae558f2c20b24baa62f84a3ee820b2b2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ae558f2c20b24baa62f84a3ee820b2b2f">bstr_dup_mem</a> (const void *data, size_t len)</td></tr>
<tr class="separator:ae558f2c20b24baa62f84a3ee820b2b2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51bc377ac30a1092e84a4c3ab3d289f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a51bc377ac30a1092e84a4c3ab3d289f9">bstr_expand</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, size_t newsize)</td></tr>
<tr class="separator:a51bc377ac30a1092e84a4c3ab3d289f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b9ca92f8699af4136e5d1ed38ff73b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a1b9ca92f8699af4136e5d1ed38ff73b0">bstr_free</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b)</td></tr>
<tr class="separator:a1b9ca92f8699af4136e5d1ed38ff73b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefffbd824e98b2fb60e46b1d7df2491e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#aefffbd824e98b2fb60e46b1d7df2491e">bstr_index_of</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *needle)</td></tr>
<tr class="separator:aefffbd824e98b2fb60e46b1d7df2491e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a551bf6b9c6e525d0dab1f88333282e49"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a551bf6b9c6e525d0dab1f88333282e49">bstr_index_of_c</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const char *needle)</td></tr>
<tr class="separator:a551bf6b9c6e525d0dab1f88333282e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b6507af551bc83e9b7deed498b05a6d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a6b6507af551bc83e9b7deed498b05a6d">bstr_index_of_c_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const char *needle)</td></tr>
<tr class="separator:a6b6507af551bc83e9b7deed498b05a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa238aa33ea17945c0c9a39edb92b5aca"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#aa238aa33ea17945c0c9a39edb92b5aca">bstr_index_of_mem</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const void *_data2, size_t len2)</td></tr>
<tr class="separator:aa238aa33ea17945c0c9a39edb92b5aca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14a2c058f22c778fe533be58c1bf5513"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a14a2c058f22c778fe533be58c1bf5513">bstr_index_of_mem_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const void *_data2, size_t len2)</td></tr>
<tr class="separator:a14a2c058f22c778fe533be58c1bf5513"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ad3ab56d57f8a814cbbffbef95bfb0d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a5ad3ab56d57f8a814cbbffbef95bfb0d">bstr_index_of_nocase</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *haystack, const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *needle)</td></tr>
<tr class="separator:a5ad3ab56d57f8a814cbbffbef95bfb0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a386a3b3959b594ae718792268125abf7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a386a3b3959b594ae718792268125abf7">bstr_rchr</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b, int c)</td></tr>
<tr class="separator:a386a3b3959b594ae718792268125abf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8efd20da92a9a40fee8a40bdcdfb194f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a8efd20da92a9a40fee8a40bdcdfb194f">bstr_to_lowercase</a> (<a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b)</td></tr>
<tr class="separator:a8efd20da92a9a40fee8a40bdcdfb194f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ca71904a637298a23cfbd97737fde70"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a3ca71904a637298a23cfbd97737fde70">bstr_util_cmp_mem</a> (const void *_data1, size_t len1, const void *_data2, size_t len2)</td></tr>
<tr class="separator:a3ca71904a637298a23cfbd97737fde70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b64cdb63293a1ca608bc2c735c20e7d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a8b64cdb63293a1ca608bc2c735c20e7d">bstr_util_cmp_mem_nocase</a> (const void *_data1, size_t len1, const void *_data2, size_t len2)</td></tr>
<tr class="separator:a8b64cdb63293a1ca608bc2c735c20e7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd57e87870f41cc8fc8c7b5560be2a1f"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#acd57e87870f41cc8fc8c7b5560be2a1f">bstr_util_mem_to_pint</a> (const void *_data, size_t len, int base, size_t *lastlen)</td></tr>
<tr class="separator:acd57e87870f41cc8fc8c7b5560be2a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0efde465998e6ccdf4153f6eefbfad75"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a0efde465998e6ccdf4153f6eefbfad75">bstr_util_mem_index_of_c</a> (const void *_data1, size_t len1, const char *cstr)</td></tr>
<tr class="separator:a0efde465998e6ccdf4153f6eefbfad75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97537e1359bd2a5bd9f936cc5b661fe4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a97537e1359bd2a5bd9f936cc5b661fe4">bstr_util_mem_index_of_c_nocase</a> (const void *_data1, size_t len1, const char *cstr)</td></tr>
<tr class="separator:a97537e1359bd2a5bd9f936cc5b661fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4b59f20a0dd5394b5d473489266876e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ab4b59f20a0dd5394b5d473489266876e">bstr_util_mem_index_of_mem</a> (const void *_data1, size_t len1, const void *_data2, size_t len2)</td></tr>
<tr class="separator:ab4b59f20a0dd5394b5d473489266876e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad332cef17534e512e8cffa83a504b3b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#aad332cef17534e512e8cffa83a504b3b">bstr_util_mem_index_of_mem_nocase</a> (const void *_data1, size_t len1, const void *_data2, size_t len2)</td></tr>
<tr class="separator:aad332cef17534e512e8cffa83a504b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91e327898a25d3ade3e38ab1e9d354fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a91e327898a25d3ade3e38ab1e9d354fe">bstr_util_mem_trim</a> (unsigned char **data, size_t *len)</td></tr>
<tr class="separator:a91e327898a25d3ade3e38ab1e9d354fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12be3db0383ce7d9393f5cd05e640138"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a12be3db0383ce7d9393f5cd05e640138">bstr_util_memdup_to_c</a> (const void *_data, size_t len)</td></tr>
<tr class="separator:a12be3db0383ce7d9393f5cd05e640138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a867e836ea62c9e3dd24780e8c51a635a"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#a867e836ea62c9e3dd24780e8c51a635a">bstr_util_strdup_to_c</a> (const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *b)</td></tr>
<tr class="separator:a867e836ea62c9e3dd24780e8c51a635a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8e448f0df697509f854f1ea5a51a33f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#ae8e448f0df697509f854f1ea5a51a33f">bstr_wrap_c</a> (const char *cstr)</td></tr>
<tr class="separator:ae8e448f0df697509f854f1ea5a51a33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1ccc71707d9fe77f4f24c639191a6f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bstr_8c.html#af1ccc71707d9fe77f4f24c639191a6f4">bstr_wrap_mem</a> (const void *data, size_t len)</td></tr>
<tr class="separator:af1ccc71707d9fe77f4f24c639191a6f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Ivan Ristic <a href="#" onclick="location.href='mai'+'lto:'+'iva'+'nr'+'@we'+'bk'+'rea'+'to'+'r.c'+'om'; return false;">ivanr<span style="display: none;">.nosp@m.</span>@web<span style="display: none;">.nosp@m.</span>kreat<span style="display: none;">.nosp@m.</span>or.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="aebff13ea048f6c632e8b5cb85879480c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bdestination</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bsource</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Append source bstring to destination bstring, growing destination if necessary. If the destination bstring is expanded, the pointer will change. You must replace the original destination pointer with the returned one. Destination is not changed on memory allocation failure.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bdestination</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bsource</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Updated bstring, or NULL on memory allocation failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a28d8a05819a40c6f19dba8ab7d4f4c26"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_add_c </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Append a NUL-terminated source to destination, growing destination if necessary. If the string is expanded, the pointer will change. You must replace the original destination pointer with the returned one. Destination is not changed on memory allocation failure.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Updated bstring, or NULL on memory allocation failure. </dd></dl>

</div>
</div>
<a class="anchor" id="adac130490755d97728f1c2e6b6330333"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_add_c_noex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Append as many bytes from the source to destination bstring. The destination storage will not be expanded if there is not enough space in it already to accommodate all of the data.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The destination bstring. </dd></dl>

</div>
</div>
<a class="anchor" id="a87094fb0fdfd15f430caa0e91d091511"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_add_mem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Append a memory region to destination, growing destination if necessary. If the string is expanded, the pointer will change. You must replace the original destination pointer with the returned one. Destination is not changed on memory allocation failure.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Updated bstring, or NULL on memory allocation failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a5dc5d24b60cf123df96b274b7d5bb567"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_add_mem_noex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Append as many bytes from the source to destination bstring. The destination storage will not be expanded if there is not enough space in it already to accommodate all of the data.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The destination bstring. </dd></dl>

</div>
</div>
<a class="anchor" id="acbbec871f8fd06709d92af6892b264a2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_add_noex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bdestination</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bsource</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Append as many bytes from the source bstring to destination bstring. The destination storage will not be expanded if there is not enough space in it already to accommodate all of the data.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bdestination</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bsource</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The destination bstring. </dd></dl>

</div>
</div>
<a class="anchor" id="ad6bdcaadaf0034880584515edbca2427"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void bstr_adjust_len </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>newlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Adjust bstring length. You will need to use this method whenever you work directly with the string contents, and end up changing its length by direct structure manipulation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newlen</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af3f9aa44f3a6948d66ca875432b7a255"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void bstr_adjust_realptr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>newrealptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change the external pointer used by bstring. You will need to use this function only if you're messing with bstr internals. Use with caution.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newrealptr</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac28786b1f330ae5992293ba028db9936"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void bstr_adjust_size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>newsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Adjust bstring size. This does not change the size of the storage behind the bstring, just changes the field that keeps track of how many bytes there are in the storage. You will need to use this function only if you're messing with bstr internals. Use with caution.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newsize</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6b551b4e84311c0608d2a359440d9118"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_alloc </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Allocate a zero-length bstring, reserving space for at least size bytes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New string instance </dd></dl>

</div>
</div>
<a class="anchor" id="a03b158d860b3709218556a3051d7bdeb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_begins_with </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Checks whether bstring begins with another bstring. Case sensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if true, otherwise 0. </dd></dl>

</div>
</div>
<a class="anchor" id="a4bff516fbecb8a3863502a8dfd95f50b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_begins_with_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Checks whether bstring begins with NUL-terminated string. Case sensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if true, otherwise 0. </dd></dl>

</div>
</div>
<a class="anchor" id="a9f8f76b7017594ec0c29a5abbb2cf484"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_begins_with_c_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Checks whether bstring begins with NUL-terminated string. Case insensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if true, otherwise 0. </dd></dl>

</div>
</div>
<a class="anchor" id="ab7d6c173fd90255dffac7bd702048563"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_begins_with_mem </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Checks whether the bstring begins with the given memory block. Case sensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if true, otherwise 0. </dd></dl>

</div>
</div>
<a class="anchor" id="a77fd09883e293c0bd94fabe9b6949374"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_begins_with_mem_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Checks whether bstring begins with memory block. Case insensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if true, otherwise 0. </dd></dl>

</div>
</div>
<a class="anchor" id="acb576d190ef0c1a5a336ba34d352bc0a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_begins_with_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>cneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Checks whether bstring begins with another bstring. Case insensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if true, otherwise 0. </dd></dl>

</div>
</div>
<a class="anchor" id="a0164a6d51901a909e3ae473ecc8b8a42"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_char_at </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>pos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the byte at the given position.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The byte at the given location, or -1 if the position is out of range. </dd></dl>

</div>
</div>
<a class="anchor" id="a8eb4cfb22e61753899620617f200a36c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_char_at_end </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>pos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the byte at the given position, counting from the end of the string (e.g., byte at position 0 is the last byte in the string.)</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The byte at the given location, or -1 if the position is out of range. </dd></dl>

</div>
</div>
<a class="anchor" id="ae7440589d0619590384aa3ac7070ba89"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void bstr_chop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Remove the last byte from bstring, assuming it contains at least one byte. This function will not reduce the storage that backs the string, only the amount of data used.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a75dc35dde15052db45ac0496e33b76ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_chr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#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>Return the first position of the provided byte.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The first position of the byte, or -1 if it could not be found </dd></dl>

</div>
</div>
<a class="anchor" id="a8bac22bafd8fdc42aba04a50218bb14f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_cmp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Case-sensitive comparison of two bstrings.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b1</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b2</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero on string match, 1 if b1 is greater than b2, and -1 if b2 is greater than b1. </dd></dl>

</div>
</div>
<a class="anchor" id="a7ac48f2b29c76130b28bc2fa8280ce49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_cmp_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Case-sensitive comparison of a bstring and a NUL-terminated string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero on string match, 1 if b is greater than cstr, and -1 if cstr is greater than b. </dd></dl>

</div>
</div>
<a class="anchor" id="a37ec2adc98a8251ee1ab49cf9f6f5050"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_cmp_c_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Case-insensitive comparison of a bstring with a NUL-terminated string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero on string match, 1 if b is greater than cstr, and -1 if cstr is greater than b. </dd></dl>

</div>
</div>
<a class="anchor" id="a2ac2b78d0f24179d733f2a9b11ec2efd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_cmp_mem </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Performs a case-sensitive comparison of a bstring with a memory region.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero ona match, 1 if b is greater than data, and -1 if data is greater than b. </dd></dl>

</div>
</div>
<a class="anchor" id="a9102c361d1a16e943beadc60162cc123"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_cmp_mem_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Performs a case-insensitive comparison of a bstring with a memory region.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero ona match, 1 if b is greater than data, and -1 if data is greater than b. </dd></dl>

</div>
</div>
<a class="anchor" id="a4d6765fb2a88a0f2bac4e41bee24c294"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_cmp_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Case-insensitive comparison two bstrings.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b1</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">b2</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero on string match, 1 if b1 is greater than b2, and -1 if b2 is greater than b1. </dd></dl>

</div>
</div>
<a class="anchor" id="ab4fc824d8df74ad6863a085f3901d30f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_dup </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a new bstring by copying the provided bstring.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New bstring, or NULL if memory allocation failed. </dd></dl>

</div>
</div>
<a class="anchor" id="a97c6e59a9a439d6f6c42a154c4059036"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_dup_c </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a new bstring by copying the provided NUL-terminated string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New bstring, or NULL if memory allocation failed. </dd></dl>

</div>
</div>
<a class="anchor" id="abaf68b4b27be54655cba0d74c24646c1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_dup_ex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Create a new bstring by copying a part of the provided bstring.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New bstring, or NULL if memory allocation failed. </dd></dl>

</div>
</div>
<a class="anchor" id="ad866778a2b2da1cee5a668f7e3bb99de"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_dup_lower </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a copy of the provided bstring, then convert it to lowercase.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New bstring, or NULL if memory allocation failed </dd></dl>

</div>
</div>
<a class="anchor" id="ae558f2c20b24baa62f84a3ee820b2b2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_dup_mem </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Create a new bstring by copying the provided memory region.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New bstring, or NULL if memory allocation failed </dd></dl>

</div>
</div>
<a class="anchor" id="a51bc377ac30a1092e84a4c3ab3d289f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_expand </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>newsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Expand internal bstring storage to support at least newsize bytes. The storage is not expanded if the current size is equal or greater to newsize. Because realloc is used underneath, the old pointer to bstring may no longer be valid after this function completes successfully.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newsize</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Updated string instance, or NULL if memory allocation failed or if attempt was made to "expand" the bstring to a smaller size. </dd></dl>

</div>
</div>
<a class="anchor" id="a1b9ca92f8699af4136e5d1ed38ff73b0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void bstr_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Deallocate the supplied bstring instance and set it to NULL. Allows NULL on input.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aefffbd824e98b2fb60e46b1d7df2491e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_index_of </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Find the needle in the haystack.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position of the match, or -1 if the needle could not be found. </dd></dl>

</div>
</div>
<a class="anchor" id="a551bf6b9c6e525d0dab1f88333282e49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_index_of_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Find the needle in the haystack, with the needle being a NUL-terminated string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position of the match, or -1 if the needle could not be found. </dd></dl>

</div>
</div>
<a class="anchor" id="a6b6507af551bc83e9b7deed498b05a6d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_index_of_c_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Find the needle in the haystack, with the needle being a NUL-terminated string. Ignore case differences.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position of the match, or -1 if the needle could not be found. </dd></dl>

</div>
</div>
<a class="anchor" id="aa238aa33ea17945c0c9a39edb92b5aca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_index_of_mem </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Find the needle in the haystack, with the needle being a memory region.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position of the match, or -1 if the needle could not be found. </dd></dl>

</div>
</div>
<a class="anchor" id="a14a2c058f22c778fe533be58c1bf5513"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_index_of_mem_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Find the needle in the haystack, with the needle being a memory region. Ignore case differences.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position of the match, or -1 if the needle could not be found. </dd></dl>

</div>
</div>
<a class="anchor" id="a5ad3ab56d57f8a814cbbffbef95bfb0d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_index_of_nocase </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bhaystack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>bneedle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Find the needle in the haystack, ignoring case differences.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bhaystack</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bneedle</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position of the match, or -1 if the needle could not be found. </dd></dl>

</div>
</div>
<a class="anchor" id="a386a3b3959b594ae718792268125abf7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_rchr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#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>Return the last position of a character (byte).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The last position of the character, or -1 if it could not be found. </dd></dl>

</div>
</div>
<a class="anchor" id="a8efd20da92a9a40fee8a40bdcdfb194f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_to_lowercase </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convert bstring to lowercase. This function converts the supplied string, it does not create a new string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The same bstring received on input </dd></dl>

</div>
</div>
<a class="anchor" id="a3ca71904a637298a23cfbd97737fde70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_util_cmp_mem </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Case-sensitive comparison of two memory regions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data1</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len1</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data2</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len2</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero if the memory regions are identical, 1 if data1 is greater than data2, and -1 if data2 is greater than data1. </dd></dl>

</div>
</div>
<a class="anchor" id="a8b64cdb63293a1ca608bc2c735c20e7d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_util_cmp_mem_nocase </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Case-insensitive comparison of two memory regions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data1</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len1</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data2</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len2</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Zero if the memory regions are identical, 1 if data1 is greater than data2, and -1 if data2 is greater than data1. </dd></dl>

</div>
</div>
<a class="anchor" id="a0efde465998e6ccdf4153f6eefbfad75"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_util_mem_index_of_c </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Searches a memory block for the given NUL-terminated string. Case sensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index of the first location of the needle on success, or -1 if the needle was not found. </dd></dl>

</div>
</div>
<a class="anchor" id="a97537e1359bd2a5bd9f936cc5b661fe4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_util_mem_index_of_c_nocase </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Searches a memory block for the given NUL-terminated string. Case insensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index of the first location of the needle on success, or -1 if the needle was not found. </dd></dl>

</div>
</div>
<a class="anchor" id="ab4b59f20a0dd5394b5d473489266876e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_util_mem_index_of_mem </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Searches the haystack memory block for the needle memory block. Case sensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data1</td><td></td></tr>
    <tr><td class="paramname">len1</td><td></td></tr>
    <tr><td class="paramname">data2</td><td></td></tr>
    <tr><td class="paramname">len2</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index of the first location of the needle on success, or -1 if the needle was not found. </dd></dl>

</div>
</div>
<a class="anchor" id="aad332cef17534e512e8cffa83a504b3b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int bstr_util_mem_index_of_mem_nocase </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Searches the haystack memory block for the needle memory block. Case sensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data1</td><td></td></tr>
    <tr><td class="paramname">len1</td><td></td></tr>
    <tr><td class="paramname">data2</td><td></td></tr>
    <tr><td class="paramname">len2</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index of the first location of the needle on success, or -1 if the needle was not found. </dd></dl>

</div>
</div>
<a class="anchor" id="acd57e87870f41cc8fc8c7b5560be2a1f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int64_t bstr_util_mem_to_pint </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>lastlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convert contents of a memory region to a positive integer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>The desired number base. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">lastlen</td><td>Points to the first unused byte in the region </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>If the conversion was successful, this function returns the number. When the conversion fails, -1 will be returned when not one valid digit was found, and -2 will be returned if an overflow occurred. </dd></dl>

</div>
</div>
<a class="anchor" id="a91e327898a25d3ade3e38ab1e9d354fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void bstr_util_mem_trim </td>
          <td>(</td>
          <td class="paramtype">unsigned char **&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#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>Removes whitespace from the beginning and the end of a memory region. The data itself is not modified; this function only adjusts the provided pointers.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a12be3db0383ce7d9393f5cd05e640138"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* bstr_util_memdup_to_c </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Take the provided memory region, allocate a new memory buffer, and construct a NUL-terminated string, replacing each NUL byte with "\0" (two bytes). The caller is responsible to keep track of the allocated memory area and free it once it is no longer needed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The newly created NUL-terminated string, or NULL in case of memory allocation failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a867e836ea62c9e3dd24780e8c51a635a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* bstr_util_strdup_to_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a> *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a new NUL-terminated string out of the provided bstring. If NUL bytes are contained in the bstring, each will be replaced with "\0" (two characters). The caller is responsible to keep track of the allocated memory area and free it once it is no longer needed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The newly created NUL-terminated string, or NULL in case of memory allocation failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ae8e448f0df697509f854f1ea5a51a33f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_wrap_c </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cstr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a new bstring from the provided NUL-terminated string and without copying the data. The caller must ensure that the input string continues to point to a valid memory location for as long as the bstring is used.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cstr</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New bstring, or NULL on memory allocation failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af1ccc71707d9fe77f4f24c639191a6f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bstr_8h.html#ad24e3759c8d17c13ae2f05d9dde4d0b6">bstr</a>* bstr_wrap_mem </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#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>Create a new bstring from the provided memory buffer without copying the data. The caller must ensure that the buffer remains valid for as long as the bstring is used.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New bstring, or NULL on memory allocation failure. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<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.8.6
</small></address>
</body>
</html>