LibTRO 0
Uma biblioteca com funções semelhantes às do C para fins educacionais na Eletrônica, IF Sul Pelotas.
Carregando...
Procurando...
Nenhuma entrada encontrado
Referência do Arquivo uchar.h

Ir para o código-fonte desse arquivo.

Definições e Macros

#define TRO_MULTI_U8CODE_MAX   4
#define TRO_MULTI_U16CODE_MAX   2
#define TRO_URUNE_MAX   0x10FFFF
#define TRO_URUNE_IS_VALID(rune)

Definições de Tipos

typedef uint8_t tro_u8code
typedef uint16_t tro_u16code
typedef uint32_t tro_urune
typedef uint16_t tro_char16

Funções

size_t tro_urune_to_u8codes (tro_urune rune, tro_u8code *out)
size_t tro_u8codes_to_urune (const tro_u8code *seq, size_t seqlen, tro_urune *out)
size_t tro_urune_to_u16codes (tro_urune rune, tro_u16code *out)
size_t tro_u16codes_to_urune (const tro_u16code *seq, size_t seqlen, tro_urune *out)
size_t tro_u8codes_to_u16codes (const tro_u8code *seq, size_t seqlen, tro_u16code *out, size_t *outlen)
size_t tro_u16codes_to_u8codes (const tro_u16code *seq, size_t seqlen, tro_u8code *out, size_t *outlen)
size_t tro_str8_urune_len (const char *str, size_t strl)
size_t tro_str16_urune_len (const tro_char16 *str, size_t strl)

Definições e macros

◆ TRO_MULTI_U8CODE_MAX

#define TRO_MULTI_U8CODE_MAX   4

Define o máximo que um tro_urune pode chegar como uma sequência tro_u8code.

Veja também
tro_urune_to_u8codes
tro_u16codes_to_u8codes

◆ TRO_MULTI_U16CODE_MAX

#define TRO_MULTI_U16CODE_MAX   2

Define o máximo que tro_urune pode chegar como uma sequência tro_u16code.

Veja também
tro_urune_to_u16codes
tro_u8codes_to_u16codes

◆ TRO_URUNE_MAX

#define TRO_URUNE_MAX   0x10FFFF

Define o valor máximo de tro_urune, ou seja, o último code point.

◆ TRO_URUNE_IS_VALID

#define TRO_URUNE_IS_VALID ( rune)
Valor:
((rune < 0xD800 || 0xDFFF < rune) && rune <= TRO_URUNE_MAX)
#define TRO_URUNE_MAX
Definição uchar.h:59

Retorna se rune é um code point realmente válido.

Parâmetros
runedeve ser um número, de preferência um tro_urune.

Definições dos tipos

◆ tro_u8code

typedef uint8_t tro_u8code

Representa um único byte de uma sequência UTF-8.

◆ tro_u16code

typedef uint16_t tro_u16code

Representa um único surrogate (número de 16 bits) de uma sequência UTF-16.

◆ tro_urune

typedef uint32_t tro_urune

Representa um code point Unicode.

◆ tro_char16

typedef uint16_t tro_char16

Representa um caractere UTF-16 e strings UTF-16 via tro_char16 *, em contra partida ao char, que nesta biblioteca se assume UTF-8.

Observação
A biblioteca não utiliza uchar.h pela sua ausência em algumas plataformas, mas caso disponível, tro_char16 é completamente compatível com char16_t.

Funções

◆ tro_urune_to_u8codes()

size_t tro_urune_to_u8codes ( tro_urune rune,
tro_u8code * out )

Converte um tro_urune para uma sequência tro_u8code. Em caso de erro, a sequência codificada será do u'�' (REPLACEMENT CHARACTER).

Parâmetros
runeé a runa com o code point.
outé um array de tamanho TRO_MULTI_U8CODE_MAX.
Retorna
o tamanho da sequência final.
Veja também
tro_u8codes_to_urune
tro_u16codes_to_u8codes

◆ tro_u8codes_to_urune()

size_t tro_u8codes_to_urune ( const tro_u8code * seq,
size_t seqlen,
tro_urune * out )

Converte uma sequência tro_u8code para um tro_urune. Em caso de erro, a runa será u'�' (REPLACEMENT CHARACTER).

Parâmetros
seqé a sequência UTF-8 para decodificar.
seqlené o comprimento máximo da sequência. Se for 0, se assume seq terminado em '\0'.
outé um ponteiro para armazenar a runa decodificada.
Retorna
quantidade de bytes lidos.
Veja também
tro_urune_to_u8codes
tro_urune_to_u16codes

◆ tro_urune_to_u16codes()

size_t tro_urune_to_u16codes ( tro_urune rune,
tro_u16code * out )

Converte um tro_urune para uma sequência tro_u16code. Em caso de erro, a sequência codificada será do u'�' (REPLACEMENT CHARACTER).

Parâmetros
runeé a runa com o code point.
outé um array de tamanho TRO_MULTI_U16CODE_MAX.
Retorna
o tamanho da sequência final.
Veja também
tro_u8codes_to_u16codes
tro_u16codes_to_urune

◆ tro_u16codes_to_urune()

size_t tro_u16codes_to_urune ( const tro_u16code * seq,
size_t seqlen,
tro_urune * out )

Converte uma sequência tro_u16code para um tro_urune. Em caso de erro, a runa será u'�' (REPLACEMENT CHARACTER).

Parâmetros
seqé a sequência UTF-16 para decodificar.
seqlené o comprimento máximo da sequência. Se for 0, se assume seq terminado em '\0'.
outé um ponteiro para armazenar a runa decodificada.
Retorna
quantidade de surrogates lidos.
Veja também
tro_urune_to_u8codes
tro_urune_to_u16codes

◆ tro_u8codes_to_u16codes()

size_t tro_u8codes_to_u16codes ( const tro_u8code * seq,
size_t seqlen,
tro_u16code * out,
size_t * outlen )

Converte uma sequência tro_u8code direto para uma sequência tro_u16code. Em caso de erro, a sequência codificada será do u'�' (REPLACEMENT CHARACTER).

Parâmetros
seqé a sequência UTF-8 para decodificar.
seqlené o comprimento máximo da sequência. Se for 0, se assume seq terminado em '\0'.
outé um array de tamanho TRO_MULTI_U16CODE_MAX.
outlené um ponteiro para armazenar o tamanho da sequência final.
Retorna
quantidade de bytes lidos.
Veja também
tro_urune_to_u16codes
tro_u16codes_to_u8codes

◆ tro_u16codes_to_u8codes()

size_t tro_u16codes_to_u8codes ( const tro_u16code * seq,
size_t seqlen,
tro_u8code * out,
size_t * outlen )

Converte uma sequência tro_u16code direto para uma sequência tro_u8code. Em caso de erro, a sequência codificada será do u'�' (REPLACEMENT CHARACTER).

Parâmetros
seqé a sequência UTF-16 para decodificar.
seqlené o comprimento máximo da sequência. Se for 0, se assume seq terminado em '\0'.
outé um array de tamanho TRO_MULTI_U8CODE_MAX.
outlené um ponteiro para armazenar o tamanho da sequência final.
Retorna
quantidade de surrogates lidos.
Veja também
tro_urune_to_u8codes
tro_u8codes_to_u16codes

◆ tro_str8_urune_len()

size_t tro_str8_urune_len ( const char * str,
size_t strl )
Parâmetros
stré uma string UTF-8.
strlé o comprimento de str, caso seja 0, se assume str terminado em '\0'.
Retorna
a quantidade de code points em str.

◆ tro_str16_urune_len()

size_t tro_str16_urune_len ( const tro_char16 * str,
size_t strl )
Parâmetros
stré uma string UTF-16.
strlé o comprimento de str, caso seja 0, se assume str terminado em '\0'.
Retorna
a quantidade de code points em str.
Veja também
tro_char16