xref: /netbsd-src/crypto/external/bsd/heimdal/dist/doc/doxyout/wind/html/group__wind.html (revision dd75ac5b443e967e26b4d18cc8cd5eb98512bfbf)
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&amp;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&#160;</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">&#160;</td></tr>
34<tr class="memitem:gadc7260aad792625f5e4d59f5d645bfaa"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
36<tr class="memitem:gaa4d80a988cf7d0cc8c15c1652516ec72"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
38<tr class="memitem:ga31f62f5e3ca885bd8afce415c9e83c4c"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
40<tr class="memitem:gabeccc02ed5f1f90684b10a6f892e89d3"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
42<tr class="memitem:ga502199d8981249373095da43bb5d256d"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
44<tr class="memitem:ga44d8951aee3e12f1812ef193bad738ef"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
46<tr class="memitem:ga15a41f929d8b1be8528e3ecbdf8264f0"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
48<tr class="memitem:ga20668242d9ab39011edbcae295ee9348"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
50<tr class="memitem:ga736f8b06adc2b70bd32ce2ed2397b5f5"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
52<tr class="memitem:ga4d94c57c6fc46b7af71d37d507bcdbf8"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
54<tr class="memitem:ga2e43e4a99781db965162b9a9c6333307"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</td></tr>
56<tr class="memitem:ga53b8caa6437d7f903d819c76450be3c1"><td class="memItemLeft" align="right" valign="top">int&#160;</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">&#160;</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">&#9670;&nbsp;</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 *&#160;</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 *&#160;</td>
77          <td class="paramname"><em>flags</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</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 *&#160;</td>
126          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</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 *&#160;</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&#160;</td>
183          <td class="paramname"><em>flags</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</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 *&#160;</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 *&#160;</td>
241          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</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 *&#160;</td>
296          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</td>
341          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</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 *&#160;</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 *&#160;</td>
397          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</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 *&#160;</td>
453          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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&#160;</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 *&#160;</td>
498          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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 *&#160;</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 *&#160;</td>
542          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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 *&#160;</td>
580          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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 *&#160;</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 *&#160;</td>
623          <td class="paramname"><em>out_len</em>&#160;</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">&#9670;&nbsp;</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 *&#160;</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 *&#160;</td>
661          <td class="paramname"><em>out_len</em>&#160;</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&nbsp;<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