libcaca documentation

# libcucul character set conversions

## Functions
unsigned long int | cucul_utf8_to_utf32 (char const *, unsigned int *)
| Convert a UTF-8 character to UTF-32.
unsigned int | cucul_utf32_to_utf8 (char *, unsigned long int)
| Convert a UTF-32 character to UTF-8.
unsigned char | cucul_utf32_to_cp437 (unsigned long int)
| Convert a UTF-32 character to CP437.
unsigned long int | cucul_cp437_to_utf32 (unsigned char)
| Convert a CP437 character to UTF-32.
int | cucul_utf32_is_fullwidth (unsigned long int)
| Tell whether a UTF-32 character is fullwidth.

## Detailed Description

These functions perform conversions between usual character sets.

## Function Documentation

unsigned long int cucul_utf8_to_utf32 | ( | char const * | s,
|  | unsigned int * | read |
| ) |  |  |

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.

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.

This function never fails, but its behaviour with illegal UTF-8 sequences is undefined.

Parameters:

  | s | A string containing the UTF-8 character.
  | read | A pointer to an unsigned integer to store the number of bytes in the character, or NULL.

Returns:
  The corresponding UTF-32 character, or zero if the character is incomplete.

unsigned int cucul_utf32_to_utf8 | ( | char * | buf,
|  | unsigned long int | ch |
| ) |  |  |

Convert a UTF-32 character read from a string and write its value in the UTF-8 character set into the given buffer.

This function never fails, but its behaviour with illegal UTF-32 characters is undefined.

Parameters:

  | buf | A pointer to a character buffer where the UTF-8 sequence will be written.
  | ch | The UTF-32 character.

Returns:
  The number of bytes written.

unsigned char cucul_utf32_to_cp437 | ( | unsigned long int | ch | ) |

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.

This function never fails.

Parameters:

  | ch | The UTF-32 character.

Returns:
  The corresponding CP437 character, or "?" if not representable.

unsigned long int cucul_cp437_to_utf32 | ( | unsigned char | ch | ) |

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.

This function never fails.

Parameters:

  | ch | The CP437 character.

Returns:
  The corresponding UTF-32 character, or zero if not representable.

int cucul_utf32_is_fullwidth | ( | unsigned long int | ch | ) |

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.

This function never fails.

Parameters:

  | ch | The UTF-32 character.

Returns:
  1 if the character is fullwidth, 0 otherwise.