1*7c568831SAndroid Build Coastguard Worker<html> 2*7c568831SAndroid Build Coastguard Worker<head> 3*7c568831SAndroid Build Coastguard Worker<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4*7c568831SAndroid Build Coastguard Worker<title>uri: library of generic URI related routines</title> 5*7c568831SAndroid Build Coastguard Worker<meta name="generator" content="Libxml2 devhelp stylesheet"> 6*7c568831SAndroid Build Coastguard Worker<link rel="start" href="index.html" title="libxml2 Reference Manual"> 7*7c568831SAndroid Build Coastguard Worker<link rel="up" href="general.html" title="API"> 8*7c568831SAndroid Build Coastguard Worker<link rel="stylesheet" href="style.css" type="text/css"> 9*7c568831SAndroid Build Coastguard Worker<link rel="chapter" href="general.html" title="API"> 10*7c568831SAndroid Build Coastguard Worker</head> 11*7c568831SAndroid Build Coastguard Worker<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 12*7c568831SAndroid Build Coastguard Worker<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> 13*7c568831SAndroid Build Coastguard Worker<td><a accesskey="p" href="libxml2-tree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> 14*7c568831SAndroid Build Coastguard Worker<td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> 15*7c568831SAndroid Build Coastguard Worker<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> 16*7c568831SAndroid Build Coastguard Worker<td><a accesskey="n" href="libxml2-valid.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> 17*7c568831SAndroid Build Coastguard Worker<th width="100%" align="center">libxml2 Reference Manual</th> 18*7c568831SAndroid Build Coastguard Worker</tr></table> 19*7c568831SAndroid Build Coastguard Worker<h2><span class="refentrytitle">uri</span></h2> 20*7c568831SAndroid Build Coastguard Worker<p>uri - library of generic URI related routines</p> 21*7c568831SAndroid Build Coastguard Worker<p>library of generic URI related routines Implements RFC 2396 </p> 22*7c568831SAndroid Build Coastguard Worker<p>Author(s): Daniel Veillard </p> 23*7c568831SAndroid Build Coastguard Worker<div class="refsynopsisdiv"> 24*7c568831SAndroid Build Coastguard Worker<h2>Synopsis</h2> 25*7c568831SAndroid Build Coastguard Worker<pre class="synopsis">typedef struct _xmlURI <a href="#xmlURI">xmlURI</a>; 26*7c568831SAndroid Build Coastguard Workertypedef <a href="libxml2-uri.html#xmlURI">xmlURI</a> * <a href="#xmlURIPtr">xmlURIPtr</a>; 27*7c568831SAndroid Build Coastguard Worker<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildRelativeURI">xmlBuildRelativeURI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base); 28*7c568831SAndroid Build Coastguard Workerint <a href="#xmlBuildRelativeURISafe">xmlBuildRelativeURISafe</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base, <br> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** valPtr); 29*7c568831SAndroid Build Coastguard Worker<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlBuildURI">xmlBuildURI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base); 30*7c568831SAndroid Build Coastguard Workerint <a href="#xmlBuildURISafe">xmlBuildURISafe</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base, <br> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** valPtr); 31*7c568831SAndroid Build Coastguard Worker<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCanonicPath">xmlCanonicPath</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path); 32*7c568831SAndroid Build Coastguard Worker<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlCreateURI">xmlCreateURI</a> (void); 33*7c568831SAndroid Build Coastguard Workervoid <a href="#xmlFreeURI">xmlFreeURI</a> (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri); 34*7c568831SAndroid Build Coastguard Workerint <a href="#xmlNormalizeURIPath">xmlNormalizeURIPath</a> (char * path); 35*7c568831SAndroid Build Coastguard Worker<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlParseURI">xmlParseURI</a> (const char * str); 36*7c568831SAndroid Build Coastguard Worker<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> <a href="#xmlParseURIRaw">xmlParseURIRaw</a> (const char * str, <br> int raw); 37*7c568831SAndroid Build Coastguard Workerint <a href="#xmlParseURIReference">xmlParseURIReference</a> (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br> const char * str); 38*7c568831SAndroid Build Coastguard Workerint <a href="#xmlParseURISafe">xmlParseURISafe</a> (const char * str, <br> <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> * uriOut); 39*7c568831SAndroid Build Coastguard Worker<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlPathToURI">xmlPathToURI</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path); 40*7c568831SAndroid Build Coastguard Workervoid <a href="#xmlPrintURI">xmlPrintURI</a> (FILE * stream, <br> <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri); 41*7c568831SAndroid Build Coastguard Worker<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlSaveUri">xmlSaveUri</a> (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri); 42*7c568831SAndroid Build Coastguard Worker<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlURIEscape">xmlURIEscape</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str); 43*7c568831SAndroid Build Coastguard Worker<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlURIEscapeStr">xmlURIEscapeStr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * list); 44*7c568831SAndroid Build Coastguard Workerchar * <a href="#xmlURIUnescapeString">xmlURIUnescapeString</a> (const char * str, <br> int len, <br> char * target); 45*7c568831SAndroid Build Coastguard Worker</pre> 46*7c568831SAndroid Build Coastguard Worker</div> 47*7c568831SAndroid Build Coastguard Worker<div class="refsect1" lang="en"><h2>Description</h2></div> 48*7c568831SAndroid Build Coastguard Worker<div class="refsect1" lang="en"> 49*7c568831SAndroid Build Coastguard Worker<h2>Details</h2> 50*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 51*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 52*7c568831SAndroid Build Coastguard Worker<h3> 53*7c568831SAndroid Build Coastguard Worker<a name="xmlURI">Structure </a>xmlURI</h3> 54*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">struct _xmlURI { 55*7c568831SAndroid Build Coastguard Worker char * scheme : the URI scheme 56*7c568831SAndroid Build Coastguard Worker char * opaque : opaque part 57*7c568831SAndroid Build Coastguard Worker char * authority : the authority part 58*7c568831SAndroid Build Coastguard Worker char * server : the server part 59*7c568831SAndroid Build Coastguard Worker char * user : the user part 60*7c568831SAndroid Build Coastguard Worker int port : the port number 61*7c568831SAndroid Build Coastguard Worker char * path : the path string 62*7c568831SAndroid Build Coastguard Worker char * query : the query string (deprecated - use with caution) 63*7c568831SAndroid Build Coastguard Worker char * fragment : the fragment identifier 64*7c568831SAndroid Build Coastguard Worker int cleanup : parsing potentially unclean URI 65*7c568831SAndroid Build Coastguard Worker char * query_raw : the query string (as it appears in the URI) 66*7c568831SAndroid Build Coastguard Worker} xmlURI; 67*7c568831SAndroid Build Coastguard Worker</pre> 68*7c568831SAndroid Build Coastguard Worker<p></p> 69*7c568831SAndroid Build Coastguard Worker</div> 70*7c568831SAndroid Build Coastguard Worker<hr> 71*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 72*7c568831SAndroid Build Coastguard Worker<h3> 73*7c568831SAndroid Build Coastguard Worker<a name="xmlURIPtr">Typedef </a>xmlURIPtr</h3> 74*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-uri.html#xmlURI">xmlURI</a> * xmlURIPtr; 75*7c568831SAndroid Build Coastguard Worker</pre> 76*7c568831SAndroid Build Coastguard Worker<p></p> 77*7c568831SAndroid Build Coastguard Worker</div> 78*7c568831SAndroid Build Coastguard Worker<hr> 79*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 80*7c568831SAndroid Build Coastguard Worker<h3> 81*7c568831SAndroid Build Coastguard Worker<a name="xmlBuildRelativeURI"></a>xmlBuildRelativeURI ()</h3> 82*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildRelativeURI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base)<br> 83*7c568831SAndroid Build Coastguard Worker</pre> 84*7c568831SAndroid Build Coastguard Worker<p>See <a href="libxml2-uri.html#xmlBuildRelativeURISafe">xmlBuildRelativeURISafe</a>.</p> 85*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 86*7c568831SAndroid Build Coastguard Worker<col align="left"> 87*7c568831SAndroid Build Coastguard Worker<tbody> 88*7c568831SAndroid Build Coastguard Worker<tr> 89*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>URI</tt></i>:</span></td> 90*7c568831SAndroid Build Coastguard Worker<td>the URI <a href="libxml2-SAX.html#reference">reference</a> under consideration</td> 91*7c568831SAndroid Build Coastguard Worker</tr> 92*7c568831SAndroid Build Coastguard Worker<tr> 93*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>base</tt></i>:</span></td> 94*7c568831SAndroid Build Coastguard Worker<td>the base value</td> 95*7c568831SAndroid Build Coastguard Worker</tr> 96*7c568831SAndroid Build Coastguard Worker<tr> 97*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 98*7c568831SAndroid Build Coastguard Worker<td>a new URI string (to be freed by the caller) or NULL in case error.</td> 99*7c568831SAndroid Build Coastguard Worker</tr> 100*7c568831SAndroid Build Coastguard Worker</tbody> 101*7c568831SAndroid Build Coastguard Worker</table></div> 102*7c568831SAndroid Build Coastguard Worker</div> 103*7c568831SAndroid Build Coastguard Worker<hr> 104*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 105*7c568831SAndroid Build Coastguard Worker<h3> 106*7c568831SAndroid Build Coastguard Worker<a name="xmlBuildRelativeURISafe"></a>xmlBuildRelativeURISafe ()</h3> 107*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int xmlBuildRelativeURISafe (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base, <br> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** valPtr)<br> 108*7c568831SAndroid Build Coastguard Worker</pre> 109*7c568831SAndroid Build Coastguard Worker<p>Expresses the URI of the <a href="libxml2-SAX.html#reference">reference</a> in terms relative to the base. Some examples of this operation include: base = "http://site1.com/docs/book1.html" URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif http://site2.com/docs/pic1.gif http://site2.com/docs/pic1.gif base = "docs/book1.html" URI input URI returned docs/pic1.gif pic1.gif docs/img/pic1.gif img/pic1.gif img/pic1.gif ../img/pic1.gif http://site1.com/docs/pic1.gif http://site1.com/docs/pic1.gif Note: if the URI <a href="libxml2-SAX.html#reference">reference</a> is really weird or complicated, it may be worthwhile to first convert it into a "nice" one by calling <a href="libxml2-uri.html#xmlBuildURI">xmlBuildURI</a> (using 'base') before calling this routine, since this routine (for reasonable efficiency) assumes URI has already been through some validation. Available since 2.13.0.</p> 110*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 111*7c568831SAndroid Build Coastguard Worker<col align="left"> 112*7c568831SAndroid Build Coastguard Worker<tbody> 113*7c568831SAndroid Build Coastguard Worker<tr> 114*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>URI</tt></i>:</span></td> 115*7c568831SAndroid Build Coastguard Worker<td>the URI <a href="libxml2-SAX.html#reference">reference</a> under consideration</td> 116*7c568831SAndroid Build Coastguard Worker</tr> 117*7c568831SAndroid Build Coastguard Worker<tr> 118*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>base</tt></i>:</span></td> 119*7c568831SAndroid Build Coastguard Worker<td>the base value</td> 120*7c568831SAndroid Build Coastguard Worker</tr> 121*7c568831SAndroid Build Coastguard Worker<tr> 122*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>valPtr</tt></i>:</span></td> 123*7c568831SAndroid Build Coastguard Worker<td>pointer to result URI</td> 124*7c568831SAndroid Build Coastguard Worker</tr> 125*7c568831SAndroid Build Coastguard Worker<tr> 126*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 127*7c568831SAndroid Build Coastguard Worker<td>0 on success, -1 if a memory allocation failed or an error code if URI or base are invalid.</td> 128*7c568831SAndroid Build Coastguard Worker</tr> 129*7c568831SAndroid Build Coastguard Worker</tbody> 130*7c568831SAndroid Build Coastguard Worker</table></div> 131*7c568831SAndroid Build Coastguard Worker</div> 132*7c568831SAndroid Build Coastguard Worker<hr> 133*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 134*7c568831SAndroid Build Coastguard Worker<h3> 135*7c568831SAndroid Build Coastguard Worker<a name="xmlBuildURI"></a>xmlBuildURI ()</h3> 136*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlBuildURI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base)<br> 137*7c568831SAndroid Build Coastguard Worker</pre> 138*7c568831SAndroid Build Coastguard Worker<p>Computes he final URI of the <a href="libxml2-SAX.html#reference">reference</a> done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396 5.2. Resolving Relative References to Absolute Form</p> 139*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 140*7c568831SAndroid Build Coastguard Worker<col align="left"> 141*7c568831SAndroid Build Coastguard Worker<tbody> 142*7c568831SAndroid Build Coastguard Worker<tr> 143*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>URI</tt></i>:</span></td> 144*7c568831SAndroid Build Coastguard Worker<td>the URI instance found in the document</td> 145*7c568831SAndroid Build Coastguard Worker</tr> 146*7c568831SAndroid Build Coastguard Worker<tr> 147*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>base</tt></i>:</span></td> 148*7c568831SAndroid Build Coastguard Worker<td>the base value</td> 149*7c568831SAndroid Build Coastguard Worker</tr> 150*7c568831SAndroid Build Coastguard Worker<tr> 151*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 152*7c568831SAndroid Build Coastguard Worker<td>a new URI string (to be freed by the caller) or NULL in case of error.</td> 153*7c568831SAndroid Build Coastguard Worker</tr> 154*7c568831SAndroid Build Coastguard Worker</tbody> 155*7c568831SAndroid Build Coastguard Worker</table></div> 156*7c568831SAndroid Build Coastguard Worker</div> 157*7c568831SAndroid Build Coastguard Worker<hr> 158*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 159*7c568831SAndroid Build Coastguard Worker<h3> 160*7c568831SAndroid Build Coastguard Worker<a name="xmlBuildURISafe"></a>xmlBuildURISafe ()</h3> 161*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int xmlBuildURISafe (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * URI, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * base, <br> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** valPtr)<br> 162*7c568831SAndroid Build Coastguard Worker</pre> 163*7c568831SAndroid Build Coastguard Worker<p>Computes he final URI of the <a href="libxml2-SAX.html#reference">reference</a> done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396 5.2. Resolving Relative References to Absolute Form Available since 2.13.0.</p> 164*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 165*7c568831SAndroid Build Coastguard Worker<col align="left"> 166*7c568831SAndroid Build Coastguard Worker<tbody> 167*7c568831SAndroid Build Coastguard Worker<tr> 168*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>URI</tt></i>:</span></td> 169*7c568831SAndroid Build Coastguard Worker<td>the URI instance found in the document</td> 170*7c568831SAndroid Build Coastguard Worker</tr> 171*7c568831SAndroid Build Coastguard Worker<tr> 172*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>base</tt></i>:</span></td> 173*7c568831SAndroid Build Coastguard Worker<td>the base value</td> 174*7c568831SAndroid Build Coastguard Worker</tr> 175*7c568831SAndroid Build Coastguard Worker<tr> 176*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>valPtr</tt></i>:</span></td> 177*7c568831SAndroid Build Coastguard Worker<td>pointer to result URI</td> 178*7c568831SAndroid Build Coastguard Worker</tr> 179*7c568831SAndroid Build Coastguard Worker<tr> 180*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 181*7c568831SAndroid Build Coastguard Worker<td>0 on success, -1 if a memory allocation failed or an error code if URI or base are invalid.</td> 182*7c568831SAndroid Build Coastguard Worker</tr> 183*7c568831SAndroid Build Coastguard Worker</tbody> 184*7c568831SAndroid Build Coastguard Worker</table></div> 185*7c568831SAndroid Build Coastguard Worker</div> 186*7c568831SAndroid Build Coastguard Worker<hr> 187*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 188*7c568831SAndroid Build Coastguard Worker<h3> 189*7c568831SAndroid Build Coastguard Worker<a name="xmlCanonicPath"></a>xmlCanonicPath ()</h3> 190*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlCanonicPath (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path)<br> 191*7c568831SAndroid Build Coastguard Worker</pre> 192*7c568831SAndroid Build Coastguard Worker<p>Prepares a path. If the path contains the substring "://", it is considered a Legacy Extended IRI. Characters which aren't allowed in URIs are escaped. Otherwise, the path is considered a filesystem path which is copied without modification. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.</p> 193*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 194*7c568831SAndroid Build Coastguard Worker<col align="left"> 195*7c568831SAndroid Build Coastguard Worker<tbody> 196*7c568831SAndroid Build Coastguard Worker<tr> 197*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>path</tt></i>:</span></td> 198*7c568831SAndroid Build Coastguard Worker<td>the resource locator in a filesystem notation</td> 199*7c568831SAndroid Build Coastguard Worker</tr> 200*7c568831SAndroid Build Coastguard Worker<tr> 201*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 202*7c568831SAndroid Build Coastguard Worker<td>the escaped path.</td> 203*7c568831SAndroid Build Coastguard Worker</tr> 204*7c568831SAndroid Build Coastguard Worker</tbody> 205*7c568831SAndroid Build Coastguard Worker</table></div> 206*7c568831SAndroid Build Coastguard Worker</div> 207*7c568831SAndroid Build Coastguard Worker<hr> 208*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 209*7c568831SAndroid Build Coastguard Worker<h3> 210*7c568831SAndroid Build Coastguard Worker<a name="xmlCreateURI"></a>xmlCreateURI ()</h3> 211*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> xmlCreateURI (void)<br> 212*7c568831SAndroid Build Coastguard Worker</pre> 213*7c568831SAndroid Build Coastguard Worker<p>Simply creates an empty <a href="libxml2-uri.html#xmlURI">xmlURI</a></p> 214*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 215*7c568831SAndroid Build Coastguard Worker<col align="left"> 216*7c568831SAndroid Build Coastguard Worker<tbody><tr> 217*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 218*7c568831SAndroid Build Coastguard Worker<td>the new structure or NULL in case of error</td> 219*7c568831SAndroid Build Coastguard Worker</tr></tbody> 220*7c568831SAndroid Build Coastguard Worker</table></div> 221*7c568831SAndroid Build Coastguard Worker</div> 222*7c568831SAndroid Build Coastguard Worker<hr> 223*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 224*7c568831SAndroid Build Coastguard Worker<h3> 225*7c568831SAndroid Build Coastguard Worker<a name="xmlFreeURI"></a>xmlFreeURI ()</h3> 226*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">void xmlFreeURI (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br> 227*7c568831SAndroid Build Coastguard Worker</pre> 228*7c568831SAndroid Build Coastguard Worker<p>Free up the <a href="libxml2-uri.html#xmlURI">xmlURI</a> struct</p> 229*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 230*7c568831SAndroid Build Coastguard Worker<col align="left"> 231*7c568831SAndroid Build Coastguard Worker<tbody><tr> 232*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>uri</tt></i>:</span></td> 233*7c568831SAndroid Build Coastguard Worker<td>pointer to an <a href="libxml2-uri.html#xmlURI">xmlURI</a> 234*7c568831SAndroid Build Coastguard Worker</td> 235*7c568831SAndroid Build Coastguard Worker</tr></tbody> 236*7c568831SAndroid Build Coastguard Worker</table></div> 237*7c568831SAndroid Build Coastguard Worker</div> 238*7c568831SAndroid Build Coastguard Worker<hr> 239*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 240*7c568831SAndroid Build Coastguard Worker<h3> 241*7c568831SAndroid Build Coastguard Worker<a name="xmlNormalizeURIPath"></a>xmlNormalizeURIPath ()</h3> 242*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int xmlNormalizeURIPath (char * path)<br> 243*7c568831SAndroid Build Coastguard Worker</pre> 244*7c568831SAndroid Build Coastguard Worker<p>Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g. Normalization occurs directly on the string, no new allocation is done</p> 245*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 246*7c568831SAndroid Build Coastguard Worker<col align="left"> 247*7c568831SAndroid Build Coastguard Worker<tbody> 248*7c568831SAndroid Build Coastguard Worker<tr> 249*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>path</tt></i>:</span></td> 250*7c568831SAndroid Build Coastguard Worker<td>pointer to the path string</td> 251*7c568831SAndroid Build Coastguard Worker</tr> 252*7c568831SAndroid Build Coastguard Worker<tr> 253*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 254*7c568831SAndroid Build Coastguard Worker<td>0 or an error code</td> 255*7c568831SAndroid Build Coastguard Worker</tr> 256*7c568831SAndroid Build Coastguard Worker</tbody> 257*7c568831SAndroid Build Coastguard Worker</table></div> 258*7c568831SAndroid Build Coastguard Worker</div> 259*7c568831SAndroid Build Coastguard Worker<hr> 260*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 261*7c568831SAndroid Build Coastguard Worker<h3> 262*7c568831SAndroid Build Coastguard Worker<a name="xmlParseURI"></a>xmlParseURI ()</h3> 263*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> xmlParseURI (const char * str)<br> 264*7c568831SAndroid Build Coastguard Worker</pre> 265*7c568831SAndroid Build Coastguard Worker<p>Parse an URI based on RFC 3986 URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</p> 266*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 267*7c568831SAndroid Build Coastguard Worker<col align="left"> 268*7c568831SAndroid Build Coastguard Worker<tbody> 269*7c568831SAndroid Build Coastguard Worker<tr> 270*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>str</tt></i>:</span></td> 271*7c568831SAndroid Build Coastguard Worker<td>the URI string to analyze</td> 272*7c568831SAndroid Build Coastguard Worker</tr> 273*7c568831SAndroid Build Coastguard Worker<tr> 274*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 275*7c568831SAndroid Build Coastguard Worker<td>a newly built <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td> 276*7c568831SAndroid Build Coastguard Worker</tr> 277*7c568831SAndroid Build Coastguard Worker</tbody> 278*7c568831SAndroid Build Coastguard Worker</table></div> 279*7c568831SAndroid Build Coastguard Worker</div> 280*7c568831SAndroid Build Coastguard Worker<hr> 281*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 282*7c568831SAndroid Build Coastguard Worker<h3> 283*7c568831SAndroid Build Coastguard Worker<a name="xmlParseURIRaw"></a>xmlParseURIRaw ()</h3> 284*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> xmlParseURIRaw (const char * str, <br> int raw)<br> 285*7c568831SAndroid Build Coastguard Worker</pre> 286*7c568831SAndroid Build Coastguard Worker<p>Parse an URI but allows to keep intact the original fragments. URI-reference = URI / relative-ref</p> 287*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 288*7c568831SAndroid Build Coastguard Worker<col align="left"> 289*7c568831SAndroid Build Coastguard Worker<tbody> 290*7c568831SAndroid Build Coastguard Worker<tr> 291*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>str</tt></i>:</span></td> 292*7c568831SAndroid Build Coastguard Worker<td>the URI string to analyze</td> 293*7c568831SAndroid Build Coastguard Worker</tr> 294*7c568831SAndroid Build Coastguard Worker<tr> 295*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>raw</tt></i>:</span></td> 296*7c568831SAndroid Build Coastguard Worker<td>if 1 unescaping of URI pieces are disabled</td> 297*7c568831SAndroid Build Coastguard Worker</tr> 298*7c568831SAndroid Build Coastguard Worker<tr> 299*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 300*7c568831SAndroid Build Coastguard Worker<td>a newly built <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> or NULL in case of error</td> 301*7c568831SAndroid Build Coastguard Worker</tr> 302*7c568831SAndroid Build Coastguard Worker</tbody> 303*7c568831SAndroid Build Coastguard Worker</table></div> 304*7c568831SAndroid Build Coastguard Worker</div> 305*7c568831SAndroid Build Coastguard Worker<hr> 306*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 307*7c568831SAndroid Build Coastguard Worker<h3> 308*7c568831SAndroid Build Coastguard Worker<a name="xmlParseURIReference"></a>xmlParseURIReference ()</h3> 309*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int xmlParseURIReference (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri, <br> const char * str)<br> 310*7c568831SAndroid Build Coastguard Worker</pre> 311*7c568831SAndroid Build Coastguard Worker<p>Parse an URI <a href="libxml2-SAX.html#reference">reference</a> string based on RFC 3986 and fills in the appropriate fields of the @uri structure URI-reference = URI / relative-ref</p> 312*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 313*7c568831SAndroid Build Coastguard Worker<col align="left"> 314*7c568831SAndroid Build Coastguard Worker<tbody> 315*7c568831SAndroid Build Coastguard Worker<tr> 316*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>uri</tt></i>:</span></td> 317*7c568831SAndroid Build Coastguard Worker<td>pointer to an URI structure</td> 318*7c568831SAndroid Build Coastguard Worker</tr> 319*7c568831SAndroid Build Coastguard Worker<tr> 320*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>str</tt></i>:</span></td> 321*7c568831SAndroid Build Coastguard Worker<td>the string to analyze</td> 322*7c568831SAndroid Build Coastguard Worker</tr> 323*7c568831SAndroid Build Coastguard Worker<tr> 324*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 325*7c568831SAndroid Build Coastguard Worker<td>0 or the error code</td> 326*7c568831SAndroid Build Coastguard Worker</tr> 327*7c568831SAndroid Build Coastguard Worker</tbody> 328*7c568831SAndroid Build Coastguard Worker</table></div> 329*7c568831SAndroid Build Coastguard Worker</div> 330*7c568831SAndroid Build Coastguard Worker<hr> 331*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 332*7c568831SAndroid Build Coastguard Worker<h3> 333*7c568831SAndroid Build Coastguard Worker<a name="xmlParseURISafe"></a>xmlParseURISafe ()</h3> 334*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">int xmlParseURISafe (const char * str, <br> <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> * uriOut)<br> 335*7c568831SAndroid Build Coastguard Worker</pre> 336*7c568831SAndroid Build Coastguard Worker<p>Parse an URI based on RFC 3986 URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ] Available since 2.13.0.</p> 337*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 338*7c568831SAndroid Build Coastguard Worker<col align="left"> 339*7c568831SAndroid Build Coastguard Worker<tbody> 340*7c568831SAndroid Build Coastguard Worker<tr> 341*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>str</tt></i>:</span></td> 342*7c568831SAndroid Build Coastguard Worker<td>the URI string to analyze</td> 343*7c568831SAndroid Build Coastguard Worker</tr> 344*7c568831SAndroid Build Coastguard Worker<tr> 345*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>uriOut</tt></i>:</span></td> 346*7c568831SAndroid Build Coastguard Worker<td>optional pointer to parsed URI</td> 347*7c568831SAndroid Build Coastguard Worker</tr> 348*7c568831SAndroid Build Coastguard Worker<tr> 349*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 350*7c568831SAndroid Build Coastguard Worker<td>0 on success, an error code (typically 1) if the URI is invalid or -1 if a memory allocation failed.</td> 351*7c568831SAndroid Build Coastguard Worker</tr> 352*7c568831SAndroid Build Coastguard Worker</tbody> 353*7c568831SAndroid Build Coastguard Worker</table></div> 354*7c568831SAndroid Build Coastguard Worker</div> 355*7c568831SAndroid Build Coastguard Worker<hr> 356*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 357*7c568831SAndroid Build Coastguard Worker<h3> 358*7c568831SAndroid Build Coastguard Worker<a name="xmlPathToURI"></a>xmlPathToURI ()</h3> 359*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlPathToURI (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * path)<br> 360*7c568831SAndroid Build Coastguard Worker</pre> 361*7c568831SAndroid Build Coastguard Worker<p>Constructs an URI expressing the existing path</p> 362*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 363*7c568831SAndroid Build Coastguard Worker<col align="left"> 364*7c568831SAndroid Build Coastguard Worker<tbody> 365*7c568831SAndroid Build Coastguard Worker<tr> 366*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>path</tt></i>:</span></td> 367*7c568831SAndroid Build Coastguard Worker<td>the resource locator in a filesystem notation</td> 368*7c568831SAndroid Build Coastguard Worker</tr> 369*7c568831SAndroid Build Coastguard Worker<tr> 370*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 371*7c568831SAndroid Build Coastguard Worker<td>a new URI, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.</td> 372*7c568831SAndroid Build Coastguard Worker</tr> 373*7c568831SAndroid Build Coastguard Worker</tbody> 374*7c568831SAndroid Build Coastguard Worker</table></div> 375*7c568831SAndroid Build Coastguard Worker</div> 376*7c568831SAndroid Build Coastguard Worker<hr> 377*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 378*7c568831SAndroid Build Coastguard Worker<h3> 379*7c568831SAndroid Build Coastguard Worker<a name="xmlPrintURI"></a>xmlPrintURI ()</h3> 380*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">void xmlPrintURI (FILE * stream, <br> <a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br> 381*7c568831SAndroid Build Coastguard Worker</pre> 382*7c568831SAndroid Build Coastguard Worker<p>Prints the URI in the stream @stream.</p> 383*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 384*7c568831SAndroid Build Coastguard Worker<col align="left"> 385*7c568831SAndroid Build Coastguard Worker<tbody> 386*7c568831SAndroid Build Coastguard Worker<tr> 387*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>stream</tt></i>:</span></td> 388*7c568831SAndroid Build Coastguard Worker<td>a FILE* for the output</td> 389*7c568831SAndroid Build Coastguard Worker</tr> 390*7c568831SAndroid Build Coastguard Worker<tr> 391*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>uri</tt></i>:</span></td> 392*7c568831SAndroid Build Coastguard Worker<td>pointer to an <a href="libxml2-uri.html#xmlURI">xmlURI</a> 393*7c568831SAndroid Build Coastguard Worker</td> 394*7c568831SAndroid Build Coastguard Worker</tr> 395*7c568831SAndroid Build Coastguard Worker</tbody> 396*7c568831SAndroid Build Coastguard Worker</table></div> 397*7c568831SAndroid Build Coastguard Worker</div> 398*7c568831SAndroid Build Coastguard Worker<hr> 399*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 400*7c568831SAndroid Build Coastguard Worker<h3> 401*7c568831SAndroid Build Coastguard Worker<a name="xmlSaveUri"></a>xmlSaveUri ()</h3> 402*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSaveUri (<a href="libxml2-uri.html#xmlURIPtr">xmlURIPtr</a> uri)<br> 403*7c568831SAndroid Build Coastguard Worker</pre> 404*7c568831SAndroid Build Coastguard Worker<p>Save the URI as an escaped string</p> 405*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 406*7c568831SAndroid Build Coastguard Worker<col align="left"> 407*7c568831SAndroid Build Coastguard Worker<tbody> 408*7c568831SAndroid Build Coastguard Worker<tr> 409*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>uri</tt></i>:</span></td> 410*7c568831SAndroid Build Coastguard Worker<td>pointer to an <a href="libxml2-uri.html#xmlURI">xmlURI</a> 411*7c568831SAndroid Build Coastguard Worker</td> 412*7c568831SAndroid Build Coastguard Worker</tr> 413*7c568831SAndroid Build Coastguard Worker<tr> 414*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 415*7c568831SAndroid Build Coastguard Worker<td>a new string (to be deallocated by caller)</td> 416*7c568831SAndroid Build Coastguard Worker</tr> 417*7c568831SAndroid Build Coastguard Worker</tbody> 418*7c568831SAndroid Build Coastguard Worker</table></div> 419*7c568831SAndroid Build Coastguard Worker</div> 420*7c568831SAndroid Build Coastguard Worker<hr> 421*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 422*7c568831SAndroid Build Coastguard Worker<h3> 423*7c568831SAndroid Build Coastguard Worker<a name="xmlURIEscape"></a>xmlURIEscape ()</h3> 424*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlURIEscape (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br> 425*7c568831SAndroid Build Coastguard Worker</pre> 426*7c568831SAndroid Build Coastguard Worker<p>Escaping routine, does not do validity checks ! It will try to escape the chars needing this, but this is heuristic based it's impossible to be sure.</p> 427*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 428*7c568831SAndroid Build Coastguard Worker<col align="left"> 429*7c568831SAndroid Build Coastguard Worker<tbody> 430*7c568831SAndroid Build Coastguard Worker<tr> 431*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>str</tt></i>:</span></td> 432*7c568831SAndroid Build Coastguard Worker<td>the string of the URI to escape</td> 433*7c568831SAndroid Build Coastguard Worker</tr> 434*7c568831SAndroid Build Coastguard Worker<tr> 435*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 436*7c568831SAndroid Build Coastguard Worker<td>an copy of the string, but escaped 25 May 2001 Uses <a href="libxml2-uri.html#xmlParseURI">xmlParseURI</a> and <a href="libxml2-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a> to try to escape correctly according to RFC2396. - Carl Douglas</td> 437*7c568831SAndroid Build Coastguard Worker</tr> 438*7c568831SAndroid Build Coastguard Worker</tbody> 439*7c568831SAndroid Build Coastguard Worker</table></div> 440*7c568831SAndroid Build Coastguard Worker</div> 441*7c568831SAndroid Build Coastguard Worker<hr> 442*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 443*7c568831SAndroid Build Coastguard Worker<h3> 444*7c568831SAndroid Build Coastguard Worker<a name="xmlURIEscapeStr"></a>xmlURIEscapeStr ()</h3> 445*7c568831SAndroid Build Coastguard Worker<pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlURIEscapeStr (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * list)<br> 446*7c568831SAndroid Build Coastguard Worker</pre> 447*7c568831SAndroid Build Coastguard Worker<p>This routine escapes a string to hex, ignoring unreserved <a href="libxml2-SAX.html#characters">characters</a> a-z, A-Z, 0-9, "-._~", a few sub-delims "!*'()", the gen-delim "@" (why?) and the <a href="libxml2-SAX.html#characters">characters</a> in the exception list.</p> 448*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 449*7c568831SAndroid Build Coastguard Worker<col align="left"> 450*7c568831SAndroid Build Coastguard Worker<tbody> 451*7c568831SAndroid Build Coastguard Worker<tr> 452*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>str</tt></i>:</span></td> 453*7c568831SAndroid Build Coastguard Worker<td>string to escape</td> 454*7c568831SAndroid Build Coastguard Worker</tr> 455*7c568831SAndroid Build Coastguard Worker<tr> 456*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>list</tt></i>:</span></td> 457*7c568831SAndroid Build Coastguard Worker<td>exception list string of chars not to escape</td> 458*7c568831SAndroid Build Coastguard Worker</tr> 459*7c568831SAndroid Build Coastguard Worker<tr> 460*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 461*7c568831SAndroid Build Coastguard Worker<td>a new escaped string or NULL in case of error.</td> 462*7c568831SAndroid Build Coastguard Worker</tr> 463*7c568831SAndroid Build Coastguard Worker</tbody> 464*7c568831SAndroid Build Coastguard Worker</table></div> 465*7c568831SAndroid Build Coastguard Worker</div> 466*7c568831SAndroid Build Coastguard Worker<hr> 467*7c568831SAndroid Build Coastguard Worker<div class="refsect2" lang="en"> 468*7c568831SAndroid Build Coastguard Worker<h3> 469*7c568831SAndroid Build Coastguard Worker<a name="xmlURIUnescapeString"></a>xmlURIUnescapeString ()</h3> 470*7c568831SAndroid Build Coastguard Worker<pre class="programlisting">char * xmlURIUnescapeString (const char * str, <br> int len, <br> char * target)<br> 471*7c568831SAndroid Build Coastguard Worker</pre> 472*7c568831SAndroid Build Coastguard Worker<p>Unescaping routine, but does not check that the string is an URI. The output is a direct unsigned char translation of %XX values (no encoding) Note that the length of the result can only be smaller or same size as the input string.</p> 473*7c568831SAndroid Build Coastguard Worker<div class="variablelist"><table border="0"> 474*7c568831SAndroid Build Coastguard Worker<col align="left"> 475*7c568831SAndroid Build Coastguard Worker<tbody> 476*7c568831SAndroid Build Coastguard Worker<tr> 477*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>str</tt></i>:</span></td> 478*7c568831SAndroid Build Coastguard Worker<td>the string to unescape</td> 479*7c568831SAndroid Build Coastguard Worker</tr> 480*7c568831SAndroid Build Coastguard Worker<tr> 481*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>len</tt></i>:</span></td> 482*7c568831SAndroid Build Coastguard Worker<td>the length in bytes to unescape (or <= 0 to indicate full string)</td> 483*7c568831SAndroid Build Coastguard Worker</tr> 484*7c568831SAndroid Build Coastguard Worker<tr> 485*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>target</tt></i>:</span></td> 486*7c568831SAndroid Build Coastguard Worker<td>optional destination buffer</td> 487*7c568831SAndroid Build Coastguard Worker</tr> 488*7c568831SAndroid Build Coastguard Worker<tr> 489*7c568831SAndroid Build Coastguard Worker<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 490*7c568831SAndroid Build Coastguard Worker<td>a copy of the string, but unescaped, will return NULL only in case of error</td> 491*7c568831SAndroid Build Coastguard Worker</tr> 492*7c568831SAndroid Build Coastguard Worker</tbody> 493*7c568831SAndroid Build Coastguard Worker</table></div> 494*7c568831SAndroid Build Coastguard Worker</div> 495*7c568831SAndroid Build Coastguard Worker<hr> 496*7c568831SAndroid Build Coastguard Worker</div> 497*7c568831SAndroid Build Coastguard Worker</div> 498*7c568831SAndroid Build Coastguard Worker</body> 499*7c568831SAndroid Build Coastguard Worker</html> 500