version 1.1052, 2020/05/24 09:40:17 |
version 1.1053, 2020/05/25 09:32:10 |
|
|
#define MOTION_MOUSE_MODES (MODE_MOUSE_BUTTON|MODE_MOUSE_ALL) |
#define MOTION_MOUSE_MODES (MODE_MOUSE_BUTTON|MODE_MOUSE_ALL) |
|
|
/* |
/* |
* A single UTF-8 character. UTF8_SIZE must be big enough to hold |
* A single UTF-8 character. UTF8_SIZE must be big enough to hold combining |
* combining characters as well, currently at most five (of three |
* characters as well. It can't be more than 32 bytes without changes to how |
* bytes) are supported. |
* big characters are stored. |
*/ |
*/ |
#define UTF8_SIZE 18 |
#define UTF8_SIZE 21 |
struct utf8_data { |
struct utf8_data { |
u_char data[UTF8_SIZE]; |
u_char data[UTF8_SIZE]; |
|
|
|
|
u_char size; |
u_char size; |
|
|
u_char width; /* 0xff if invalid */ |
u_char width; /* 0xff if invalid */ |
} __packed; |
}; |
enum utf8_state { |
enum utf8_state { |
UTF8_MORE, |
UTF8_MORE, |
UTF8_DONE, |
UTF8_DONE, |
|
|
|
|
/* Grid cell data. */ |
/* Grid cell data. */ |
struct grid_cell { |
struct grid_cell { |
struct utf8_data data; /* 21 bytes */ |
struct utf8_data data; |
u_short attr; |
u_short attr; |
u_char flags; |
u_char flags; |
int fg; |
int fg; |
int bg; |
int bg; |
int us; |
int us; |
|
}; |
|
|
|
/* Grid extended cell entry. */ |
|
struct grid_extd_entry { |
|
uint32_t data; |
|
u_short attr; |
|
u_char flags; |
|
int fg; |
|
int bg; |
|
int us; |
} __packed; |
} __packed; |
|
|
|
/* Grid cell entry. */ |
struct grid_cell_entry { |
struct grid_cell_entry { |
u_char flags; |
u_char flags; |
union { |
union { |
|
|
struct grid_cell_entry *celldata; |
struct grid_cell_entry *celldata; |
|
|
u_int extdsize; |
u_int extdsize; |
struct grid_cell *extddata; |
struct grid_extd_entry *extddata; |
|
|
int flags; |
int flags; |
} __packed; |
} __packed; |
|
|
void session_renumber_windows(struct session *); |
void session_renumber_windows(struct session *); |
|
|
/* utf8.c */ |
/* utf8.c */ |
|
uint32_t utf8_set_big(char, u_int); |
|
uint32_t utf8_map_big(const struct utf8_data *); |
|
void utf8_get_big(uint32_t, struct utf8_data *); |
void utf8_set(struct utf8_data *, u_char); |
void utf8_set(struct utf8_data *, u_char); |
void utf8_copy(struct utf8_data *, const struct utf8_data *); |
void utf8_copy(struct utf8_data *, const struct utf8_data *); |
enum utf8_state utf8_open(struct utf8_data *, u_char); |
enum utf8_state utf8_open(struct utf8_data *, u_char); |