<!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> <!-- $Id$ --> <!-- Generated by Doxygen 1.5.9 --> <div class="contents"> <h1>libcaca character set conversions</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">__extern uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#ge1378ecf06c06b5b0b8065b360be6fb1">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="#ge1378ecf06c06b5b0b8065b360be6fb1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">__extern size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#gb9d52a659813d7b145b588cd91dbb51c">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="#gb9d52a659813d7b145b588cd91dbb51c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">__extern uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#g633016cdd7cf60955816e004345746d9">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="#g633016cdd7cf60955816e004345746d9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">__extern uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#gab52384bdbbe4f508a28f26490d77fbd">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="#gab52384bdbbe4f508a28f26490d77fbd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">__extern char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#g33e76af6286e4c6226a77f4870d588be">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="#g33e76af6286e4c6226a77f4870d588be"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">__extern int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__caca__charset.html#g5f0a8814bbd8fdb74ea835448ad6f065">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="#g5f0a8814bbd8fdb74ea835448ad6f065"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> These functions perform conversions between usual character sets. <hr><h2>Function Documentation</h2> <a class="anchor" name="ge1378ecf06c06b5b0b8065b360be6fb1"></a><!-- doxytag: member="caca.h::caca_utf8_to_utf32" ref="ge1378ecf06c06b5b0b8065b360be6fb1" 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> 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> This function never fails, but its behaviour with illegal UTF-8 sequences is undefined.<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>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> </dl> <dl class="return" compact><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#l00220">caca_put_str()</a>.</p> </div> </div><p> <a class="anchor" name="gb9d52a659813d7b145b588cd91dbb51c"></a><!-- doxytag: member="caca.h::caca_utf32_to_utf8" ref="gb9d52a659813d7b145b588cd91dbb51c" 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> This function never fails, but its behaviour with illegal UTF-32 characters is undefined.<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>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> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of bytes written. </dd></dl> </div> </div><p> <a class="anchor" name="g633016cdd7cf60955816e004345746d9"></a><!-- doxytag: member="caca.h::caca_utf32_to_cp437" ref="g633016cdd7cf60955816e004345746d9" 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> This function never fails.<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>ch</em> </td><td>The UTF-32 character. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The corresponding CP437 character, or "?" if not representable. </dd></dl> </div> </div><p> <a class="anchor" name="gab52384bdbbe4f508a28f26490d77fbd"></a><!-- doxytag: member="caca.h::caca_cp437_to_utf32" ref="gab52384bdbbe4f508a28f26490d77fbd" 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> This function never fails.<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>ch</em> </td><td>The CP437 character. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The corresponding UTF-32 character, or zero if not representable. </dd></dl> </div> </div><p> <a class="anchor" name="g33e76af6286e4c6226a77f4870d588be"></a><!-- doxytag: member="caca.h::caca_utf32_to_ascii" ref="g33e76af6286e4c6226a77f4870d588be" 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> This function never fails, but its behaviour with illegal UTF-32 characters is undefined.<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>ch</em> </td><td>The UTF-32 character. </td></tr> </table> </dl> <dl class="return" compact><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><p> <a class="anchor" name="g5f0a8814bbd8fdb74ea835448ad6f065"></a><!-- doxytag: member="caca.h::caca_utf32_is_fullwidth" ref="g5f0a8814bbd8fdb74ea835448ad6f065" 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> This function never fails.<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>ch</em> </td><td>The UTF-32 character. </td></tr> </table> </dl> <dl class="return" compact><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#l00112">caca_put_char()</a>, and <a class="el" href="string_8c_source.html#l00220">caca_put_str()</a>.</p> </div> </div><p> </div> <!-- $Id$ --> </body> </html>