ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/ptytty.h
Revision: 1.6
Committed: Tue Jan 17 10:14:26 2006 UTC (18 years, 4 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.5: +62 -0 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #ifndef PTYTTY_H
2 #define PTYTTY_H
3
4 #include "feature.h"
5
6 #if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT)
7 # if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_PTMX)
8 # define NO_SETOWNER_TTYDEV 1
9 # endif
10 #endif
11 #if defined(__CYGWIN32__)
12 # define NO_SETOWNER_TTYDEV 1
13 #endif
14
15 #if UTMP_SUPPORT
16 # if !defined(RXVT_UTMPX_FILE) || !defined(HAVE_STRUCT_UTMPX)
17 # undef HAVE_UTMPX_H
18 # undef HAVE_STRUCT_UTMPX
19 # endif
20 # if !defined(RXVT_UTMP_FILE) || !defined(HAVE_STRUCT_UTMP)
21 # undef HAVE_UTMP_H
22 # undef HAVE_STRUCT_UTMP
23 # endif
24
25 # ifdef HAVE_UTMPX_H
26 # include <utmpx.h>
27 # endif
28 # ifdef HAVE_UTMP_H
29 # include <utmp.h>
30 # endif
31
32 # if ! defined(HAVE_STRUCT_UTMPX) && ! defined(HAVE_STRUCT_UTMP)
33 # error cannot build with utmp support - no utmp or utmpx struct found
34 # endif
35
36 # ifdef HAVE_LASTLOG_H
37 # include <lastlog.h>
38 # endif
39
40 # include <pwd.h>
41
42 # ifdef RXVT_UTMP_SYSV
43 # ifndef USER_PROCESS
44 # define USER_PROCESS 7
45 # endif
46 # ifndef DEAD_PROCESS
47 # define DEAD_PROCESS 8
48 # endif
49 # endif
50
51 # ifdef __QNX__
52 # include <sys/utsname.h>
53 # define ut_name ut_user
54 # endif
55
56 #endif
57
58 enum rxvt_privaction { IGNORE = 'i', SAVE = 's', RESTORE = 'r' };
59
60 struct rxvt_ptytty {
61 #ifndef RESET_TTY_TO_COMMON_DEFAULTS
62 struct stat savestat; /* original status of our tty */
63 #endif
64 #ifndef NO_SETOWNER_TTYDEV
65 void privileges (rxvt_privaction action);
66 bool saved;
67 #endif
68 public:
69 int pty; // pty file descriptor; connected to rxvt
70 int tty; // tty file descriptor; connected to child
71 char *name;
72
73 rxvt_ptytty ();
74 ~rxvt_ptytty ();
75
76 bool get ();
77 void put ();
78
79 void close_tty ();
80
81 bool make_controlling_tty ();
82 void set_utf8_mode (bool on);
83
84 #if UTMP_SUPPORT
85 int utmp_pos;
86 int cmd_pid;
87 bool login_shell;
88
89 #ifdef HAVE_STRUCT_UTMP
90 struct utmp ut;
91 #endif
92 #ifdef HAVE_STRUCT_UTMPX
93 struct utmpx utx;
94 #endif
95 #if (defined(HAVE_STRUCT_UTMP) && defined(HAVE_UTMP_PID)) || defined(HAVE_STRUCT_UTMPX)
96 char ut_id[5];
97 #endif
98
99 void login (int cmd_pid, bool login_shell, const char *hostname);
100 void logout ();
101 #endif
102 };
103
104 #endif
105