Support UTF-8 key bindings by expanding the key type from int to

uint64_t and converting UTF-8 to Unicode on input and the reverse on
output. (This allows key bindings, there are still omissions - the
largest being that the various prompts do not accept UTF-8.)
This commit is contained in:
nicm
2015-11-12 11:05:34 +00:00
parent 7062b0e65d
commit 69e0b8326a
19 changed files with 280 additions and 168 deletions

View File

@ -28,9 +28,9 @@ struct screen *window_copy_init(struct window_pane *);
void window_copy_free(struct window_pane *);
void window_copy_resize(struct window_pane *, u_int, u_int);
void window_copy_key(struct window_pane *, struct client *, struct session *,
int, struct mouse_event *);
int window_copy_key_input(struct window_pane *, int);
int window_copy_key_numeric_prefix(struct window_pane *, int);
key_code, struct mouse_event *);
int window_copy_key_input(struct window_pane *, key_code);
int window_copy_key_numeric_prefix(struct window_pane *, key_code);
void window_copy_redraw_selection(struct window_pane *, u_int);
void window_copy_redraw_lines(struct window_pane *, u_int, u_int);
@ -368,7 +368,7 @@ window_copy_resize(struct window_pane *wp, u_int sx, u_int sy)
void
window_copy_key(struct window_pane *wp, struct client *c, struct session *sess,
int key, struct mouse_event *m)
key_code key, struct mouse_event *m)
{
const char *word_separators;
struct window_copy_mode_data *data = wp->modedata;
@ -800,7 +800,7 @@ input_off:
}
int
window_copy_key_input(struct window_pane *wp, int key)
window_copy_key_input(struct window_pane *wp, key_code key)
{
struct window_copy_mode_data *data = wp->modedata;
struct screen *s = &data->screen;
@ -897,7 +897,7 @@ window_copy_key_input(struct window_pane *wp, int key)
}
int
window_copy_key_numeric_prefix(struct window_pane *wp, int key)
window_copy_key_numeric_prefix(struct window_pane *wp, key_code key)
{
struct window_copy_mode_data *data = wp->modedata;
struct screen *s = &data->screen;