An easy-to-use terminal library
git clone git://soophie.de/so-term
32
} term_keycode_t;34
typedef void (*term_dispatch_fn_t)(int fd, term_code_t code, void *data, size_t len);35
typedef void *(*term_fetch_fn_t)(int fd, term_code_t code, size_t len);35
typedef void *(*term_fetch_fn_t)(int fd, term_code_t code, void *data, size_t len, size_t ret_len);37
typedef struct {38
struct termios termios;
180
int term_read_cursor(term_t *self, size_t *rows, size_t *cols) {181
if (self->teleterm_mode) {182
void *data = self->fetch(self->fd, TERM_CODE_CURSOR_READ, 2 * sizeof(size_t));182
void *data = self->fetch(self->fd, TERM_CODE_CURSOR_READ, NULL, 0, 2 * sizeof(size_t));183
if (data) {184
size_t *tuple = (size_t *) data;185
*rows = tuple[0];
216
int term_read_window(term_t *self, size_t *rows, size_t *cols) {217
if (self->teleterm_mode) {218
void *data = self->fetch(self->fd, TERM_CODE_WINDOW_READ, 2 * sizeof(size_t));218
void *data = self->fetch(self->fd, TERM_CODE_WINDOW_READ, NULL, 0, 2 * sizeof(size_t));219
if (data) {220
size_t *tuple = (size_t *) data;221
*rows = tuple[0];
242
int term_read_key(term_t *self) {243
if (self->teleterm_mode) {244
void *data = self->fetch(self->fd, TERM_CODE_KEY_READ, sizeof(int));244
void *data = self->fetch(self->fd, TERM_CODE_KEY_READ, NULL, 0, sizeof(int));245
if (data) {246
int *single = (int *) data;247
int key = *single;
322
int term_poll_key(term_t *self, int timeout_ms) {323
if (self->teleterm_mode) {324
void *data = self->fetch(self->fd, TERM_CODE_KEY_POLL, sizeof(int));324
void *data = self->fetch(self->fd, TERM_CODE_KEY_POLL, &timeout_ms, sizeof(timeout_ms), sizeof(int));325
if (data) {326
int *single = (int *) data;327
int key = *single;