… | |
… | |
2 | #define INIT_H_ |
2 | #define INIT_H_ |
3 | |
3 | |
4 | #undef CERASE /* TODO */ |
4 | #undef CERASE /* TODO */ |
5 | #define CERASE '\010' /* ^H */ |
5 | #define CERASE '\010' /* ^H */ |
6 | |
6 | |
7 | #ifdef HAVE_XSETLOCALE |
|
|
8 | # define X_LOCALE |
|
|
9 | # include <X11/Xlocale.h> |
|
|
10 | #else |
|
|
11 | # ifdef HAVE_SETLOCALE |
|
|
12 | # include <clocale> |
|
|
13 | # endif |
|
|
14 | #endif /* HAVE_XLOCALE */ |
|
|
15 | |
|
|
16 | #if defined(PTYS_ARE_PTMX) && !defined(__CYGWIN32__) |
|
|
17 | # include <sys/resource.h> /* for struct rlimit */ |
|
|
18 | # define _NEW_TTY_CTRL /* to get proper defines in <termios.h> */ |
|
|
19 | #endif |
|
|
20 | |
|
|
21 | #ifdef TTY_GID_SUPPORT |
|
|
22 | # include <grp.h> |
|
|
23 | #endif |
|
|
24 | |
|
|
25 | /* ways to deal with getting/setting termios structure */ |
7 | /* ways to deal with getting/setting termios structure */ |
26 | |
8 | |
27 | #ifdef HAVE_TERMIOS_H |
|
|
28 | /* termios interface */ |
9 | /* termios interface */ |
29 | # ifdef TCSANOW /* POSIX */ |
|
|
30 | # define GET_TERMIOS(fd,tios) tcgetattr (fd, tios) |
10 | #define GET_TERMIOS(fd,tios) tcgetattr (fd, tios) |
31 | # define SET_TERMIOS(fd,tios) \ |
11 | #define SET_TERMIOS(fd,tios) \ |
32 | cfsetospeed (tios, BAUDRATE), \ |
12 | cfsetospeed (tios, BAUDRATE), \ |
33 | cfsetispeed (tios, BAUDRATE), \ |
13 | cfsetispeed (tios, BAUDRATE), \ |
34 | tcsetattr (fd, TCSANOW, tios) |
14 | tcsetattr (fd, TCSANOW, tios) |
35 | # else |
|
|
36 | # ifdef TIOCSETA |
|
|
37 | # define GET_TERMIOS(fd,tios) ioctl (fd, TIOCGETA, tios) |
|
|
38 | # define SET_TERMIOS(fd,tios) \ |
|
|
39 | tios->c_cflag |= BAUDRATE, \ |
|
|
40 | ioctl (fd, TIOCSETA, tios) |
|
|
41 | # else |
|
|
42 | # define GET_TERMIOS(fd,tios) ioctl (fd, TCGETS, tios) |
|
|
43 | # define SET_TERMIOS(fd,tios) \ |
|
|
44 | tios->c_cflag |= BAUDRATE, \ |
|
|
45 | ioctl (fd, TCSETS, tios) |
|
|
46 | # endif |
|
|
47 | # endif |
|
|
48 | # define SET_TTYMODE(fd,tios) SET_TERMIOS (fd, tios) |
|
|
49 | #else |
|
|
50 | /* sgtty interface */ |
|
|
51 | |
|
|
52 | # define SET_TTYMODE(fd,tt) \ |
|
|
53 | tt->sg.sg_ispeed = tt->sg.sg_ospeed = BAUDRATE, \ |
|
|
54 | ioctl (fd, TIOCSETP, & (tt->sg)), \ |
|
|
55 | ioctl (fd, TIOCSETC, & (tt->tc)), \ |
|
|
56 | ioctl (fd, TIOCSLTC, & (tt->lc)), \ |
|
|
57 | ioctl (fd, TIOCSETD, & (tt->line)), \ |
|
|
58 | ioctl (fd, TIOCLSET, & (tt->local)) |
|
|
59 | #endif /* HAVE_TERMIOS_H */ |
|
|
60 | |
15 | |
61 | /* use the fastest baud-rate */ |
16 | /* use the fastest baud-rate */ |
62 | #ifdef B38400 |
17 | #ifdef B38400 |
63 | # define BAUDRATE B38400 |
18 | # define BAUDRATE B38400 |
64 | #else |
19 | #else |