unicode.h

Include dependency graph for unicode.h:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "2" [label="stdbool.h" tooltip="stdbool.h"]
    "4" [label="stdint.h" tooltip="stdint.h"]
    "3" [label="stddef.h" tooltip="stddef.h"]
    "1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/unicode.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/unicode.h" fillcolor="#BFBFBF"]
    "1" -> "2" [dir=forward tooltip="include"]
    "1" -> "3" [dir=forward tooltip="include"]
    "1" -> "4" [dir=forward tooltip="include"]
}

This graph shows which files directly or indirectly include unicode.h:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "7" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.c"]
    "8" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c"]
    "3" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c"]
    "2" [label="/__w/AtomVM/AtomVM/src/libAtomVM/atom_table.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/atom_table.c"]
    "6" [label="/__w/AtomVM/AtomVM/src/libAtomVM/externalterm.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/externalterm.c"]
    "5" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.c"]
    "4" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bitstring.h"]
    "9" [label="/__w/AtomVM/AtomVM/src/libAtomVM/unicode.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/unicode.c"]
    "1" [label="/__w/AtomVM/AtomVM/src/libAtomVM/unicode.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/unicode.h" fillcolor="#BFBFBF"]
    "4" -> "3" [dir=back tooltip="include"]
    "4" -> "5" [dir=back tooltip="include"]
    "4" -> "6" [dir=back tooltip="include"]
    "4" -> "7" [dir=back tooltip="include"]
    "4" -> "8" [dir=back tooltip="include"]
    "1" -> "2" [dir=back tooltip="include"]
    "1" -> "3" [dir=back tooltip="include"]
    "1" -> "4" [dir=back tooltip="include"]
    "1" -> "6" [dir=back tooltip="include"]
    "1" -> "8" [dir=back tooltip="include"]
    "1" -> "9" [dir=back tooltip="include"]
}

Enums

enum UnicodeTransformDecodeResult

Values:

enumerator UnicodeTransformDecodeSuccess
enumerator UnicodeTransformDecodeFail
enumerator UnicodeTransformDecodeIncomplete

Functions

size_t unicode_buf_utf8_len(const uint8_t *buf, size_t buf_len)
bool unicode_buf_is_ascii(const uint8_t *buf, size_t buf_len)
size_t unicode_latin1_buf_size_as_utf8(const uint8_t *buf, size_t len)
static inline bool unicode_is_valid_codepoint(uint32_t codepoint)
enum UnicodeTransformDecodeResult unicode_utf8_decode(const uint8_t *buf, size_t len, uint32_t *c, size_t *out_size)

Decode a character from UTF-8.

Parameters:
  • buf – the buffer from which to decode the string

  • len – the length (in bytes) of the bytes in buf

  • c – int value to decode to

  • out_size – the size in bytes, on output (if not NULL)

Returns:

UnicodeTransformDecodeSuccess if decoding was successful, UnicodeTransformDecodeFail if character starting at buf is not a valid unicode character or UnicodeTransformDecodeIncomplete if character starting at buf is a valid but incomplete transformation

bool unicode_is_valid_utf8_buf(const uint8_t *buf, size_t len)