mirror of
https://github.com/tmux/tmux.git
synced 2025-01-05 23:38:48 +00:00
Add or fix some comments.
This commit is contained in:
parent
b3604dcf83
commit
25d2000625
25
input-keys.c
25
input-keys.c
@ -24,6 +24,13 @@
|
|||||||
|
|
||||||
#include "tmux.h"
|
#include "tmux.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is rather misleadingly named, it contains the code which takes a
|
||||||
|
* key code and translates it into something suitable to be sent to the
|
||||||
|
* application running in a pane (similar to input.c does in the other
|
||||||
|
* direction with output).
|
||||||
|
*/
|
||||||
|
|
||||||
struct input_key_ent {
|
struct input_key_ent {
|
||||||
int key;
|
int key;
|
||||||
const char *data;
|
const char *data;
|
||||||
@ -88,7 +95,7 @@ struct input_key_ent input_keys[] = {
|
|||||||
{ KEYC_RIGHT, "\033[C", 0 },
|
{ KEYC_RIGHT, "\033[C", 0 },
|
||||||
{ KEYC_LEFT, "\033[D", 0 },
|
{ KEYC_LEFT, "\033[D", 0 },
|
||||||
|
|
||||||
/* Keypad keys. Keypad versions must come first.*/
|
/* Keypad keys. Keypad versions must come first. */
|
||||||
{ KEYC_KP_SLASH, "/", INPUTKEY_KEYPAD },
|
{ KEYC_KP_SLASH, "/", INPUTKEY_KEYPAD },
|
||||||
{ KEYC_KP_STAR, "*", INPUTKEY_KEYPAD },
|
{ KEYC_KP_STAR, "*", INPUTKEY_KEYPAD },
|
||||||
{ KEYC_KP_MINUS, "-", INPUTKEY_KEYPAD },
|
{ KEYC_KP_MINUS, "-", INPUTKEY_KEYPAD },
|
||||||
@ -124,18 +131,20 @@ struct input_key_ent input_keys[] = {
|
|||||||
{ KEYC_KP_PERIOD, "\033On", 0 },
|
{ KEYC_KP_PERIOD, "\033On", 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Translate a key code from client into an output key sequence. */
|
/* Translate a key code into an output key sequence. */
|
||||||
void
|
void
|
||||||
input_key(struct window_pane *wp, int key)
|
input_key(struct window_pane *wp, int key)
|
||||||
{
|
{
|
||||||
struct input_key_ent *ike;
|
struct input_key_ent *ike;
|
||||||
u_int i;
|
u_int i;
|
||||||
char ch;
|
|
||||||
size_t dlen;
|
size_t dlen;
|
||||||
int xterm_keys;
|
|
||||||
|
|
||||||
log_debug2("writing key 0x%x", key);
|
log_debug2("writing key 0x%x", key);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this is a normal 7-bit key, just send it, with a leading escape
|
||||||
|
* if necessary.
|
||||||
|
*/
|
||||||
if (key != KEYC_NONE && (key & ~KEYC_ESCAPE) < 0x100) {
|
if (key != KEYC_NONE && (key & ~KEYC_ESCAPE) < 0x100) {
|
||||||
if (key & KEYC_ESCAPE)
|
if (key & KEYC_ESCAPE)
|
||||||
buffer_write8(wp->out, '\033');
|
buffer_write8(wp->out, '\033');
|
||||||
@ -143,6 +152,7 @@ input_key(struct window_pane *wp, int key)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Otherwise look the key up in the table. */
|
||||||
for (i = 0; i < nitems(input_keys); i++) {
|
for (i = 0; i < nitems(input_keys); i++) {
|
||||||
ike = &input_keys[i];
|
ike = &input_keys[i];
|
||||||
|
|
||||||
@ -172,10 +182,7 @@ input_key(struct window_pane *wp, int key)
|
|||||||
|
|
||||||
log_debug2("found key 0x%x: \"%s\"", key, ike->data);
|
log_debug2("found key 0x%x: \"%s\"", key, ike->data);
|
||||||
|
|
||||||
/*
|
/* Prefix a \033 for escape and set bit 5 of the last byte for ctrl. */
|
||||||
* Not in xterm mode. Prefix a \033 for escape, and set bit 5 of the
|
|
||||||
* last byte for ctrl.
|
|
||||||
*/
|
|
||||||
if (key & KEYC_ESCAPE)
|
if (key & KEYC_ESCAPE)
|
||||||
buffer_write8(wp->out, '\033');
|
buffer_write8(wp->out, '\033');
|
||||||
if (key & KEYC_CTRL && ike->flags & INPUTKEY_CTRL) {
|
if (key & KEYC_CTRL && ike->flags & INPUTKEY_CTRL) {
|
||||||
@ -186,7 +193,7 @@ input_key(struct window_pane *wp, int key)
|
|||||||
buffer_write(wp->out, ike->data, dlen);
|
buffer_write(wp->out, ike->data, dlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle input mouse. */
|
/* Translate mouse and output. */
|
||||||
void
|
void
|
||||||
input_mouse(struct window_pane *wp, struct mouse_event *m)
|
input_mouse(struct window_pane *wp, struct mouse_event *m)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user