1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 3<title>Heimdal wind library</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5<link href="tabs.css" rel="stylesheet" type="text/css"> 6</head><body> 7<p> 8<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a> 9</p> 10<!-- end of header marker --> 11<!-- Generated by Doxygen 1.9.1 --> 12<script type="text/javascript" src="menudata.js"></script> 13<script type="text/javascript" src="menu.js"></script> 14<script type="text/javascript"> 15/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 16$(function() { 17 initMenu('',false,false,'search.php','Search'); 18}); 19/* @license-end */</script> 20<div id="main-nav"></div> 21</div><!-- top --> 22<div class="header"> 23 <div class="summary"> 24<a href="#func-members">Functions</a> </div> 25 <div class="headertitle"> 26<div class="title">Heimdal wind library</div> </div> 27</div><!--header--> 28<div class="contents"> 29<table class="memberdecls"> 30<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 31Functions</h2></td></tr> 32<tr class="memitem:gacd005d89adeb764c77c97f1c4d2e1d82"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#gacd005d89adeb764c77c97f1c4d2e1d82">wind_punycode_label_toascii</a> (const uint32_t *in, size_t in_len, char *out, size_t *out_len)</td></tr> 33<tr class="separator:gacd005d89adeb764c77c97f1c4d2e1d82"><td class="memSeparator" colspan="2"> </td></tr> 34<tr class="memitem:gadc7260aad792625f5e4d59f5d645bfaa"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#gadc7260aad792625f5e4d59f5d645bfaa">wind_stringprep</a> (const uint32_t *in, size_t in_len, uint32_t *out, size_t *out_len, wind_profile_flags flags)</td></tr> 35<tr class="separator:gadc7260aad792625f5e4d59f5d645bfaa"><td class="memSeparator" colspan="2"> </td></tr> 36<tr class="memitem:gaa4d80a988cf7d0cc8c15c1652516ec72"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#gaa4d80a988cf7d0cc8c15c1652516ec72">wind_profile</a> (const char *name, wind_profile_flags *flags)</td></tr> 37<tr class="separator:gaa4d80a988cf7d0cc8c15c1652516ec72"><td class="memSeparator" colspan="2"> </td></tr> 38<tr class="memitem:ga31f62f5e3ca885bd8afce415c9e83c4c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga31f62f5e3ca885bd8afce415c9e83c4c">wind_utf8ucs4</a> (const char *in, uint32_t *out, size_t *out_len)</td></tr> 39<tr class="separator:ga31f62f5e3ca885bd8afce415c9e83c4c"><td class="memSeparator" colspan="2"> </td></tr> 40<tr class="memitem:gabeccc02ed5f1f90684b10a6f892e89d3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#gabeccc02ed5f1f90684b10a6f892e89d3">wind_utf8ucs4_length</a> (const char *in, size_t *out_len)</td></tr> 41<tr class="separator:gabeccc02ed5f1f90684b10a6f892e89d3"><td class="memSeparator" colspan="2"> </td></tr> 42<tr class="memitem:ga502199d8981249373095da43bb5d256d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga502199d8981249373095da43bb5d256d">wind_ucs4utf8</a> (const uint32_t *in, size_t in_len, char *out, size_t *out_len)</td></tr> 43<tr class="separator:ga502199d8981249373095da43bb5d256d"><td class="memSeparator" colspan="2"> </td></tr> 44<tr class="memitem:ga44d8951aee3e12f1812ef193bad738ef"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga44d8951aee3e12f1812ef193bad738ef">wind_ucs4utf8_length</a> (const uint32_t *in, size_t in_len, size_t *out_len)</td></tr> 45<tr class="separator:ga44d8951aee3e12f1812ef193bad738ef"><td class="memSeparator" colspan="2"> </td></tr> 46<tr class="memitem:ga15a41f929d8b1be8528e3ecbdf8264f0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga15a41f929d8b1be8528e3ecbdf8264f0">wind_ucs2read</a> (const void *ptr, size_t len, unsigned int *flags, uint16_t *out, size_t *out_len)</td></tr> 47<tr class="separator:ga15a41f929d8b1be8528e3ecbdf8264f0"><td class="memSeparator" colspan="2"> </td></tr> 48<tr class="memitem:ga20668242d9ab39011edbcae295ee9348"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga20668242d9ab39011edbcae295ee9348">wind_ucs2write</a> (const uint16_t *in, size_t in_len, unsigned int *flags, void *ptr, size_t *out_len)</td></tr> 49<tr class="separator:ga20668242d9ab39011edbcae295ee9348"><td class="memSeparator" colspan="2"> </td></tr> 50<tr class="memitem:ga736f8b06adc2b70bd32ce2ed2397b5f5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga736f8b06adc2b70bd32ce2ed2397b5f5">wind_utf8ucs2</a> (const char *in, uint16_t *out, size_t *out_len)</td></tr> 51<tr class="separator:ga736f8b06adc2b70bd32ce2ed2397b5f5"><td class="memSeparator" colspan="2"> </td></tr> 52<tr class="memitem:ga4d94c57c6fc46b7af71d37d507bcdbf8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga4d94c57c6fc46b7af71d37d507bcdbf8">wind_utf8ucs2_length</a> (const char *in, size_t *out_len)</td></tr> 53<tr class="separator:ga4d94c57c6fc46b7af71d37d507bcdbf8"><td class="memSeparator" colspan="2"> </td></tr> 54<tr class="memitem:ga2e43e4a99781db965162b9a9c6333307"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga2e43e4a99781db965162b9a9c6333307">wind_ucs2utf8</a> (const uint16_t *in, size_t in_len, char *out, size_t *out_len)</td></tr> 55<tr class="separator:ga2e43e4a99781db965162b9a9c6333307"><td class="memSeparator" colspan="2"> </td></tr> 56<tr class="memitem:ga53b8caa6437d7f903d819c76450be3c1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wind.html#ga53b8caa6437d7f903d819c76450be3c1">wind_ucs2utf8_length</a> (const uint16_t *in, size_t in_len, size_t *out_len)</td></tr> 57<tr class="separator:ga53b8caa6437d7f903d819c76450be3c1"><td class="memSeparator" colspan="2"> </td></tr> 58</table> 59<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 60<h2 class="groupheader">Function Documentation</h2> 61<a id="gaa4d80a988cf7d0cc8c15c1652516ec72"></a> 62<h2 class="memtitle"><span class="permalink"><a href="#gaa4d80a988cf7d0cc8c15c1652516ec72">◆ </a></span>wind_profile()</h2> 63 64<div class="memitem"> 65<div class="memproto"> 66 <table class="memname"> 67 <tr> 68 <td class="memname">int wind_profile </td> 69 <td>(</td> 70 <td class="paramtype">const char * </td> 71 <td class="paramname"><em>name</em>, </td> 72 </tr> 73 <tr> 74 <td class="paramkey"></td> 75 <td></td> 76 <td class="paramtype">wind_profile_flags * </td> 77 <td class="paramname"><em>flags</em> </td> 78 </tr> 79 <tr> 80 <td></td> 81 <td>)</td> 82 <td></td><td></td> 83 </tr> 84 </table> 85</div><div class="memdoc"> 86<p>Try to find the profile given a name.</p> 87<dl class="params"><dt>Parameters</dt><dd> 88 <table class="params"> 89 <tr><td class="paramname">name</td><td>name of the profile. </td></tr> 90 <tr><td class="paramname">flags</td><td>the resulting profile.</td></tr> 91 </table> 92 </dd> 93</dl> 94<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 95 96</div> 97</div> 98<a id="gacd005d89adeb764c77c97f1c4d2e1d82"></a> 99<h2 class="memtitle"><span class="permalink"><a href="#gacd005d89adeb764c77c97f1c4d2e1d82">◆ </a></span>wind_punycode_label_toascii()</h2> 100 101<div class="memitem"> 102<div class="memproto"> 103 <table class="memname"> 104 <tr> 105 <td class="memname">int wind_punycode_label_toascii </td> 106 <td>(</td> 107 <td class="paramtype">const uint32_t * </td> 108 <td class="paramname"><em>in</em>, </td> 109 </tr> 110 <tr> 111 <td class="paramkey"></td> 112 <td></td> 113 <td class="paramtype">size_t </td> 114 <td class="paramname"><em>in_len</em>, </td> 115 </tr> 116 <tr> 117 <td class="paramkey"></td> 118 <td></td> 119 <td class="paramtype">char * </td> 120 <td class="paramname"><em>out</em>, </td> 121 </tr> 122 <tr> 123 <td class="paramkey"></td> 124 <td></td> 125 <td class="paramtype">size_t * </td> 126 <td class="paramname"><em>out_len</em> </td> 127 </tr> 128 <tr> 129 <td></td> 130 <td>)</td> 131 <td></td><td></td> 132 </tr> 133 </table> 134</div><div class="memdoc"> 135<p>Convert an UCS4 string to a puny-coded DNS label string suitable when combined with delimiters and other labels for DNS lookup.</p> 136<dl class="params"><dt>Parameters</dt><dd> 137 <table class="params"> 138 <tr><td class="paramname">in</td><td>an UCS4 string to convert </td></tr> 139 <tr><td class="paramname">in_len</td><td>the length of in. </td></tr> 140 <tr><td class="paramname">out</td><td>the resulting puny-coded string. The string is not NUL terminatied. </td></tr> 141 <tr><td class="paramname">out_len</td><td>before processing out_len should be the length of the out variable, after processing it will be the length of the out string.</td></tr> 142 </table> 143 </dd> 144</dl> 145<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 146 147</div> 148</div> 149<a id="gadc7260aad792625f5e4d59f5d645bfaa"></a> 150<h2 class="memtitle"><span class="permalink"><a href="#gadc7260aad792625f5e4d59f5d645bfaa">◆ </a></span>wind_stringprep()</h2> 151 152<div class="memitem"> 153<div class="memproto"> 154 <table class="memname"> 155 <tr> 156 <td class="memname">int wind_stringprep </td> 157 <td>(</td> 158 <td class="paramtype">const uint32_t * </td> 159 <td class="paramname"><em>in</em>, </td> 160 </tr> 161 <tr> 162 <td class="paramkey"></td> 163 <td></td> 164 <td class="paramtype">size_t </td> 165 <td class="paramname"><em>in_len</em>, </td> 166 </tr> 167 <tr> 168 <td class="paramkey"></td> 169 <td></td> 170 <td class="paramtype">uint32_t * </td> 171 <td class="paramname"><em>out</em>, </td> 172 </tr> 173 <tr> 174 <td class="paramkey"></td> 175 <td></td> 176 <td class="paramtype">size_t * </td> 177 <td class="paramname"><em>out_len</em>, </td> 178 </tr> 179 <tr> 180 <td class="paramkey"></td> 181 <td></td> 182 <td class="paramtype">wind_profile_flags </td> 183 <td class="paramname"><em>flags</em> </td> 184 </tr> 185 <tr> 186 <td></td> 187 <td>)</td> 188 <td></td><td></td> 189 </tr> 190 </table> 191</div><div class="memdoc"> 192<p>Process a input UCS4 string according a string-prep profile.</p> 193<dl class="params"><dt>Parameters</dt><dd> 194 <table class="params"> 195 <tr><td class="paramname">in</td><td>input UCS4 string to process </td></tr> 196 <tr><td class="paramname">in_len</td><td>length of the input string </td></tr> 197 <tr><td class="paramname">out</td><td>output UCS4 string </td></tr> 198 <tr><td class="paramname">out_len</td><td>length of the output string. </td></tr> 199 <tr><td class="paramname">flags</td><td>stringprep profile.</td></tr> 200 </table> 201 </dd> 202</dl> 203<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 204 205</div> 206</div> 207<a id="ga15a41f929d8b1be8528e3ecbdf8264f0"></a> 208<h2 class="memtitle"><span class="permalink"><a href="#ga15a41f929d8b1be8528e3ecbdf8264f0">◆ </a></span>wind_ucs2read()</h2> 209 210<div class="memitem"> 211<div class="memproto"> 212 <table class="memname"> 213 <tr> 214 <td class="memname">int wind_ucs2read </td> 215 <td>(</td> 216 <td class="paramtype">const void * </td> 217 <td class="paramname"><em>ptr</em>, </td> 218 </tr> 219 <tr> 220 <td class="paramkey"></td> 221 <td></td> 222 <td class="paramtype">size_t </td> 223 <td class="paramname"><em>len</em>, </td> 224 </tr> 225 <tr> 226 <td class="paramkey"></td> 227 <td></td> 228 <td class="paramtype">unsigned int * </td> 229 <td class="paramname"><em>flags</em>, </td> 230 </tr> 231 <tr> 232 <td class="paramkey"></td> 233 <td></td> 234 <td class="paramtype">uint16_t * </td> 235 <td class="paramname"><em>out</em>, </td> 236 </tr> 237 <tr> 238 <td class="paramkey"></td> 239 <td></td> 240 <td class="paramtype">size_t * </td> 241 <td class="paramname"><em>out_len</em> </td> 242 </tr> 243 <tr> 244 <td></td> 245 <td>)</td> 246 <td></td><td></td> 247 </tr> 248 </table> 249</div><div class="memdoc"> 250<p>Read in an UCS2 from a buffer.</p> 251<dl class="params"><dt>Parameters</dt><dd> 252 <table class="params"> 253 <tr><td class="paramname">ptr</td><td>The input buffer to read from. </td></tr> 254 <tr><td class="paramname">len</td><td>the length of the input buffer. </td></tr> 255 <tr><td class="paramname">flags</td><td>Flags to control the behavior of the function. </td></tr> 256 <tr><td class="paramname">out</td><td>the output UCS2, the array must be at least out/2 long. </td></tr> 257 <tr><td class="paramname">out_len</td><td>the output length</td></tr> 258 </table> 259 </dd> 260</dl> 261<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise. </dd></dl> 262<p>if len is zero, flags are unchanged</p> 263<p>if len is odd, WIND_ERR_LENGTH_NOT_MOD2 is returned</p> 264<p>If the flags WIND_RW_BOM is set, check for BOM. If not BOM is found, check is LE/BE flag is already and use that otherwise fail with WIND_ERR_NO_BOM. When done, clear WIND_RW_BOM and the LE/BE flag and set the resulting LE/BE flag.</p> 265 266</div> 267</div> 268<a id="ga2e43e4a99781db965162b9a9c6333307"></a> 269<h2 class="memtitle"><span class="permalink"><a href="#ga2e43e4a99781db965162b9a9c6333307">◆ </a></span>wind_ucs2utf8()</h2> 270 271<div class="memitem"> 272<div class="memproto"> 273 <table class="memname"> 274 <tr> 275 <td class="memname">int wind_ucs2utf8 </td> 276 <td>(</td> 277 <td class="paramtype">const uint16_t * </td> 278 <td class="paramname"><em>in</em>, </td> 279 </tr> 280 <tr> 281 <td class="paramkey"></td> 282 <td></td> 283 <td class="paramtype">size_t </td> 284 <td class="paramname"><em>in_len</em>, </td> 285 </tr> 286 <tr> 287 <td class="paramkey"></td> 288 <td></td> 289 <td class="paramtype">char * </td> 290 <td class="paramname"><em>out</em>, </td> 291 </tr> 292 <tr> 293 <td class="paramkey"></td> 294 <td></td> 295 <td class="paramtype">size_t * </td> 296 <td class="paramname"><em>out_len</em> </td> 297 </tr> 298 <tr> 299 <td></td> 300 <td>)</td> 301 <td></td><td></td> 302 </tr> 303 </table> 304</div><div class="memdoc"> 305<p>Convert an UCS2 string to a UTF-8 string.</p> 306<dl class="params"><dt>Parameters</dt><dd> 307 <table class="params"> 308 <tr><td class="paramname">in</td><td>an UCS2 string to convert. </td></tr> 309 <tr><td class="paramname">in_len</td><td>the length of the in UCS2 string. </td></tr> 310 <tr><td class="paramname">out</td><td>the resulting UTF-8 strint, must be at least <a class="el" href="group__wind.html#ga53b8caa6437d7f903d819c76450be3c1">wind_ucs2utf8_length()</a> long. If out is NULL, the function will calculate the needed space for the out variable (just like <a class="el" href="group__wind.html#ga53b8caa6437d7f903d819c76450be3c1">wind_ucs2utf8_length()</a>). </td></tr> 311 <tr><td class="paramname">out_len</td><td>before processing out_len should be the length of the out variable, after processing it will be the length of the out string.</td></tr> 312 </table> 313 </dd> 314</dl> 315<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 316 317</div> 318</div> 319<a id="ga53b8caa6437d7f903d819c76450be3c1"></a> 320<h2 class="memtitle"><span class="permalink"><a href="#ga53b8caa6437d7f903d819c76450be3c1">◆ </a></span>wind_ucs2utf8_length()</h2> 321 322<div class="memitem"> 323<div class="memproto"> 324 <table class="memname"> 325 <tr> 326 <td class="memname">int wind_ucs2utf8_length </td> 327 <td>(</td> 328 <td class="paramtype">const uint16_t * </td> 329 <td class="paramname"><em>in</em>, </td> 330 </tr> 331 <tr> 332 <td class="paramkey"></td> 333 <td></td> 334 <td class="paramtype">size_t </td> 335 <td class="paramname"><em>in_len</em>, </td> 336 </tr> 337 <tr> 338 <td class="paramkey"></td> 339 <td></td> 340 <td class="paramtype">size_t * </td> 341 <td class="paramname"><em>out_len</em> </td> 342 </tr> 343 <tr> 344 <td></td> 345 <td>)</td> 346 <td></td><td></td> 347 </tr> 348 </table> 349</div><div class="memdoc"> 350<p>Calculate the length of from converting a UCS2 string to an UTF-8 string.</p> 351<dl class="params"><dt>Parameters</dt><dd> 352 <table class="params"> 353 <tr><td class="paramname">in</td><td>an UCS2 string to convert. </td></tr> 354 <tr><td class="paramname">in_len</td><td>an UCS2 string length to convert. </td></tr> 355 <tr><td class="paramname">out_len</td><td>the length of the resulting UTF-8 string.</td></tr> 356 </table> 357 </dd> 358</dl> 359<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 360 361</div> 362</div> 363<a id="ga20668242d9ab39011edbcae295ee9348"></a> 364<h2 class="memtitle"><span class="permalink"><a href="#ga20668242d9ab39011edbcae295ee9348">◆ </a></span>wind_ucs2write()</h2> 365 366<div class="memitem"> 367<div class="memproto"> 368 <table class="memname"> 369 <tr> 370 <td class="memname">int wind_ucs2write </td> 371 <td>(</td> 372 <td class="paramtype">const uint16_t * </td> 373 <td class="paramname"><em>in</em>, </td> 374 </tr> 375 <tr> 376 <td class="paramkey"></td> 377 <td></td> 378 <td class="paramtype">size_t </td> 379 <td class="paramname"><em>in_len</em>, </td> 380 </tr> 381 <tr> 382 <td class="paramkey"></td> 383 <td></td> 384 <td class="paramtype">unsigned int * </td> 385 <td class="paramname"><em>flags</em>, </td> 386 </tr> 387 <tr> 388 <td class="paramkey"></td> 389 <td></td> 390 <td class="paramtype">void * </td> 391 <td class="paramname"><em>ptr</em>, </td> 392 </tr> 393 <tr> 394 <td class="paramkey"></td> 395 <td></td> 396 <td class="paramtype">size_t * </td> 397 <td class="paramname"><em>out_len</em> </td> 398 </tr> 399 <tr> 400 <td></td> 401 <td>)</td> 402 <td></td><td></td> 403 </tr> 404 </table> 405</div><div class="memdoc"> 406<p>Write an UCS2 string to a buffer.</p> 407<dl class="params"><dt>Parameters</dt><dd> 408 <table class="params"> 409 <tr><td class="paramname">in</td><td>The input UCS2 string. </td></tr> 410 <tr><td class="paramname">in_len</td><td>the length of the input buffer. </td></tr> 411 <tr><td class="paramname">flags</td><td>Flags to control the behavior of the function. </td></tr> 412 <tr><td class="paramname">ptr</td><td>The input buffer to write to, the array must be at least (in + 1) * 2 bytes long. </td></tr> 413 <tr><td class="paramname">out_len</td><td>the output length</td></tr> 414 </table> 415 </dd> 416</dl> 417<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise. </dd></dl> 418<p>If in buffer is not of length be mod 2, WIND_ERR_LENGTH_NOT_MOD2 is returned</p> 419<p>On zero input length, flags are preserved</p> 420<p>If flags have WIND_RW_BOM set, the byte order mark is written first to the output data</p> 421<p>If the output wont fit into out_len, WIND_ERR_OVERRUN is returned</p> 422 423</div> 424</div> 425<a id="ga502199d8981249373095da43bb5d256d"></a> 426<h2 class="memtitle"><span class="permalink"><a href="#ga502199d8981249373095da43bb5d256d">◆ </a></span>wind_ucs4utf8()</h2> 427 428<div class="memitem"> 429<div class="memproto"> 430 <table class="memname"> 431 <tr> 432 <td class="memname">int wind_ucs4utf8 </td> 433 <td>(</td> 434 <td class="paramtype">const uint32_t * </td> 435 <td class="paramname"><em>in</em>, </td> 436 </tr> 437 <tr> 438 <td class="paramkey"></td> 439 <td></td> 440 <td class="paramtype">size_t </td> 441 <td class="paramname"><em>in_len</em>, </td> 442 </tr> 443 <tr> 444 <td class="paramkey"></td> 445 <td></td> 446 <td class="paramtype">char * </td> 447 <td class="paramname"><em>out</em>, </td> 448 </tr> 449 <tr> 450 <td class="paramkey"></td> 451 <td></td> 452 <td class="paramtype">size_t * </td> 453 <td class="paramname"><em>out_len</em> </td> 454 </tr> 455 <tr> 456 <td></td> 457 <td>)</td> 458 <td></td><td></td> 459 </tr> 460 </table> 461</div><div class="memdoc"> 462<p>Convert an UCS4 string to a UTF-8 string.</p> 463<dl class="params"><dt>Parameters</dt><dd> 464 <table class="params"> 465 <tr><td class="paramname">in</td><td>an UCS4 string to convert. </td></tr> 466 <tr><td class="paramname">in_len</td><td>the length input array.</td></tr> 467 <tr><td class="paramname">out</td><td>the resulting UTF-8 strint, must be at least <a class="el" href="group__wind.html#ga44d8951aee3e12f1812ef193bad738ef">wind_ucs4utf8_length()</a> + 1 long (the extra char for the NUL). If out is NULL, the function will calculate the needed space for the out variable (just like <a class="el" href="group__wind.html#ga44d8951aee3e12f1812ef193bad738ef">wind_ucs4utf8_length()</a>).</td></tr> 468 <tr><td class="paramname">out_len</td><td>before processing out_len should be the length of the out variable, after processing it will be the length of the out string.</td></tr> 469 </table> 470 </dd> 471</dl> 472<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 473 474</div> 475</div> 476<a id="ga44d8951aee3e12f1812ef193bad738ef"></a> 477<h2 class="memtitle"><span class="permalink"><a href="#ga44d8951aee3e12f1812ef193bad738ef">◆ </a></span>wind_ucs4utf8_length()</h2> 478 479<div class="memitem"> 480<div class="memproto"> 481 <table class="memname"> 482 <tr> 483 <td class="memname">int wind_ucs4utf8_length </td> 484 <td>(</td> 485 <td class="paramtype">const uint32_t * </td> 486 <td class="paramname"><em>in</em>, </td> 487 </tr> 488 <tr> 489 <td class="paramkey"></td> 490 <td></td> 491 <td class="paramtype">size_t </td> 492 <td class="paramname"><em>in_len</em>, </td> 493 </tr> 494 <tr> 495 <td class="paramkey"></td> 496 <td></td> 497 <td class="paramtype">size_t * </td> 498 <td class="paramname"><em>out_len</em> </td> 499 </tr> 500 <tr> 501 <td></td> 502 <td>)</td> 503 <td></td><td></td> 504 </tr> 505 </table> 506</div><div class="memdoc"> 507<p>Calculate the length of from converting a UCS4 string to an UTF-8 string.</p> 508<dl class="params"><dt>Parameters</dt><dd> 509 <table class="params"> 510 <tr><td class="paramname">in</td><td>an UCS4 string to convert. </td></tr> 511 <tr><td class="paramname">in_len</td><td>the length of UCS4 string to convert. </td></tr> 512 <tr><td class="paramname">out_len</td><td>the length of the resulting UTF-8 string.</td></tr> 513 </table> 514 </dd> 515</dl> 516<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 517 518</div> 519</div> 520<a id="ga736f8b06adc2b70bd32ce2ed2397b5f5"></a> 521<h2 class="memtitle"><span class="permalink"><a href="#ga736f8b06adc2b70bd32ce2ed2397b5f5">◆ </a></span>wind_utf8ucs2()</h2> 522 523<div class="memitem"> 524<div class="memproto"> 525 <table class="memname"> 526 <tr> 527 <td class="memname">int wind_utf8ucs2 </td> 528 <td>(</td> 529 <td class="paramtype">const char * </td> 530 <td class="paramname"><em>in</em>, </td> 531 </tr> 532 <tr> 533 <td class="paramkey"></td> 534 <td></td> 535 <td class="paramtype">uint16_t * </td> 536 <td class="paramname"><em>out</em>, </td> 537 </tr> 538 <tr> 539 <td class="paramkey"></td> 540 <td></td> 541 <td class="paramtype">size_t * </td> 542 <td class="paramname"><em>out_len</em> </td> 543 </tr> 544 <tr> 545 <td></td> 546 <td>)</td> 547 <td></td><td></td> 548 </tr> 549 </table> 550</div><div class="memdoc"> 551<p>Convert an UTF-8 string to an UCS2 string.</p> 552<dl class="params"><dt>Parameters</dt><dd> 553 <table class="params"> 554 <tr><td class="paramname">in</td><td>an UTF-8 string to convert. </td></tr> 555 <tr><td class="paramname">out</td><td>the resulting UCS2 strint, must be at least <a class="el" href="group__wind.html#ga4d94c57c6fc46b7af71d37d507bcdbf8">wind_utf8ucs2_length()</a> long. If out is NULL, the function will calculate the needed space for the out variable (just like <a class="el" href="group__wind.html#ga4d94c57c6fc46b7af71d37d507bcdbf8">wind_utf8ucs2_length()</a>). </td></tr> 556 <tr><td class="paramname">out_len</td><td>before processing out_len should be the length of the out variable, after processing it will be the length of the out string.</td></tr> 557 </table> 558 </dd> 559</dl> 560<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 561 562</div> 563</div> 564<a id="ga4d94c57c6fc46b7af71d37d507bcdbf8"></a> 565<h2 class="memtitle"><span class="permalink"><a href="#ga4d94c57c6fc46b7af71d37d507bcdbf8">◆ </a></span>wind_utf8ucs2_length()</h2> 566 567<div class="memitem"> 568<div class="memproto"> 569 <table class="memname"> 570 <tr> 571 <td class="memname">int wind_utf8ucs2_length </td> 572 <td>(</td> 573 <td class="paramtype">const char * </td> 574 <td class="paramname"><em>in</em>, </td> 575 </tr> 576 <tr> 577 <td class="paramkey"></td> 578 <td></td> 579 <td class="paramtype">size_t * </td> 580 <td class="paramname"><em>out_len</em> </td> 581 </tr> 582 <tr> 583 <td></td> 584 <td>)</td> 585 <td></td><td></td> 586 </tr> 587 </table> 588</div><div class="memdoc"> 589<p>Calculate the length of from converting a UTF-8 string to a UCS2 string.</p> 590<dl class="params"><dt>Parameters</dt><dd> 591 <table class="params"> 592 <tr><td class="paramname">in</td><td>an UTF-8 string to convert. </td></tr> 593 <tr><td class="paramname">out_len</td><td>the length of the resulting UCS4 string.</td></tr> 594 </table> 595 </dd> 596</dl> 597<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 598 599</div> 600</div> 601<a id="ga31f62f5e3ca885bd8afce415c9e83c4c"></a> 602<h2 class="memtitle"><span class="permalink"><a href="#ga31f62f5e3ca885bd8afce415c9e83c4c">◆ </a></span>wind_utf8ucs4()</h2> 603 604<div class="memitem"> 605<div class="memproto"> 606 <table class="memname"> 607 <tr> 608 <td class="memname">int wind_utf8ucs4 </td> 609 <td>(</td> 610 <td class="paramtype">const char * </td> 611 <td class="paramname"><em>in</em>, </td> 612 </tr> 613 <tr> 614 <td class="paramkey"></td> 615 <td></td> 616 <td class="paramtype">uint32_t * </td> 617 <td class="paramname"><em>out</em>, </td> 618 </tr> 619 <tr> 620 <td class="paramkey"></td> 621 <td></td> 622 <td class="paramtype">size_t * </td> 623 <td class="paramname"><em>out_len</em> </td> 624 </tr> 625 <tr> 626 <td></td> 627 <td>)</td> 628 <td></td><td></td> 629 </tr> 630 </table> 631</div><div class="memdoc"> 632<p>Convert an UTF-8 string to an UCS4 string.</p> 633<dl class="params"><dt>Parameters</dt><dd> 634 <table class="params"> 635 <tr><td class="paramname">in</td><td>an UTF-8 string to convert. </td></tr> 636 <tr><td class="paramname">out</td><td>the resulting UCS4 strint, must be at least <a class="el" href="group__wind.html#gabeccc02ed5f1f90684b10a6f892e89d3">wind_utf8ucs4_length()</a> long. If out is NULL, the function will calculate the needed space for the out variable (just like <a class="el" href="group__wind.html#gabeccc02ed5f1f90684b10a6f892e89d3">wind_utf8ucs4_length()</a>). </td></tr> 637 <tr><td class="paramname">out_len</td><td>before processing out_len should be the length of the out variable, after processing it will be the length of the out string.</td></tr> 638 </table> 639 </dd> 640</dl> 641<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 642 643</div> 644</div> 645<a id="gabeccc02ed5f1f90684b10a6f892e89d3"></a> 646<h2 class="memtitle"><span class="permalink"><a href="#gabeccc02ed5f1f90684b10a6f892e89d3">◆ </a></span>wind_utf8ucs4_length()</h2> 647 648<div class="memitem"> 649<div class="memproto"> 650 <table class="memname"> 651 <tr> 652 <td class="memname">int wind_utf8ucs4_length </td> 653 <td>(</td> 654 <td class="paramtype">const char * </td> 655 <td class="paramname"><em>in</em>, </td> 656 </tr> 657 <tr> 658 <td class="paramkey"></td> 659 <td></td> 660 <td class="paramtype">size_t * </td> 661 <td class="paramname"><em>out_len</em> </td> 662 </tr> 663 <tr> 664 <td></td> 665 <td>)</td> 666 <td></td><td></td> 667 </tr> 668 </table> 669</div><div class="memdoc"> 670<p>Calculate the length of from converting a UTF-8 string to a UCS4 string.</p> 671<dl class="params"><dt>Parameters</dt><dd> 672 <table class="params"> 673 <tr><td class="paramname">in</td><td>an UTF-8 string to convert. </td></tr> 674 <tr><td class="paramname">out_len</td><td>the length of the resulting UCS4 string.</td></tr> 675 </table> 676 </dd> 677</dl> 678<dl class="section return"><dt>Returns</dt><dd>returns 0 on success, an wind error code otherwise </dd></dl> 679 680</div> 681</div> 682</div><!-- contents --> 683<hr size="1"><address style="text-align: right;"><small> 684Generated on Tue Nov 15 2022 14:04:26 for Heimdal wind library by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address> 685</body> 686</html> 687