2
3
4
5
6
7
8
11
12
13
14
40
41
42
46 tcgetattr(0, &shell_in_tioctl);
47 tcgetattr(1, &shell_out_tioctl);
48 tcgetattr(2, &shell_err_tioctl);
53
54
55
59 tcsetattr(0, TCSANOW, &shell_in_tioctl);
60 tcsetattr(1, TCSANOW, &shell_out_tioctl);
61 tcsetattr(2, TCSANOW, &shell_err_tioctl);
65
66
67
78
79
80
91
92
93
94
97 t_p->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | INPCK | ISTRIP | INLCR |
98 IGNCR | ICRNL | IXON | IXOFF);
99 t_p->c_iflag |= IUTF8;
100 t_p->c_oflag |= OPOST | ONLCR;
101 t_p->c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN);
102 t_p->c_lflag |= (ISIG | ICANON | IEXTEN | ECHO | ECHOE | ECHOK);
103 t_p->c_cflag &= ~(CSIZE | PARENB);
104 t_p->c_cflag |= CS8 | CLOCAL | CREAD;
105 tcsetattr(0, TCSANOW, t_p);
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
128 t_p->c_lflag |= ISIG;
129 t_p->c_lflag &= ~(ECHO | ICANON);
131 t_p->c_cc[VTIME] = 0;
132 tcsetattr(0, TCSAFLUSH, t_p);
136
137
138
140 struct termios org_tioctl, new_tioctl;
143 if (tcgetattr(2, &org_tioctl) == -1) {
144 fprintf(stderr,
"\ndi_getch: tcgetattr failed\n");
147 new_tioctl = org_tioctl;
148 new_tioctl.c_lflag &= ~(ECHO | ICANON);
149 new_tioctl.c_cc[VMIN] = 1;
150 new_tioctl.c_cc[VTIME] = 0;
151 tcsetattr(2, TCSAFLUSH, &new_tioctl);
153 tcsetattr(2, TCSAFLUSH, &org_tioctl);
struct termios shell_tioctl curses_tioctl
bool f_have_curses_tioctl
struct termios shell_out_tioctl curses_out_tioctl
struct termios shell_in_tioctl curses_in_tioctl
struct termios shell_err_tioctl curses_err_tioctl
struct termios shell_tioctl
bool capture_shell_tioctl()
capture_shell_tioctl() - capture shell terminal settings
char di_getch()
sget single character from terminal in raw mode
bool restore_curses_tioctl()
restore_curses_tioctl() - restore curses terminal settings
bool capture_curses_tioctl()
capture_curses_tioctl() - capture curses terminal settings
bool mk_raw_tioctl(struct termios *)
mk_raw_tioctl() - set terminal to raw mode
bool set_sane_tioctl(struct termios *)
set_sane_tioctl() - set terminal to sane settings for C-MENU
bool restore_shell_tioctl()
restore_shell_tioctl() - restore shell terminal settings