2
3
4
5
6
7
8
11
12
13
14
40
41
42
47 tcgetattr(0, &shell_in_tioctl);
48 tcgetattr(1, &shell_out_tioctl);
49 tcgetattr(2, &shell_err_tioctl);
54
55
56
61 tcsetattr(0, TCSANOW, &shell_in_tioctl);
62 tcsetattr(1, TCSANOW, &shell_out_tioctl);
63 tcsetattr(2, TCSANOW, &shell_err_tioctl);
67
68
69
81
82
83
95
96
97
98
102 t_p->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | INPCK | ISTRIP | INLCR |
103 IGNCR | ICRNL | IXON | IXOFF);
104 t_p->c_iflag |= IUTF8;
105 t_p->c_oflag |= OPOST | ONLCR;
106 t_p->c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN);
107 t_p->c_lflag |= (ISIG | ICANON | IEXTEN | ECHO | ECHOE | ECHOK);
108 t_p->c_cflag &= ~(CSIZE | PARENB);
109 t_p->c_cflag |= CS8 | CLOCAL | CREAD;
111 tcsetattr(0, TCSANOW, t_p);
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
135 t_p->c_lflag |= ISIG;
136 t_p->c_lflag &= ~(ECHO | ICANON);
138 t_p->c_cc[VTIME] = 0;
140 tcsetattr(0, TCSAFLUSH, t_p);
143 t_p->c_lflag |= ISIG;
144 t_p->c_lflag &= ~(ECHO | ICANON);
146 t_p->c_cc[VTIME] = 0;
148 tcsetattr(2, TCSAFLUSH, t_p);
152
153
154
155
156
157
159 struct termios org_tioctl, new_tioctl;
163 if (tcgetattr(2, &org_tioctl) == -1) {
164 fprintf(stderr,
"\ndi_getch: tcgetattr failed\n");
167 new_tioctl = org_tioctl;
168 new_tioctl.c_lflag &= ~(ECHO | ICANON);
169 new_tioctl.c_cc[VMIN] = 1;
170 new_tioctl.c_cc[VTIME] = 0;
172 tcsetattr(2, TCSAFLUSH, &new_tioctl);
175 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()
get 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