<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>libcaca documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="contents"> <h1>libcaca character set conversions</h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">__extern uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#gae1378ecf06c06b5b0b8065b360be6fb1">caca_utf8_to_utf32</a> (char const *, size_t *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a UTF-8 character to UTF-32. <a href="#gae1378ecf06c06b5b0b8065b360be6fb1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">__extern size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#gab9d52a659813d7b145b588cd91dbb51c">caca_utf32_to_utf8</a> (char *, uint32_t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a UTF-32 character to UTF-8. <a href="#gab9d52a659813d7b145b588cd91dbb51c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">__extern uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#ga633016cdd7cf60955816e004345746d9">caca_utf32_to_cp437</a> (uint32_t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a UTF-32 character to CP437. <a href="#ga633016cdd7cf60955816e004345746d9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">__extern uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#gaab52384bdbbe4f508a28f26490d77fbd">caca_cp437_to_utf32</a> (uint8_t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a CP437 character to UTF-32. <a href="#gaab52384bdbbe4f508a28f26490d77fbd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">__extern char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#ga33e76af6286e4c6226a77f4870d588be">caca_utf32_to_ascii</a> (uint32_t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a UTF-32 character to ASCII. <a href="#ga33e76af6286e4c6226a77f4870d588be"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">__extern int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#ga5f0a8814bbd8fdb74ea835448ad6f065">caca_utf32_is_fullwidth</a> (uint32_t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tell whether a UTF-32 character is fullwidth. <a href="#ga5f0a8814bbd8fdb74ea835448ad6f065"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>These functions perform conversions between usual character sets. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gae1378ecf06c06b5b0b8065b360be6fb1"></a><!-- doxytag: member="caca.h::caca_utf8_to_utf32" ref="gae1378ecf06c06b5b0b8065b360be6fb1" args="(char const *, size_t *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">__extern uint32_t caca_utf8_to_utf32 </td> <td>(</td> <td class="paramtype">char const * </td> <td class="paramname"> <em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"> <em>bytes</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert a UTF-8 character read from a string and return its value in the UTF-32 character set. If the second argument is not null, the total number of read bytes is written in it.</p> <p>If a null byte was reached before the expected end of the UTF-8 sequence, this function returns zero and the number of read bytes is set to zero.</p> <p>This function never fails, but its behaviour with illegal UTF-8 sequences is undefined.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>A string containing the UTF-8 character. </td></tr> <tr><td valign="top"></td><td valign="top"><em>bytes</em> </td><td>A pointer to a size_t to store the number of bytes in the character, or NULL. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The corresponding UTF-32 character, or zero if the character is incomplete. </dd></dl> <p>Referenced by <a class="el" href="string_8c_source.html#l00248">caca_put_str()</a>.</p> </div> </div> <a class="anchor" id="gab9d52a659813d7b145b588cd91dbb51c"></a><!-- doxytag: member="caca.h::caca_utf32_to_utf8" ref="gab9d52a659813d7b145b588cd91dbb51c" args="(char *, uint32_t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">__extern size_t caca_utf32_to_utf8 </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>ch</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert a UTF-32 character read from a string and write its value in the UTF-8 character set into the given buffer.</p> <p>This function never fails, but its behaviour with illegal UTF-32 characters is undefined.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>A pointer to a character buffer where the UTF-8 sequence will be written. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ch</em> </td><td>The UTF-32 character. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes written. </dd></dl> </div> </div> <a class="anchor" id="ga633016cdd7cf60955816e004345746d9"></a><!-- doxytag: member="caca.h::caca_utf32_to_cp437" ref="ga633016cdd7cf60955816e004345746d9" args="(uint32_t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">__extern uint8_t caca_utf32_to_cp437 </td> <td>(</td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>ch</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert a UTF-32 character read from a string and return its value in the CP437 character set, or "?" if the character has no equivalent.</p> <p>This function never fails.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ch</em> </td><td>The UTF-32 character. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The corresponding CP437 character, or "?" if not representable. </dd></dl> </div> </div> <a class="anchor" id="gaab52384bdbbe4f508a28f26490d77fbd"></a><!-- doxytag: member="caca.h::caca_cp437_to_utf32" ref="gaab52384bdbbe4f508a28f26490d77fbd" args="(uint8_t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">__extern uint32_t caca_cp437_to_utf32 </td> <td>(</td> <td class="paramtype">uint8_t </td> <td class="paramname"> <em>ch</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert a CP437 character read from a string and return its value in the UTF-32 character set, or zero if the character is a CP437 control character.</p> <p>This function never fails.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ch</em> </td><td>The CP437 character. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The corresponding UTF-32 character, or zero if not representable. </dd></dl> </div> </div> <a class="anchor" id="ga33e76af6286e4c6226a77f4870d588be"></a><!-- doxytag: member="caca.h::caca_utf32_to_ascii" ref="ga33e76af6286e4c6226a77f4870d588be" args="(uint32_t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">__extern char caca_utf32_to_ascii </td> <td>(</td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>ch</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert a UTF-32 character into an ASCII character. When no equivalent exists, a graphically close equivalent is sought.</p> <p>This function never fails, but its behaviour with illegal UTF-32 characters is undefined.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ch</em> </td><td>The UTF-32 character. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The corresponding ASCII character, or a graphically close equivalent if found, or "?" if not representable. </dd></dl> </div> </div> <a class="anchor" id="ga5f0a8814bbd8fdb74ea835448ad6f065"></a><!-- doxytag: member="caca.h::caca_utf32_is_fullwidth" ref="ga5f0a8814bbd8fdb74ea835448ad6f065" args="(uint32_t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">__extern int caca_utf32_is_fullwidth </td> <td>(</td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>ch</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Check whether the given UTF-32 character should be printed at twice the normal width (fullwidth characters). If the character is unknown or if its status cannot be decided, it is treated as a standard-width character.</p> <p>This function never fails.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ch</em> </td><td>The UTF-32 character. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>1 if the character is fullwidth, 0 otherwise. </dd></dl> <p>Referenced by <a class="el" href="string_8c_source.html#l00114">caca_put_char()</a>, and <a class="el" href="string_8c_source.html#l00248">caca_put_str()</a>.</p> </div> </div> </div> </body> </html>