An easy-to-use terminal library
git clone git://soophie.de/so-term
118
if (seq[2] == '~') {119
switch (seq[1]) {120
case '1':121
return HOME_KEY;121
return KEY_HOME;122
case '3':123
return DEL_KEY;123
return KEY_DEL;124
case '4':125
return END_KEY;125
return KEY_END;126
case '5':127
return PAGE_UP;127
return KEY_PAGE_UP;128
case '6':129
return PAGE_DOWN;129
return KEY_PAGE_DOWN;130
case '7':131
return HOME_KEY;131
return KEY_HOME;132
case '8':133
return END_KEY;133
return KEY_END;134
}135
}136
}137
else {138
switch (seq[1]) {139
case 'A':140
return ARROW_UP;140
return KEY_ARROW_UP;141
case 'B':142
return ARROW_DOWN;142
return KEY_ARROW_DOWN;143
case 'C':144
return ARROW_RIGHT;144
return KEY_ARROW_RIGHT;145
case 'D':146
return ARROW_LEFT;146
return KEY_ARROW_LEFT;147
case 'H':148
return HOME_KEY;148
return KEY_HOME;149
case 'F':150
return END_KEY;150
return KEY_END;151
}152
return '\x1b';153
}
155
else if (seq[0] == 'O') {156
switch (seq[1]) {157
case 'H':158
return HOME_KEY;158
return KEY_HOME;159
case 'F':160
return END_KEY;160
return KEY_END;161
}162
}163
}
1
#pragma once3
typedef enum {4
ESC = 27,5
BACKSPACE = 127,6
ARROW_LEFT = 1000,7
ARROW_RIGHT,8
ARROW_UP,9
ARROW_DOWN,10
DEL_KEY,11
HOME_KEY,12
END_KEY,13
PAGE_UP,14
PAGE_DOWN,4
KEY_ENTER = 13,5
KEY_ESC = 27,6
KEY_BACKSPACE = 127,7
KEY_ARROW_LEFT = 1000,8
KEY_ARROW_RIGHT,9
KEY_ARROW_UP,10
KEY_ARROW_DOWN,11
KEY_DEL,12
KEY_HOME,13
KEY_END,14
KEY_PAGE_UP,15
KEY_PAGE_DOWN,16
} keycode_t;18
typedef struct {