xref: /minix3/lib/libcurses/setterm.c (revision b706112487045bc1efd01e3d4d53d9a6b04a0bca)
1 #include <curses.h>
2 #include "curspriv.h"
3 
4 _PROTOTYPE( static void ttysetflags, (void) );
5 
6 static void ttysetflags()
7 {
8   _tty.c_iflag |= ICRNL | IXON;
9   _tty.c_oflag |= OPOST | ONLCR;
10   _tty.c_lflag |= ECHO | ICANON | IEXTEN | ISIG;
11 
12   if (_cursvar.rawmode) {
13 	_tty.c_iflag &= ~(ICRNL | IXON);
14 	_tty.c_oflag &= ~(OPOST);
15 	_tty.c_lflag &= ~(ICANON | IEXTEN | ISIG);
16   }
17   if (_cursvar.cbrkmode) {
18 	_tty.c_lflag &= ~(ICANON);
19   }
20   if (!_cursvar.echoit) {
21 	_tty.c_lflag &= ~(ECHO | ECHONL);
22   }
23   if (NONL) {
24 	_tty.c_iflag &= ~(ICRNL);
25 	_tty.c_oflag &= ~(ONLCR);
26   }
27   tcsetattr(0, TCSANOW, &_tty);
28 }				/* ttysetflags */
29 
30 void raw()
31 {
32   _cursvar.rawmode = TRUE;
33   ttysetflags();
34 }				/* raw */
35 
36 void noraw()
37 {
38   _cursvar.rawmode = FALSE;
39   ttysetflags();
40 }				/* noraw */
41 
42 void echo()
43 {
44   _cursvar.echoit = TRUE;
45   ttysetflags();
46 }
47 
48 void noecho()
49 {
50   _cursvar.echoit = FALSE;
51   ttysetflags();
52 }
53 
54 void nl()
55 {
56   NONL = FALSE;
57   ttysetflags();
58 }				/* nl */
59 
60 void nonl()
61 {
62   NONL = TRUE;
63   ttysetflags();
64 }				/* nonl */
65 
66 void cbreak()
67 {
68   _cursvar.cbrkmode = TRUE;
69   ttysetflags();
70 }				/* cbreak */
71 
72 void nocbreak()
73 {
74   _cursvar.cbrkmode = FALSE;
75   ttysetflags();
76 }				/* nocbreak */
77