ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/ptytty.h
Revision: 1.11
Committed: Tue Jan 17 12:29:40 2006 UTC (18 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.10: +7 -1 lines
Log Message:
*** empty log message ***

File Contents

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