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"] "24" [label="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/refc_binary.c"] "27" [label="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/interop.h"] "19" [label="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/erl_nif_priv.h"] "13" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.c"] "38" [label="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/nifs.h"] "8" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.c"] "14" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.c"] "3" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.c"] "9" [label="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/jit.h"] "10" [label="/__w/AtomVM/AtomVM/src/libAtomVM/context.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/context.h"] "11" [label="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/bif.h"] "31" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.c"] "44" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.c"] "39" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_crypto.h"] "17" [label="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/memory.c"] "43" [label="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/portnifloader.h"] "37" [label="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/sys.h"] "12" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.c"] "33" [label="/__w/AtomVM/AtomVM/src/libAtomVM/module.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/module.h"] "30" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.c"] "40" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_net.h"] "18" [label="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c"] "25" [label="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/resources.c"] "29" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.c"] "32" [label="/__w/AtomVM/AtomVM/src/libAtomVM/term.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/term.c"] "28" [label="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/inet.h"] "16" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.c"] "15" [label="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/debug.h"] "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"] "20" [label="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/globalcontext.c"] "34" [label="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/platform_nifs.h"] "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"] "47" [label="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/scheduler.h"] "21" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.c"] "41" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_socket.h"] "36" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.c"] "35" [label="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/stacktrace.h"] "49" [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"] "22" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.c"] "42" [label="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/otp_ssl.h"] "23" [label="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/posix_nifs.c"] "48" [label="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/mailbox.c"] "45" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.c"] "46" [label="/__w/AtomVM/AtomVM/src/libAtomVM/port.h" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/port.h"] "26" [label="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c" tooltip="/__w/AtomVM/AtomVM/src/libAtomVM/ets.c"] "27" -> "3" [dir=back tooltip="include"] "27" -> "28" [dir=back tooltip="include"] "27" -> "7" [dir=back tooltip="include"] "27" -> "13" [dir=back tooltip="include"] "27" -> "31" [dir=back tooltip="include"] "27" -> "30" [dir=back tooltip="include"] "27" -> "21" [dir=back tooltip="include"] "27" -> "22" [dir=back tooltip="include"] "27" -> "23" [dir=back tooltip="include"] "27" -> "32" [dir=back tooltip="include"] "19" -> "14" [dir=back tooltip="include"] "19" -> "18" [dir=back tooltip="include"] "19" -> "20" [dir=back tooltip="include"] "19" -> "17" [dir=back tooltip="include"] "19" -> "13" [dir=back tooltip="include"] "19" -> "21" [dir=back tooltip="include"] "19" -> "22" [dir=back tooltip="include"] "19" -> "23" [dir=back tooltip="include"] "19" -> "24" [dir=back tooltip="include"] "19" -> "25" [dir=back tooltip="include"] "38" -> "18" [dir=back tooltip="include"] "38" -> "8" [dir=back tooltip="include"] "38" -> "12" [dir=back tooltip="include"] "38" -> "13" [dir=back tooltip="include"] "38" -> "31" [dir=back tooltip="include"] "38" -> "39" [dir=back tooltip="include"] "38" -> "30" [dir=back tooltip="include"] "38" -> "40" [dir=back tooltip="include"] "38" -> "21" [dir=back tooltip="include"] "38" -> "41" [dir=back tooltip="include"] "38" -> "22" [dir=back tooltip="include"] "38" -> "42" [dir=back tooltip="include"] "38" -> "43" [dir=back tooltip="include"] "38" -> "23" [dir=back tooltip="include"] "9" -> "10" [dir=back tooltip="include"] "9" -> "8" [dir=back tooltip="include"] "9" -> "12" [dir=back tooltip="include"] "9" -> "33" [dir=back tooltip="include"] "9" -> "13" [dir=back tooltip="include"] "10" -> "11" [dir=back tooltip="include"] "10" -> "14" [dir=back tooltip="include"] "10" -> "15" [dir=back tooltip="include"] "10" -> "18" [dir=back tooltip="include"] "10" -> "19" [dir=back tooltip="include"] "10" -> "26" [dir=back tooltip="include"] "10" -> "6" [dir=back tooltip="include"] "10" -> "20" [dir=back tooltip="include"] "10" -> "27" [dir=back tooltip="include"] "10" -> "8" [dir=back tooltip="include"] "10" -> "17" [dir=back tooltip="include"] "10" -> "12" [dir=back tooltip="include"] "10" -> "33" [dir=back tooltip="include"] "10" -> "13" [dir=back tooltip="include"] "10" -> "38" [dir=back tooltip="include"] "10" -> "31" [dir=back tooltip="include"] "10" -> "30" [dir=back tooltip="include"] "10" -> "21" [dir=back tooltip="include"] "10" -> "22" [dir=back tooltip="include"] "10" -> "45" [dir=back tooltip="include"] "10" -> "46" [dir=back tooltip="include"] "10" -> "43" [dir=back tooltip="include"] "10" -> "24" [dir=back tooltip="include"] "10" -> "25" [dir=back tooltip="include"] "10" -> "47" [dir=back tooltip="include"] "10" -> "35" [dir=back tooltip="include"] "10" -> "32" [dir=back tooltip="include"] "11" -> "3" [dir=back tooltip="include"] "11" -> "8" [dir=back tooltip="include"] "11" -> "12" [dir=back tooltip="include"] "11" -> "13" [dir=back tooltip="include"] "39" -> "31" [dir=back tooltip="include"] "43" -> "44" [dir=back tooltip="include"] "37" -> "14" [dir=back tooltip="include"] "37" -> "20" [dir=back tooltip="include"] "37" -> "12" [dir=back tooltip="include"] "37" -> "13" [dir=back tooltip="include"] "37" -> "21" [dir=back tooltip="include"] "37" -> "25" [dir=back tooltip="include"] "33" -> "11" [dir=back tooltip="include"] "33" -> "6" [dir=back tooltip="include"] "33" -> "8" [dir=back tooltip="include"] "33" -> "12" [dir=back tooltip="include"] "33" -> "13" [dir=back tooltip="include"] "33" -> "34" [dir=back tooltip="include"] "33" -> "35" [dir=back tooltip="include"] "33" -> "37" [dir=back tooltip="include"] "33" -> "32" [dir=back tooltip="include"] "40" -> "30" [dir=back tooltip="include"] "28" -> "29" [dir=back tooltip="include"] "28" -> "30" [dir=back tooltip="include"] "28" -> "21" [dir=back tooltip="include"] "28" -> "22" [dir=back tooltip="include"] "15" -> "16" [dir=back tooltip="include"] "15" -> "8" [dir=back tooltip="include"] "15" -> "17" [dir=back tooltip="include"] "34" -> "13" [dir=back tooltip="include"] "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"] "4" -> "9" [dir=back tooltip="include"] "4" -> "13" [dir=back tooltip="include"] "47" -> "20" [dir=back tooltip="include"] "47" -> "8" [dir=back tooltip="include"] "47" -> "48" [dir=back tooltip="include"] "47" -> "13" [dir=back tooltip="include"] "47" -> "21" [dir=back tooltip="include"] "41" -> "21" [dir=back tooltip="include"] "41" -> "22" [dir=back tooltip="include"] "35" -> "8" [dir=back tooltip="include"] "35" -> "36" [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" -> "13" [dir=back tooltip="include"] "1" -> "49" [dir=back tooltip="include"] "42" -> "22" [dir=back tooltip="include"] "46" -> "29" [dir=back tooltip="include"] "46" -> "13" [dir=back tooltip="include"] "46" -> "30" [dir=back tooltip="include"] "46" -> "21" [dir=back tooltip="include"] "46" -> "22" [dir=back tooltip="include"] "46" -> "45" [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)