2011-10-05 03:23:29 -04:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=UTF-8" >
< title > Heimdalwindlibrary: Heimdal wind library< / title >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" >
< / head > < body >
< p >
< a href = "http://www.h5l.org/" > < img src = "http://www.h5l.org/keyhole-heimdal.png" alt = "keyhole logo" / > < / a >
< / p >
<!-- end of header marker -->
<!-- Generated by Doxygen 1.5.6 -->
< div class = "navigation" id = "top" >
< div class = "tabs" >
< ul >
< li > < a href = "index.html" > < span > Main Page< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Modules< / span > < / a > < / li >
< / ul >
< / div >
< / div >
< div class = "contents" >
< h1 > Heimdal wind library< / h1 > < table border = "0" cellpadding = "0" cellspacing = "0" >
< tr > < td > < / td > < / tr >
< tr > < td colspan = "2" > < br > < h2 > Functions< / h2 > < / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#gcd005d89adeb764c77c97f1c4d2e1d82" > wind_punycode_label_toascii< / a > (const uint32_t *in, size_t in_len, char *out, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#gdc7260aad792625f5e4d59f5d645bfaa" > wind_stringprep< / a > (const uint32_t *in, size_t in_len, uint32_t *out, size_t *out_len, wind_profile_flags flags)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#ga4d80a988cf7d0cc8c15c1652516ec72" > wind_profile< / a > (const char *name, wind_profile_flags *flags)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g31f62f5e3ca885bd8afce415c9e83c4c" > wind_utf8ucs4< / a > (const char *in, uint32_t *out, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#gbeccc02ed5f1f90684b10a6f892e89d3" > wind_utf8ucs4_length< / a > (const char *in, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g502199d8981249373095da43bb5d256d" > wind_ucs4utf8< / a > (const uint32_t *in, size_t in_len, char *out, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g44d8951aee3e12f1812ef193bad738ef" > wind_ucs4utf8_length< / a > (const uint32_t *in, size_t in_len, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g15a41f929d8b1be8528e3ecbdf8264f0" > wind_ucs2read< / a > (const void *ptr, size_t len, unsigned int *flags, uint16_t *out, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g20668242d9ab39011edbcae295ee9348" > wind_ucs2write< / a > (const uint16_t *in, size_t in_len, unsigned int *flags, void *ptr, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g736f8b06adc2b70bd32ce2ed2397b5f5" > wind_utf8ucs2< / a > (const char *in, uint16_t *out, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g4d94c57c6fc46b7af71d37d507bcdbf8" > wind_utf8ucs2_length< / a > (const char *in, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g2e43e4a99781db965162b9a9c6333307" > wind_ucs2utf8< / a > (const uint16_t *in, size_t in_len, char *out, size_t *out_len)< / td > < / tr >
< tr > < td class = "memItemLeft" nowrap align = "right" valign = "top" > int < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__wind.html#g53b8caa6437d7f903d819c76450be3c1" > wind_ucs2utf8_length< / a > (const uint16_t *in, size_t in_len, size_t *out_len)< / td > < / tr >
< / table >
< hr > < a name = "_details" > < / a > < h2 > Detailed Description< / h2 >
< hr > < h2 > Function Documentation< / h2 >
< a class = "anchor" name = "ga4d80a988cf7d0cc8c15c1652516ec72" > < / a > <!-- doxytag: member="stringprep.c::wind_profile" ref="ga4d80a988cf7d0cc8c15c1652516ec72" args="(const char *name, wind_profile_flags *flags)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_profile < / td >
< td > (< / td >
< td class = "paramtype" > const char * < / td >
< td class = "paramname" > < em > name< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > wind_profile_flags * < / td >
< td class = "paramname" > < em > flags< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Try to find the profile given a name.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > name< / em > < / td > < td > name of the profile. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > flags< / em > < / td > < td > the resulting profile.< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "gcd005d89adeb764c77c97f1c4d2e1d82" > < / a > <!-- doxytag: member="punycode.c::wind_punycode_label_toascii" ref="gcd005d89adeb764c77c97f1c4d2e1d82" args="(const uint32_t *in, size_t in_len, char *out, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_punycode_label_toascii < / td >
< td > (< / td >
< td class = "paramtype" > const uint32_t * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > in_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > char * < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Convert an UCS4 string to a puny-coded DNS label string suitable when combined with delimiters and other labels for DNS lookup.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UCS4 string to convert < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in_len< / em > < / td > < td > the length of in. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out< / em > < / td > < td > the resulting puny-coded string. The string is not NUL terminatied. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / 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 >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "gdc7260aad792625f5e4d59f5d645bfaa" > < / a > <!-- doxytag: member="stringprep.c::wind_stringprep" ref="gdc7260aad792625f5e4d59f5d645bfaa" args="(const uint32_t *in, size_t in_len, uint32_t *out, size_t *out_len, wind_profile_flags flags)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_stringprep < / td >
< td > (< / td >
< td class = "paramtype" > const uint32_t * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > in_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint32_t * < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > wind_profile_flags < / td >
< td class = "paramname" > < em > flags< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Process a input UCS4 string according a string-prep profile.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > input UCS4 string to process < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in_len< / em > < / td > < td > length of the input string < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out< / em > < / td > < td > output UCS4 string < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / td > < td > length of the output string. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > flags< / em > < / td > < td > stringprep profile.< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "g15a41f929d8b1be8528e3ecbdf8264f0" > < / a > <!-- doxytag: member="utf8.c::wind_ucs2read" ref="g15a41f929d8b1be8528e3ecbdf8264f0" args="(const void *ptr, size_t len, unsigned int *flags, uint16_t *out, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_ucs2read < / td >
< td > (< / td >
< td class = "paramtype" > const void * < / td >
< td class = "paramname" > < em > ptr< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > unsigned int * < / td >
< td class = "paramname" > < em > flags< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint16_t * < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Read in an UCS2 from a buffer.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > ptr< / em > < / td > < td > The input buffer to read from. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > len< / em > < / td > < td > the length of the input buffer. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > flags< / em > < / td > < td > Flags to control the behavior of the function. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out< / em > < / td > < td > the output UCS2, the array must be at least out/2 long. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / td > < td > the output length< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise. < / dd > < / dl >
< p >
if len is zero, flags are unchanged< p >
if len is odd, WIND_ERR_LENGTH_NOT_MOD2 is returned< 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.
< / div >
< / div > < p >
< a class = "anchor" name = "g2e43e4a99781db965162b9a9c6333307" > < / a > <!-- doxytag: member="utf8.c::wind_ucs2utf8" ref="g2e43e4a99781db965162b9a9c6333307" args="(const uint16_t *in, size_t in_len, char *out, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_ucs2utf8 < / td >
< td > (< / td >
< td class = "paramtype" > const uint16_t * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > in_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > char * < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Convert an UCS2 string to a UTF-8 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UCS2 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in_len< / em > < / td > < td > the length of the in UCS2 string. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out< / em > < / td > < td > the resulting UTF-8 strint, must be at least < a class = "el" href = "group__wind.html#g53b8caa6437d7f903d819c76450be3c1" > 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#g53b8caa6437d7f903d819c76450be3c1" > wind_ucs2utf8_length()< / a > ). < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / 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 >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "g53b8caa6437d7f903d819c76450be3c1" > < / a > <!-- doxytag: member="utf8.c::wind_ucs2utf8_length" ref="g53b8caa6437d7f903d819c76450be3c1" args="(const uint16_t *in, size_t in_len, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_ucs2utf8_length < / td >
< td > (< / td >
< td class = "paramtype" > const uint16_t * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > in_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Calculate the length of from converting a UCS2 string to an UTF-8 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UCS2 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in_len< / em > < / td > < td > an UCS2 string length to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / td > < td > the length of the resulting UTF-8 string.< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "g20668242d9ab39011edbcae295ee9348" > < / a > <!-- doxytag: member="utf8.c::wind_ucs2write" ref="g20668242d9ab39011edbcae295ee9348" args="(const uint16_t *in, size_t in_len, unsigned int *flags, void *ptr, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_ucs2write < / td >
< td > (< / td >
< td class = "paramtype" > const uint16_t * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > in_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > unsigned int * < / td >
< td class = "paramname" > < em > flags< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > void * < / td >
< td class = "paramname" > < em > ptr< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Write an UCS2 string to a buffer.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > The input UCS2 string. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in_len< / em > < / td > < td > the length of the input buffer. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > flags< / em > < / td > < td > Flags to control the behavior of the function. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > ptr< / em > < / td > < td > The input buffer to write to, the array must be at least (in + 1) * 2 bytes long. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / td > < td > the output length< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise. < / dd > < / dl >
< p >
If in buffer is not of length be mod 2, WIND_ERR_LENGTH_NOT_MOD2 is returned< p >
On zero input length, flags are preserved< p >
If flags have WIND_RW_BOM set, the byte order mark is written first to the output data< p >
If the output wont fit into out_len, WIND_ERR_OVERRUN is returned
< / div >
< / div > < p >
< a class = "anchor" name = "g502199d8981249373095da43bb5d256d" > < / a > <!-- doxytag: member="utf8.c::wind_ucs4utf8" ref="g502199d8981249373095da43bb5d256d" args="(const uint32_t *in, size_t in_len, char *out, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_ucs4utf8 < / td >
< td > (< / td >
< td class = "paramtype" > const uint32_t * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > in_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > char * < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Convert an UCS4 string to a UTF-8 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UCS4 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in_len< / em > < / td > < td > the length input array.< / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out< / em > < / td > < td > the resulting UTF-8 strint, must be at least < a class = "el" href = "group__wind.html#g44d8951aee3e12f1812ef193bad738ef" > 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#g44d8951aee3e12f1812ef193bad738ef" > wind_ucs4utf8_length()< / a > ).< / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / 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 >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "g44d8951aee3e12f1812ef193bad738ef" > < / a > <!-- doxytag: member="utf8.c::wind_ucs4utf8_length" ref="g44d8951aee3e12f1812ef193bad738ef" args="(const uint32_t *in, size_t in_len, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_ucs4utf8_length < / td >
< td > (< / td >
< td class = "paramtype" > const uint32_t * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t < / td >
< td class = "paramname" > < em > in_len< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Calculate the length of from converting a UCS4 string to an UTF-8 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UCS4 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in_len< / em > < / td > < td > the length of UCS4 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / td > < td > the length of the resulting UTF-8 string.< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "g736f8b06adc2b70bd32ce2ed2397b5f5" > < / a > <!-- doxytag: member="utf8.c::wind_utf8ucs2" ref="g736f8b06adc2b70bd32ce2ed2397b5f5" args="(const char *in, uint16_t *out, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_utf8ucs2 < / td >
< td > (< / td >
< td class = "paramtype" > const char * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint16_t * < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Convert an UTF-8 string to an UCS2 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UTF-8 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out< / em > < / td > < td > the resulting UCS2 strint, must be at least < a class = "el" href = "group__wind.html#g4d94c57c6fc46b7af71d37d507bcdbf8" > 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#g4d94c57c6fc46b7af71d37d507bcdbf8" > wind_utf8ucs2_length()< / a > ). < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / 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 >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "g4d94c57c6fc46b7af71d37d507bcdbf8" > < / a > <!-- doxytag: member="utf8.c::wind_utf8ucs2_length" ref="g4d94c57c6fc46b7af71d37d507bcdbf8" args="(const char *in, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_utf8ucs2_length < / td >
< td > (< / td >
< td class = "paramtype" > const char * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Calculate the length of from converting a UTF-8 string to a UCS2 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UTF-8 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / td > < td > the length of the resulting UCS4 string.< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "g31f62f5e3ca885bd8afce415c9e83c4c" > < / a > <!-- doxytag: member="utf8.c::wind_utf8ucs4" ref="g31f62f5e3ca885bd8afce415c9e83c4c" args="(const char *in, uint32_t *out, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_utf8ucs4 < / td >
< td > (< / td >
< td class = "paramtype" > const char * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > uint32_t * < / td >
< td class = "paramname" > < em > out< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Convert an UTF-8 string to an UCS4 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UTF-8 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out< / em > < / td > < td > the resulting UCS4 strint, must be at least < a class = "el" href = "group__wind.html#gbeccc02ed5f1f90684b10a6f892e89d3" > 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#gbeccc02ed5f1f90684b10a6f892e89d3" > wind_utf8ucs4_length()< / a > ). < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / 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 >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< a class = "anchor" name = "gbeccc02ed5f1f90684b10a6f892e89d3" > < / a > <!-- doxytag: member="utf8.c::wind_utf8ucs4_length" ref="gbeccc02ed5f1f90684b10a6f892e89d3" args="(const char *in, size_t *out_len)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > int wind_utf8ucs4_length < / td >
< td > (< / td >
< td class = "paramtype" > const char * < / td >
< td class = "paramname" > < em > in< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t * < / td >
< td class = "paramname" > < em > out_len< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p >
Calculate the length of from converting a UTF-8 string to a UCS4 string.< p >
< dl compact > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > in< / em > < / td > < td > an UTF-8 string to convert. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > out_len< / em > < / td > < td > the length of the resulting UCS4 string.< / td > < / tr >
< / table >
< / dl >
< dl class = "return" compact > < dt > < b > Returns:< / b > < / dt > < dd > returns 0 on success, an wind error code otherwise < / dd > < / dl >
< / div >
< / div > < p >
< / div >
< hr size = "1" > < address style = "text-align: right;" > < small >
2012-04-08 00:47:53 -04:00
Generated on Wed Jan 11 14:07:51 2012 for Heimdalwindlibrary by < a href = "http://www.doxygen.org/index.html" > < img src = "doxygen.png" alt = "doxygen" align = "middle" border = "0" > < / a > 1.5.6< / small > < / address >
2011-10-05 03:23:29 -04:00
< / body >
< / html >