version 1.45, 2020/05/25 09:32:10 |
version 1.46, 2020/05/25 15:02:25 |
|
|
static u_int utf8_big_list_used; |
static u_int utf8_big_list_used; |
|
|
union utf8_big_map { |
union utf8_big_map { |
uint32_t value; |
u_int value; |
struct { |
struct { |
u_char flags; |
u_char flags; |
#define UTF8_BIG_SIZE 0x1f |
#define UTF8_BIG_SIZE 0x1f |
|
|
} |
} |
|
|
/* Get UTF-8 as index into buffer. */ |
/* Get UTF-8 as index into buffer. */ |
uint32_t |
u_int |
utf8_map_big(const struct utf8_data *ud) |
utf8_map_big(const struct utf8_data *ud) |
{ |
{ |
union utf8_big_map m = { .value = 0 }; |
union utf8_big_map m = { .value = 0 }; |
|
|
|
|
/* Get UTF-8 from index into buffer. */ |
/* Get UTF-8 from index into buffer. */ |
void |
void |
utf8_get_big(uint32_t v, struct utf8_data *ud) |
utf8_get_big(u_int v, struct utf8_data *ud) |
{ |
{ |
union utf8_big_map m = { .value = v }; |
union utf8_big_map m = { .value = v }; |
struct utf8_big_item *bi; |
struct utf8_big_item *bi; |
|
|
return; |
return; |
} |
} |
|
|
o = ((uint32_t)m.data[2] << 16)|((uint32_t)m.data[1] << 8)|m.data[0]; |
o = ((u_int)m.data[2] << 16)|((u_int)m.data[1] << 8)|m.data[0]; |
if (o >= utf8_big_list_used) |
if (o >= utf8_big_list_used) |
memset(ud->data, ' ', ud->size); |
memset(ud->data, ' ', ud->size); |
else { |
else { |
|
|
} |
} |
|
|
/* Get big value for UTF-8 single character. */ |
/* Get big value for UTF-8 single character. */ |
uint32_t |
u_int |
utf8_set_big(char c, u_int width) |
utf8_set_big(char c, u_int width) |
{ |
{ |
union utf8_big_map m = { .flags = 1, .data[0] = c }; |
union utf8_big_map m = { .flags = 1, .data[0] = c }; |