init ct_termio

This commit is contained in:
Emile Clark-Boman 2025-09-28 00:06:02 +10:00
parent 7466d19c5e
commit 17d763c597
2 changed files with 40 additions and 0 deletions

21
src/termio.c Normal file
View file

@ -0,0 +1,21 @@
#include "termio.h"
int termmode_raw(struct ct_term *restrict t) {
t->termios.c_lflag &= ~(ISIG);
}
/* Set ncurses terminal mode (buffering, character processing,
* Key->SIG handling, and other termios(3) functionality).
*/
int termmode(struct ct_term *restrict t, const enum crs_termmode mode) {
switch (mode) {
case TMODE_RAW:
return raw();
case TMODE_CANON:
return canon(); /* ITS A CANON EVENT OHMAHGOH */
default:
/* defaulting is not possible. */
return 1;
}
}

19
src/termio.h Normal file
View file

@ -0,0 +1,19 @@
#ifndef CURSETREE_TERMIO_H
#define CURSETREE_TERMIO_H
#include "term.h"
enum crs_termmode {
/* tty cbreak mode */
TMODE_CBREAK,
/* tty canonical mode */
TMODE_CANON,
/* tty raw mode */
TMODE_RAW,
/* tty cooked mode (ISIG & IXON not modified)*/
TMODE_NOCBREAK,
/* tty cooked mode (ISIG & IXON set) */
TMODE_NORAW,
};
#endif /* CURSETREE_TERMIO_H */