1 | #ifndef PTYTTY_H |
1 | #ifndef PTYTTY_H |
2 | #define PTYTTY_H |
2 | #define PTYTTY_H |
3 | |
3 | |
|
|
4 | #include "rxvt.h" |
4 | #include "feature.h" |
5 | #include "feature.h" |
5 | |
6 | |
6 | #if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT) |
7 | #if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT) |
7 | # if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_POSIX) || defined(PTYS_ARE_PTMX) |
8 | # if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_POSIX) || defined(PTYS_ARE_PTMX) |
8 | # define NO_SETOWNER_TTYDEV 1 |
9 | # define NO_SETOWNER_TTYDEV 1 |
… | |
… | |
48 | # endif |
49 | # endif |
49 | # endif |
50 | # endif |
50 | |
51 | |
51 | #endif |
52 | #endif |
52 | |
53 | |
53 | enum rxvt_privaction { IGNORE = 'i', SAVE = 's', RESTORE = 'r' }; |
54 | struct rxvt_ptytty_base : rxvt_ptytty |
54 | |
55 | { |
55 | struct rxvt_ptytty { |
|
|
56 | int pty; // pty file descriptor; connected to rxvt |
|
|
57 | int tty; // tty file descriptor; connected to child |
|
|
58 | |
|
|
59 | virtual ~rxvt_ptytty () |
|
|
60 | { |
|
|
61 | // |
|
|
62 | } |
|
|
63 | |
|
|
64 | virtual bool get () = 0; |
|
|
65 | virtual void put () = 0; |
56 | virtual void put () = 0; |
66 | |
|
|
67 | virtual void login (int cmd_pid, bool login_shell, const char *hostname) = 0; |
|
|
68 | virtual void logout () = 0; |
|
|
69 | |
|
|
70 | void close_tty (); |
|
|
71 | |
|
|
72 | bool make_controlling_tty (); |
|
|
73 | void set_utf8_mode (bool on); |
|
|
74 | }; |
57 | }; |
75 | |
58 | |
76 | struct rxvt_ptytty_unix : rxvt_ptytty { |
59 | struct rxvt_ptytty_unix : rxvt_ptytty_base |
|
|
60 | { |
77 | char *name; |
61 | char *name; |
78 | |
62 | |
79 | #ifndef RESET_TTY_TO_COMMON_DEFAULTS |
63 | #ifndef RESET_TTY_TO_COMMON_DEFAULTS |
80 | struct stat savestat; /* original status of our tty */ |
64 | struct stat savestat; /* original status of our tty */ |
81 | #endif |
65 | #endif |