minix/lib/libcurses/setterm.c

76 lines
1.2 KiB
C

#include <curses.h>
#include "curspriv.h"
_PROTOTYPE( static void ttysetflags, (void) );
static void ttysetflags()
{
_tty.c_iflag |= ICRNL | IXON;
_tty.c_oflag |= OPOST | ONLCR;
_tty.c_lflag |= ECHO | ICANON | IEXTEN | ISIG;
if (_cursvar.rawmode) {
_tty.c_iflag &= ~(ICRNL | IXON);
_tty.c_oflag &= ~(OPOST);
_tty.c_lflag &= ~(ICANON | IEXTEN | ISIG);
}
if (_cursvar.cbrkmode) {
_tty.c_lflag &= ~(ICANON);
}
if (!_cursvar.echoit) {
_tty.c_lflag &= ~(ECHO | ECHONL);
}
if (NONL) {
_tty.c_iflag &= ~(ICRNL);
_tty.c_oflag &= ~(ONLCR);
}
tcsetattr(0, TCSANOW, &_tty);
} /* ttysetflags */
void raw()
{
_cursvar.rawmode = TRUE;
ttysetflags();
} /* raw */
void noraw()
{
_cursvar.rawmode = FALSE;
ttysetflags();
} /* noraw */
void echo()
{
_cursvar.echoit = TRUE;
ttysetflags();
}
void noecho()
{
_cursvar.echoit = FALSE;
ttysetflags();
}
void nl()
{
NONL = FALSE;
ttysetflags();
} /* nl */
void nonl()
{
NONL = TRUE;
ttysetflags();
} /* nonl */
void cbreak()
{
_cursvar.cbrkmode = TRUE;
ttysetflags();
} /* cbreak */
void nocbreak()
{
_cursvar.cbrkmode = FALSE;
ttysetflags();
} /* nocbreak */