Sophie

Sophie

distrib > Fedora > 13 > i386 > media > os > by-pkgid > ba2dfbbbbde4620e3579a4df2bdd369e > files > 17

uriparser-devel-0.7.5-2.fc12.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>uriparser: Uri.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Uri.h File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUriTextRangeStructA.html">UriTextRangeStructA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUriPathSegmentStructA.html">UriPathSegmentStructA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUriHostDataStructA.html">UriHostDataStructA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUriUriStructA.html">UriUriStructA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUriParserStateStructA.html">UriParserStateStructA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUriQueryListStructA.html">UriQueryListStructA</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structUriTextRangeStructA.html">UriTextRangeStructA</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#9935a3bf53b423da6d6b904858318650">UriTextRangeA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br class="typebreak">
<a class="el" href="structUriPathSegmentStructA.html">UriPathSegmentStructA</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#df287c1ee8da6f2d635e2049bcf72f61">UriPathSegmentA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structUriHostDataStructA.html">UriHostDataStructA</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#94d90c775fbcd848d7a83fa05ebd660e">UriHostDataA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structUriUriStructA.html">UriUriStructA</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#924841de923bfc02670dfee96cd25e62">UriUriA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br class="typebreak">
<a class="el" href="structUriParserStateStructA.html">UriParserStateStructA</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#eca8bf10221333215c74cfba8cb9f07e">UriParserStateA</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structUriQueryListStructA.html">UriQueryListStructA</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#1335bc95ae284b1e0918d5b27e783389">UriQueryListA</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#bbca234320ee65d6fb7aec729b843277">uriParseUriExA</a> (<a class="el" href="structUriParserStateStructA.html">UriParserStateA</a> *state, const char *first, const char *afterLast)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#b16a86cc9956c40da5a97007c0fd4802">uriParseUriA</a> (<a class="el" href="structUriParserStateStructA.html">UriParserStateA</a> *state, const char *text)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#a5f2edbe34fcde379ccca4fe3fadcd48">uriFreeUriMembersA</a> (<a class="el" href="structUriUriStructA.html">UriUriA</a> *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#9abcd27c7cb19d637ca74e722aad68a1">uriEscapeExA</a> (const char *inFirst, const char *inAfterLast, char *out, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> spaceToPlus, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> normalizeBreaks)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#0d501e7c2a6abe76b729ea72e123dea8">uriEscapeA</a> (const char *in, char *out, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> spaceToPlus, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> normalizeBreaks)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#b11acf439a838875d1d263964bfbbd12">uriUnescapeInPlaceExA</a> (char *inout, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> plusToSpace, <a class="el" href="UriBase_8h.html#223a6e1bb23228775573726aa73d018e">UriBreakConversion</a> breakConversion)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#e80c5d0494b94b61bf0f6cb349b18a36">uriUnescapeInPlaceA</a> (char *inout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#4bcf2a1fa28bb86443f2b61561e692a7">uriAddBaseUriA</a> (<a class="el" href="structUriUriStructA.html">UriUriA</a> *absoluteDest, const <a class="el" href="structUriUriStructA.html">UriUriA</a> *relativeSource, const <a class="el" href="structUriUriStructA.html">UriUriA</a> *absoluteBase)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#4a14ec47aeeadd9ff7a5e381a10234a0">uriRemoveBaseUriA</a> (<a class="el" href="structUriUriStructA.html">UriUriA</a> *dest, const <a class="el" href="structUriUriStructA.html">UriUriA</a> *absoluteSource, const <a class="el" href="structUriUriStructA.html">UriUriA</a> *absoluteBase, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> domainRootMode)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#6840bd1ddfbf073e215a8137df0350e4">uriEqualsUriA</a> (const <a class="el" href="structUriUriStructA.html">UriUriA</a> *a, const <a class="el" href="structUriUriStructA.html">UriUriA</a> *b)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#e57c60e8166c44163af6d0434329fe73">uriToStringCharsRequiredA</a> (const <a class="el" href="structUriUriStructA.html">UriUriA</a> *uri, int *charsRequired)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#4a9539cfdd85866a1ef6916c631f8bc2">uriToStringA</a> (char *dest, const <a class="el" href="structUriUriStructA.html">UriUriA</a> *uri, int maxChars, int *charsWritten)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#8de8c90c3655e547cddcd50c663587fb">uriNormalizeSyntaxMaskRequiredA</a> (const <a class="el" href="structUriUriStructA.html">UriUriA</a> *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#bfcb66bec6bb0066fb086174692d5710">uriNormalizeSyntaxExA</a> (<a class="el" href="structUriUriStructA.html">UriUriA</a> *uri, unsigned int mask)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#50176d4c0c0fb7d40e0e4990d0c7d7bf">uriNormalizeSyntaxA</a> (<a class="el" href="structUriUriStructA.html">UriUriA</a> *uri)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#b394fe8e5e9b6863e4dfd2ae6b464960">uriUnixFilenameToUriStringA</a> (const char *filename, char *uriString)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#4a071c1c4867b49b122dc4fcb1d3021a">uriWindowsFilenameToUriStringA</a> (const char *filename, char *uriString)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#26920c57a9ad92041bc797c29b7bdb92">uriUriStringToUnixFilenameA</a> (const char *uriString, char *filename)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#b9cd18296649e2443495e26f661e1313">uriUriStringToWindowsFilenameA</a> (const char *uriString, char *filename)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#7fd4395b984b9d9519ee2d2aba186613">uriComposeQueryCharsRequiredA</a> (const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *queryList, int *charsRequired)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#055ad1ab4778d0a49f7b83c45a7757fc">uriComposeQueryCharsRequiredExA</a> (const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *queryList, int *charsRequired, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> spaceToPlus, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> normalizeBreaks)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#5d79be075b94fd3292844feb107e0b75">uriComposeQueryA</a> (char *dest, const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *queryList, int maxChars, int *charsWritten)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#444166408d1230bd9ac04dbedd7bd542">uriComposeQueryExA</a> (char *dest, const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *queryList, int maxChars, int *charsWritten, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> spaceToPlus, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> normalizeBreaks)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#e6d0418cd68496c060b6aa10ef578eb9">uriComposeQueryMallocA</a> (char **dest, const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *queryList)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#b7ed8a0fe507d2a74c376d39c0933aa8">uriComposeQueryMallocExA</a> (char **dest, const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *queryList, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> spaceToPlus, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> normalizeBreaks)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#395240e558a980019bf02cc7518ee524">uriDissectQueryMallocA</a> (<a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> **dest, int *itemCount, const char *first, const char *afterLast)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#f2f39326e3e43d915d21ca571a1f4f87">uriDissectQueryMallocExA</a> (<a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> **dest, int *itemCount, const char *first, const char *afterLast, <a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> plusToSpace, <a class="el" href="UriBase_8h.html#223a6e1bb23228775573726aa73d018e">UriBreakConversion</a> breakConversion)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Uri_8h.html#692a7f1c4e37180050257025473b2f7a">uriFreeQueryListA</a> (<a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *queryList)</td></tr>

</table>
<hr><h2>Detailed Description</h2>
Holds the RFC 3986 URI parser interface. NOTE: This header includes itself twice. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="94d90c775fbcd848d7a83fa05ebd660e"></a><!-- doxytag: member="Uri.h::UriHostDataA" ref="94d90c775fbcd848d7a83fa05ebd660e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUriHostDataStructA.html">UriHostDataStructA</a>  <a class="el" href="structUriHostDataStructA.html">UriHostDataA</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Holds structured host information. This is either a IPv4, IPv6, plain text for IPvFuture or all zero for a registered name.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#924841de923bfc02670dfee96cd25e62">UriUriA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 Holds structured host information. This is either a IPv4, IPv6, plain text for IPvFuture or all zero for a registered name. </dd></dl>

</div>
</div><p>
<a class="anchor" name="eca8bf10221333215c74cfba8cb9f07e"></a><!-- doxytag: member="Uri.h::UriParserStateA" ref="eca8bf10221333215c74cfba8cb9f07e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUriParserStateStructA.html">UriParserStateStructA</a>  <a class="el" href="structUriParserStateStructA.html">UriParserStateA</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Represents a state of the URI parser. Missing components can be NULL to reflect a components absence.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#a5f2edbe34fcde379ccca4fe3fadcd48">uriFreeUriMembersA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 Represents a state of the URI parser. Missing components can be NULL to reflect a components absence. </dd></dl>

</div>
</div><p>
<a class="anchor" name="df287c1ee8da6f2d635e2049bcf72f61"></a><!-- doxytag: member="Uri.h::UriPathSegmentA" ref="df287c1ee8da6f2d635e2049bcf72f61" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUriPathSegmentStructA.html">UriPathSegmentStructA</a>  <a class="el" href="structUriPathSegmentStructA.html">UriPathSegmentA</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Represents a path segment within a URI path. More precisely it is a node in a linked list of path segments.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#924841de923bfc02670dfee96cd25e62">UriUriA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 Represents a path segment within a URI path. More precisely it is a node in a linked list of path segments. </dd></dl>

</div>
</div><p>
<a class="anchor" name="1335bc95ae284b1e0918d5b27e783389"></a><!-- doxytag: member="Uri.h::UriQueryListA" ref="1335bc95ae284b1e0918d5b27e783389" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUriQueryListStructA.html">UriQueryListStructA</a>  <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Represents a query element. More precisely it is a node in a linked list of query elements.<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 Represents a query element. More precisely it is a node in a linked list of query elements. </dd></dl>

</div>
</div><p>
<a class="anchor" name="9935a3bf53b423da6d6b904858318650"></a><!-- doxytag: member="Uri.h::UriTextRangeA" ref="9935a3bf53b423da6d6b904858318650" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUriTextRangeStructA.html">UriTextRangeStructA</a>  <a class="el" href="structUriTextRangeStructA.html">UriTextRangeA</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Specifies a range of characters within a string. The range includes all characters from <code>first</code> to one before <code>afterLast</code>. So if both are non-NULL the difference is the length of the text range.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#924841de923bfc02670dfee96cd25e62">UriUriA</a> <p>
<a class="el" href="Uri_8h.html#df287c1ee8da6f2d635e2049bcf72f61">UriPathSegmentA</a> <p>
<a class="el" href="Uri_8h.html#94d90c775fbcd848d7a83fa05ebd660e">UriHostDataA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 Specifies a range of characters within a string. The range includes all characters from <code>first</code> to one before <code>afterLast</code>. So if both are non-NULL the difference is the length of the text range. </dd></dl>

</div>
</div><p>
<a class="anchor" name="924841de923bfc02670dfee96cd25e62"></a><!-- doxytag: member="Uri.h::UriUriA" ref="924841de923bfc02670dfee96cd25e62" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUriUriStructA.html">UriUriStructA</a>  <a class="el" href="structUriUriStructA.html">UriUriA</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Represents an RFC 3986 URI. Missing components can be {NULL, NULL} ranges.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#b16a86cc9956c40da5a97007c0fd4802">uriParseUriA</a> <p>
<a class="el" href="Uri_8h.html#a5f2edbe34fcde379ccca4fe3fadcd48">uriFreeUriMembersA</a> <p>
<a class="el" href="Uri_8h.html#eca8bf10221333215c74cfba8cb9f07e">UriParserStateA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 Represents an RFC 3986 URI. Missing components can be {NULL, NULL} ranges. </dd></dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="4bcf2a1fa28bb86443f2b61561e692a7"></a><!-- doxytag: member="Uri.h::uriAddBaseUriA" ref="4bcf2a1fa28bb86443f2b61561e692a7" args="(UriUriA *absoluteDest, const UriUriA *relativeSource, const UriUriA *absoluteBase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriAddBaseUriA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>absoluteDest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>relativeSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>absoluteBase</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Performs reference resolution as described in <a href="http://tools.ietf.org/html/rfc3986#section-5.2.2">section 5.2.2 of RFC 3986</a>. NOTE: On success you have to call uriFreeUriMembersA on <code>absoluteDest</code> manually later.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>absoluteDest</em>&nbsp;</td><td><b>OUT</b>: Result URI </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>relativeSource</em>&nbsp;</td><td><b>IN</b>: Reference to resolve </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>absoluteBase</em>&nbsp;</td><td><b>IN</b>: Base URI to apply </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#4a14ec47aeeadd9ff7a5e381a10234a0">uriRemoveBaseUriA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.4.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="5d79be075b94fd3292844feb107e0b75"></a><!-- doxytag: member="Uri.h::uriComposeQueryA" ref="5d79be075b94fd3292844feb107e0b75" args="(char *dest, const UriQueryListA *queryList, int maxChars, int *charsWritten)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriComposeQueryA           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *&nbsp;</td>
          <td class="paramname"> <em>queryList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>maxChars</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>charsWritten</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a query list structure back to a query string. The composed string does not start with '?', on the way ' ' is converted to '+' and line breaks are normalized to "%0D%0A".<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Output destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>queryList</em>&nbsp;</td><td><b>IN</b>: Query list to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxChars</em>&nbsp;</td><td><b>IN</b>: Maximum number of characters to copy <b>including</b> terminator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>charsWritten</em>&nbsp;</td><td><b>OUT</b>: Number of characters written, can be lower than maxChars even if the query list is too long! </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#444166408d1230bd9ac04dbedd7bd542">uriComposeQueryExA</a> <p>
<a class="el" href="Uri_8h.html#e6d0418cd68496c060b6aa10ef578eb9">uriComposeQueryMallocA</a> <p>
<a class="el" href="Uri_8h.html#7fd4395b984b9d9519ee2d2aba186613">uriComposeQueryCharsRequiredA</a> <p>
<a class="el" href="Uri_8h.html#395240e558a980019bf02cc7518ee524">uriDissectQueryMallocA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="7fd4395b984b9d9519ee2d2aba186613"></a><!-- doxytag: member="Uri.h::uriComposeQueryCharsRequiredA" ref="7fd4395b984b9d9519ee2d2aba186613" args="(const UriQueryListA *queryList, int *charsRequired)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriComposeQueryCharsRequiredA           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *&nbsp;</td>
          <td class="paramname"> <em>queryList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>charsRequired</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculates the number of characters needed to store the string representation of the given query list excluding the terminator. It is assumed that line breaks are will be normalized to "%0D%0A".<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>queryList</em>&nbsp;</td><td><b>IN</b>: Query list to measure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>charsRequired</em>&nbsp;</td><td><b>OUT</b>: Length of the string representation in characters <b>excluding</b> terminator </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#055ad1ab4778d0a49f7b83c45a7757fc">uriComposeQueryCharsRequiredExA</a> <p>
<a class="el" href="Uri_8h.html#5d79be075b94fd3292844feb107e0b75">uriComposeQueryA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="055ad1ab4778d0a49f7b83c45a7757fc"></a><!-- doxytag: member="Uri.h::uriComposeQueryCharsRequiredExA" ref="055ad1ab4778d0a49f7b83c45a7757fc" args="(const UriQueryListA *queryList, int *charsRequired, UriBool spaceToPlus, UriBool normalizeBreaks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriComposeQueryCharsRequiredExA           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *&nbsp;</td>
          <td class="paramname"> <em>queryList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>charsRequired</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>spaceToPlus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>normalizeBreaks</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculates the number of characters needed to store the string representation of the given query list excluding the terminator.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>queryList</em>&nbsp;</td><td><b>IN</b>: Query list to measure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>charsRequired</em>&nbsp;</td><td><b>OUT</b>: Length of the string representation in characters <b>excluding</b> terminator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>spaceToPlus</em>&nbsp;</td><td><b>IN</b>: Wether to convert ' ' to '+' or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>normalizeBreaks</em>&nbsp;</td><td><b>IN</b>: Wether to convert CR and LF to CR-LF or not. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#7fd4395b984b9d9519ee2d2aba186613">uriComposeQueryCharsRequiredA</a> <p>
<a class="el" href="Uri_8h.html#444166408d1230bd9ac04dbedd7bd542">uriComposeQueryExA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="444166408d1230bd9ac04dbedd7bd542"></a><!-- doxytag: member="Uri.h::uriComposeQueryExA" ref="444166408d1230bd9ac04dbedd7bd542" args="(char *dest, const UriQueryListA *queryList, int maxChars, int *charsWritten, UriBool spaceToPlus, UriBool normalizeBreaks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriComposeQueryExA           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *&nbsp;</td>
          <td class="paramname"> <em>queryList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>maxChars</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>charsWritten</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>spaceToPlus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>normalizeBreaks</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a query list structure back to a query string. The composed string does not start with '?'.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Output destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>queryList</em>&nbsp;</td><td><b>IN</b>: Query list to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxChars</em>&nbsp;</td><td><b>IN</b>: Maximum number of characters to copy <b>including</b> terminator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>charsWritten</em>&nbsp;</td><td><b>OUT</b>: Number of characters written, can be lower than maxChars even if the query list is too long! </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>spaceToPlus</em>&nbsp;</td><td><b>IN</b>: Wether to convert ' ' to '+' or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>normalizeBreaks</em>&nbsp;</td><td><b>IN</b>: Wether to convert CR and LF to CR-LF or not. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#5d79be075b94fd3292844feb107e0b75">uriComposeQueryA</a> <p>
<a class="el" href="Uri_8h.html#b7ed8a0fe507d2a74c376d39c0933aa8">uriComposeQueryMallocExA</a> <p>
<a class="el" href="Uri_8h.html#055ad1ab4778d0a49f7b83c45a7757fc">uriComposeQueryCharsRequiredExA</a> <p>
<a class="el" href="Uri_8h.html#f2f39326e3e43d915d21ca571a1f4f87">uriDissectQueryMallocExA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="e6d0418cd68496c060b6aa10ef578eb9"></a><!-- doxytag: member="Uri.h::uriComposeQueryMallocA" ref="e6d0418cd68496c060b6aa10ef578eb9" args="(char **dest, const UriQueryListA *queryList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriComposeQueryMallocA           </td>
          <td>(</td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *&nbsp;</td>
          <td class="paramname"> <em>queryList</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a query list structure back to a query string. Memory for this string is allocated internally. The composed string does not start with '?', on the way ' ' is converted to '+' and line breaks are normalized to "%0D%0A".<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Output destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>queryList</em>&nbsp;</td><td><b>IN</b>: Query list to convert </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#b7ed8a0fe507d2a74c376d39c0933aa8">uriComposeQueryMallocExA</a> <p>
<a class="el" href="Uri_8h.html#5d79be075b94fd3292844feb107e0b75">uriComposeQueryA</a> <p>
<a class="el" href="Uri_8h.html#395240e558a980019bf02cc7518ee524">uriDissectQueryMallocA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="b7ed8a0fe507d2a74c376d39c0933aa8"></a><!-- doxytag: member="Uri.h::uriComposeQueryMallocExA" ref="b7ed8a0fe507d2a74c376d39c0933aa8" args="(char **dest, const UriQueryListA *queryList, UriBool spaceToPlus, UriBool normalizeBreaks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriComposeQueryMallocExA           </td>
          <td>(</td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *&nbsp;</td>
          <td class="paramname"> <em>queryList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>spaceToPlus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>normalizeBreaks</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a query list structure back to a query string. Memory for this string is allocated internally. The composed string does not start with '?'.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Output destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>queryList</em>&nbsp;</td><td><b>IN</b>: Query list to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>spaceToPlus</em>&nbsp;</td><td><b>IN</b>: Wether to convert ' ' to '+' or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>normalizeBreaks</em>&nbsp;</td><td><b>IN</b>: Wether to convert CR and LF to CR-LF or not. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#e6d0418cd68496c060b6aa10ef578eb9">uriComposeQueryMallocA</a> <p>
<a class="el" href="Uri_8h.html#444166408d1230bd9ac04dbedd7bd542">uriComposeQueryExA</a> <p>
<a class="el" href="Uri_8h.html#f2f39326e3e43d915d21ca571a1f4f87">uriDissectQueryMallocExA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="395240e558a980019bf02cc7518ee524"></a><!-- doxytag: member="Uri.h::uriDissectQueryMallocA" ref="395240e558a980019bf02cc7518ee524" args="(UriQueryListA **dest, int *itemCount, const char *first, const char *afterLast)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriDissectQueryMallocA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> **&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>itemCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>afterLast</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructs a query list from the raw query string of a given URI. On the way '+' is converted back to ' ', line breaks are not modified.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Output destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>itemCount</em>&nbsp;</td><td><b>OUT</b>: Number of items found, can be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td><b>IN</b>: Pointer to first character <b>after</b> '?' </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>afterLast</em>&nbsp;</td><td><b>IN</b>: Pointer to character after the last one still in </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#f2f39326e3e43d915d21ca571a1f4f87">uriDissectQueryMallocExA</a> <p>
<a class="el" href="Uri_8h.html#5d79be075b94fd3292844feb107e0b75">uriComposeQueryA</a> <p>
<a class="el" href="Uri_8h.html#692a7f1c4e37180050257025473b2f7a">uriFreeQueryListA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="f2f39326e3e43d915d21ca571a1f4f87"></a><!-- doxytag: member="Uri.h::uriDissectQueryMallocExA" ref="f2f39326e3e43d915d21ca571a1f4f87" args="(UriQueryListA **dest, int *itemCount, const char *first, const char *afterLast, UriBool plusToSpace, UriBreakConversion breakConversion)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriDissectQueryMallocExA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> **&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>itemCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>afterLast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>plusToSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#223a6e1bb23228775573726aa73d018e">UriBreakConversion</a>&nbsp;</td>
          <td class="paramname"> <em>breakConversion</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructs a query list from the raw query string of a given URI.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Output destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>itemCount</em>&nbsp;</td><td><b>OUT</b>: Number of items found, can be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td><b>IN</b>: Pointer to first character <b>after</b> '?' </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>afterLast</em>&nbsp;</td><td><b>IN</b>: Pointer to character after the last one still in </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plusToSpace</em>&nbsp;</td><td><b>IN</b>: Whether to convert '+' to ' ' or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>breakConversion</em>&nbsp;</td><td><b>IN</b>: Line break conversion mode </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#395240e558a980019bf02cc7518ee524">uriDissectQueryMallocA</a> <p>
<a class="el" href="Uri_8h.html#444166408d1230bd9ac04dbedd7bd542">uriComposeQueryExA</a> <p>
<a class="el" href="Uri_8h.html#692a7f1c4e37180050257025473b2f7a">uriFreeQueryListA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="6840bd1ddfbf073e215a8137df0350e4"></a><!-- doxytag: member="Uri.h::uriEqualsUriA" ref="6840bd1ddfbf073e215a8137df0350e4" args="(const UriUriA *a, const UriUriA *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a> uriEqualsUriA           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks two URIs for equivalence. Comparison is done the naive way, without prior normalization. NOTE: Two <code>NULL</code> URIs are equal as well.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td><b>IN</b>: First URI </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td><b>IN</b>: Second URI </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>URI_TRUE</code> when equal, <code>URI_FAlSE</code> else</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.4.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="0d501e7c2a6abe76b729ea72e123dea8"></a><!-- doxytag: member="Uri.h::uriEscapeA" ref="0d501e7c2a6abe76b729ea72e123dea8" args="(const char *in, char *out, UriBool spaceToPlus, UriBool normalizeBreaks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* uriEscapeA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>spaceToPlus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>normalizeBreaks</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Percent-encodes all unreserved characters from the input string and writes the encoded version to the output string. Be sure to allocate <b>3 times</b> the space of the input buffer for the output buffer for <code>normalizeBreaks == URI_FALSE</code> and <b>6 times</b> the space for <code>normalizeBreaks == URI_FALSE</code> (since e.g. "\x0d" becomes "%0D%0A" in that case)<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td><b>IN</b>: Text source </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td><b>OUT</b>: Encoded text destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>spaceToPlus</em>&nbsp;</td><td><b>IN</b>: Wether to convert ' ' to '+' or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>normalizeBreaks</em>&nbsp;</td><td><b>IN</b>: Wether to convert CR and LF to CR-LF or not. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Position of terminator in output string</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#9abcd27c7cb19d637ca74e722aad68a1">uriEscapeExA</a> <p>
<a class="el" href="Uri_8h.html#e80c5d0494b94b61bf0f6cb349b18a36">uriUnescapeInPlaceA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="9abcd27c7cb19d637ca74e722aad68a1"></a><!-- doxytag: member="Uri.h::uriEscapeExA" ref="9abcd27c7cb19d637ca74e722aad68a1" args="(const char *inFirst, const char *inAfterLast, char *out, UriBool spaceToPlus, UriBool normalizeBreaks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* uriEscapeExA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>inFirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>inAfterLast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>spaceToPlus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>normalizeBreaks</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Percent-encodes all unreserved characters from the input string and writes the encoded version to the output string. Be sure to allocate <b>3 times</b> the space of the input buffer for the output buffer for <code>normalizeBreaks == URI_FALSE</code> and <b>6 times</b> the space for <code>normalizeBreaks == URI_TRUE</code> (since e.g. "\x0d" becomes "%0D%0A" in that case)<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>inFirst</em>&nbsp;</td><td><b>IN</b>: Pointer to first character of the input text </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>inAfterLast</em>&nbsp;</td><td><b>IN</b>: Pointer after the last character of the input text </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td><b>OUT</b>: Encoded text destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>spaceToPlus</em>&nbsp;</td><td><b>IN</b>: Wether to convert ' ' to '+' or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>normalizeBreaks</em>&nbsp;</td><td><b>IN</b>: Wether to convert CR and LF to CR-LF or not. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Position of terminator in output string</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#0d501e7c2a6abe76b729ea72e123dea8">uriEscapeA</a> <p>
<a class="el" href="Uri_8h.html#b11acf439a838875d1d263964bfbbd12">uriUnescapeInPlaceExA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="692a7f1c4e37180050257025473b2f7a"></a><!-- doxytag: member="Uri.h::uriFreeQueryListA" ref="692a7f1c4e37180050257025473b2f7a" args="(UriQueryListA *queryList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uriFreeQueryListA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriQueryListStructA.html">UriQueryListA</a> *&nbsp;</td>
          <td class="paramname"> <em>queryList</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees all memory associated with the given query list. The structure itself is freed as well.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>queryList</em>&nbsp;</td><td><b>INOUT</b>: Query list to free</td></tr>
  </table>
</dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.7.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="a5f2edbe34fcde379ccca4fe3fadcd48"></a><!-- doxytag: member="Uri.h::uriFreeUriMembersA" ref="a5f2edbe34fcde379ccca4fe3fadcd48" args="(UriUriA *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uriFreeUriMembersA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>uri</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees all memory associated with the members of the URI structure. Note that the structure itself is not freed, only its members.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td><b>INOUT</b>: URI structure whose members should be freed</td></tr>
  </table>
</dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="50176d4c0c0fb7d40e0e4990d0c7d7bf"></a><!-- doxytag: member="Uri.h::uriNormalizeSyntaxA" ref="50176d4c0c0fb7d40e0e4990d0c7d7bf" args="(UriUriA *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriNormalizeSyntaxA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>uri</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Normalizes all components of a URI.<p>
NOTE: If necessary the URI becomes owner of all memory behind the text pointed to. Text is duplicated in that case.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td><b>INOUT</b>: URI to normalize </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#bfcb66bec6bb0066fb086174692d5710">uriNormalizeSyntaxExA</a> <p>
<a class="el" href="Uri_8h.html#8de8c90c3655e547cddcd50c663587fb">uriNormalizeSyntaxMaskRequiredA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="bfcb66bec6bb0066fb086174692d5710"></a><!-- doxytag: member="Uri.h::uriNormalizeSyntaxExA" ref="bfcb66bec6bb0066fb086174692d5710" args="(UriUriA *uri, unsigned int mask)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriNormalizeSyntaxExA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>mask</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Normalizes a URI using a normalization mask. The normalization mask decides what components are normalized.<p>
NOTE: If necessary the URI becomes owner of all memory behind the text pointed to. Text is duplicated in that case.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td><b>INOUT</b>: URI to normalize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td><b>IN</b>: Normalization mask </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#50176d4c0c0fb7d40e0e4990d0c7d7bf">uriNormalizeSyntaxA</a> <p>
<a class="el" href="Uri_8h.html#8de8c90c3655e547cddcd50c663587fb">uriNormalizeSyntaxMaskRequiredA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="8de8c90c3655e547cddcd50c663587fb"></a><!-- doxytag: member="Uri.h::uriNormalizeSyntaxMaskRequiredA" ref="8de8c90c3655e547cddcd50c663587fb" args="(const UriUriA *uri)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int uriNormalizeSyntaxMaskRequiredA           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>uri</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determines the components of a URI that are not normalized.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td><b>IN</b>: URI to check </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Normalization job mask</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#50176d4c0c0fb7d40e0e4990d0c7d7bf">uriNormalizeSyntaxA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="b16a86cc9956c40da5a97007c0fd4802"></a><!-- doxytag: member="Uri.h::uriParseUriA" ref="b16a86cc9956c40da5a97007c0fd4802" args="(UriParserStateA *state, const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriParseUriA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriParserStateStructA.html">UriParserStateA</a> *&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parses a RFC 3986 URI.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td><b>INOUT</b>: Parser state with set output URI, must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td><b>IN</b>: Text to parse, must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, error code otherwise</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#bbca234320ee65d6fb7aec729b843277">uriParseUriExA</a> <p>
<a class="el" href="Uri_8h.html#4a9539cfdd85866a1ef6916c631f8bc2">uriToStringA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="bbca234320ee65d6fb7aec729b843277"></a><!-- doxytag: member="Uri.h::uriParseUriExA" ref="bbca234320ee65d6fb7aec729b843277" args="(UriParserStateA *state, const char *first, const char *afterLast)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriParseUriExA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriParserStateStructA.html">UriParserStateA</a> *&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>afterLast</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parses a RFC 3986 URI.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>state</em>&nbsp;</td><td><b>INOUT</b>: Parser state with set output URI, must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td><b>IN</b>: Pointer to the first character to parse, must not be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>afterLast</em>&nbsp;</td><td><b>IN</b>: Pointer to the character after the last to parse, must not be NULL </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, error code otherwise</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#b16a86cc9956c40da5a97007c0fd4802">uriParseUriA</a> <p>
<a class="el" href="Uri_8h.html#4a9539cfdd85866a1ef6916c631f8bc2">uriToStringA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="4a14ec47aeeadd9ff7a5e381a10234a0"></a><!-- doxytag: member="Uri.h::uriRemoveBaseUriA" ref="4a14ec47aeeadd9ff7a5e381a10234a0" args="(UriUriA *dest, const UriUriA *absoluteSource, const UriUriA *absoluteBase, UriBool domainRootMode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriRemoveBaseUriA           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>absoluteSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>absoluteBase</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>domainRootMode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Tries to make a relative URI (a reference) from an absolute URI and a given base URI. This can only work if the absolute URI shares scheme and authority with the base URI. If it does not the result will still be an absolute URI (with scheme part if necessary). NOTE: On success you have to call uriFreeUriMembersA on <code>dest</code> manually later.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Result URI </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>absoluteSource</em>&nbsp;</td><td><b>IN</b>: Absolute URI to make relative </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>absoluteBase</em>&nbsp;</td><td><b>IN</b>: Base URI </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>domainRootMode</em>&nbsp;</td><td><b>IN</b>: Create URI with path relative to domain root </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#4bcf2a1fa28bb86443f2b61561e692a7">uriAddBaseUriA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="4a9539cfdd85866a1ef6916c631f8bc2"></a><!-- doxytag: member="Uri.h::uriToStringA" ref="4a9539cfdd85866a1ef6916c631f8bc2" args="(char *dest, const UriUriA *uri, int maxChars, int *charsWritten)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriToStringA           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>maxChars</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>charsWritten</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a URI structure back to text as described in <a href="http://tools.ietf.org/html/rfc3986#section-5.3">section 5.3 of RFC 3986</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>OUT</b>: Output destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td><b>IN</b>: URI to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxChars</em>&nbsp;</td><td><b>IN</b>: Maximum number of characters to copy <b>including</b> terminator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>charsWritten</em>&nbsp;</td><td><b>OUT</b>: Number of characters written, can be lower than maxChars even if the URI is too long! </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#e57c60e8166c44163af6d0434329fe73">uriToStringCharsRequiredA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.4.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="e57c60e8166c44163af6d0434329fe73"></a><!-- doxytag: member="Uri.h::uriToStringCharsRequiredA" ref="e57c60e8166c44163af6d0434329fe73" args="(const UriUriA *uri, int *charsRequired)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriToStringCharsRequiredA           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structUriUriStructA.html">UriUriA</a> *&nbsp;</td>
          <td class="paramname"> <em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>charsRequired</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculates the number of characters needed to store the string representation of the given URI excluding the terminator.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td><b>IN</b>: URI to measure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>charsRequired</em>&nbsp;</td><td><b>OUT</b>: Length of the string representation in characters <b>excluding</b> terminator </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#4a9539cfdd85866a1ef6916c631f8bc2">uriToStringA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="e80c5d0494b94b61bf0f6cb349b18a36"></a><!-- doxytag: member="Uri.h::uriUnescapeInPlaceA" ref="e80c5d0494b94b61bf0f6cb349b18a36" args="(char *inout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* uriUnescapeInPlaceA           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>inout</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unescapes percent-encoded groups in a given string. E.g. "%20" will become " ". Unescaping is done in place. The return value will be point to the new position of the terminating zero. Use this value to get the new length of the string. NULL is only returned if <code>inout</code> is NULL.<p>
NOTE: '+' is not decoded to ' ' and line breaks are not converted. Use the more advanced UnescapeInPlaceEx for that features instead.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>inout</em>&nbsp;</td><td><b>INOUT</b>: Text to unescape/decode </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to new position of the terminating zero</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#b11acf439a838875d1d263964bfbbd12">uriUnescapeInPlaceExA</a> <p>
<a class="el" href="Uri_8h.html#0d501e7c2a6abe76b729ea72e123dea8">uriEscapeA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.3.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="b11acf439a838875d1d263964bfbbd12"></a><!-- doxytag: member="Uri.h::uriUnescapeInPlaceExA" ref="b11acf439a838875d1d263964bfbbd12" args="(char *inout, UriBool plusToSpace, UriBreakConversion breakConversion)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* uriUnescapeInPlaceExA           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>inout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#b2e3d0e349df122b6e7da6d18c552655">UriBool</a>&nbsp;</td>
          <td class="paramname"> <em>plusToSpace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="UriBase_8h.html#223a6e1bb23228775573726aa73d018e">UriBreakConversion</a>&nbsp;</td>
          <td class="paramname"> <em>breakConversion</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unescapes percent-encoded groups in a given string. E.g. "%20" will become " ". Unescaping is done in place. The return value will be point to the new position of the terminating zero. Use this value to get the new length of the string. NULL is only returned if <code>inout</code> is NULL.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>inout</em>&nbsp;</td><td><b>INOUT</b>: Text to unescape/decode </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plusToSpace</em>&nbsp;</td><td><b>IN</b>: Whether to convert '+' to ' ' or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>breakConversion</em>&nbsp;</td><td><b>IN</b>: Line break conversion mode </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to new position of the terminating zero</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#e80c5d0494b94b61bf0f6cb349b18a36">uriUnescapeInPlaceA</a> <p>
<a class="el" href="Uri_8h.html#9abcd27c7cb19d637ca74e722aad68a1">uriEscapeExA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="b394fe8e5e9b6863e4dfd2ae6b464960"></a><!-- doxytag: member="Uri.h::uriUnixFilenameToUriStringA" ref="b394fe8e5e9b6863e4dfd2ae6b464960" args="(const char *filename, char *uriString)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriUnixFilenameToUriStringA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>uriString</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a Unix filename to a URI string. The destination buffer must be large enough to hold 7 + 3 * len(filename) + 1 characters in case of an absolute filename or 3 * len(filename) + 1 in case of a relative filename.<p>
EXAMPLE Input: "/bin/bash" Output: "file:///bin/bash"<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td><b>IN</b>: Unix filename to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uriString</em>&nbsp;</td><td><b>OUT</b>: Destination to write URI string to </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#26920c57a9ad92041bc797c29b7bdb92">uriUriStringToUnixFilenameA</a> <p>
<a class="el" href="Uri_8h.html#4a071c1c4867b49b122dc4fcb1d3021a">uriWindowsFilenameToUriStringA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="26920c57a9ad92041bc797c29b7bdb92"></a><!-- doxytag: member="Uri.h::uriUriStringToUnixFilenameA" ref="26920c57a9ad92041bc797c29b7bdb92" args="(const char *uriString, char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriUriStringToUnixFilenameA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>uriString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>filename</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Extracts a Unix filename from a URI string. The destination buffer must be large enough to hold len(uriString) + 1 - 7 characters in case of an absolute URI or len(uriString) + 1 in case of a relative URI.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uriString</em>&nbsp;</td><td><b>IN</b>: URI string to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td><b>OUT</b>: Destination to write filename to </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#b394fe8e5e9b6863e4dfd2ae6b464960">uriUnixFilenameToUriStringA</a> <p>
<a class="el" href="Uri_8h.html#b9cd18296649e2443495e26f661e1313">uriUriStringToWindowsFilenameA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="b9cd18296649e2443495e26f661e1313"></a><!-- doxytag: member="Uri.h::uriUriStringToWindowsFilenameA" ref="b9cd18296649e2443495e26f661e1313" args="(const char *uriString, char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriUriStringToWindowsFilenameA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>uriString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>filename</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Extracts a Windows filename from a URI string. The destination buffer must be large enough to hold len(uriString) + 1 - 8 characters in case of an absolute URI or len(uriString) + 1 in case of a relative URI.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uriString</em>&nbsp;</td><td><b>IN</b>: URI string to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td><b>OUT</b>: Destination to write filename to </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#4a071c1c4867b49b122dc4fcb1d3021a">uriWindowsFilenameToUriStringA</a> <p>
<a class="el" href="Uri_8h.html#26920c57a9ad92041bc797c29b7bdb92">uriUriStringToUnixFilenameA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="4a071c1c4867b49b122dc4fcb1d3021a"></a><!-- doxytag: member="Uri.h::uriWindowsFilenameToUriStringA" ref="4a071c1c4867b49b122dc4fcb1d3021a" args="(const char *filename, char *uriString)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int uriWindowsFilenameToUriStringA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>uriString</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a Windows filename to a URI string. The destination buffer must be large enough to hold 8 + 3 * len(filename) + 1 characters in case of an absolute filename or 3 * len(filename) + 1 in case of a relative filename.<p>
EXAMPLE Input: "E:\\Documents and Settings" Output: "file:///E:/Documents%20and%20Settings"<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td><b>IN</b>: Windows filename to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uriString</em>&nbsp;</td><td><b>OUT</b>: Destination to write URI string to </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Error code or 0 on success</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="Uri_8h.html#b9cd18296649e2443495e26f661e1313">uriUriStringToWindowsFilenameA</a> <p>
<a class="el" href="Uri_8h.html#b394fe8e5e9b6863e4dfd2ae6b464960">uriUnixFilenameToUriStringA</a> </dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.5.2 </dd></dl>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jul 28 22:03:18 2009 for uriparser by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>