ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/ptytty.h
Revision: 1.7
Committed: Tue Jan 17 10:25:08 2006 UTC (18 years, 4 months ago) by ayin
Content type: text/plain
Branch: MAIN
Changes since 1.6: +1 -1 lines
Log Message:
Define NO_SETOWNER_TTYDEV when using posix_openpt.

File Contents

# User Rev Content
1 root 1.1 #ifndef PTYTTY_H
2     #define PTYTTY_H
3    
4 root 1.4 #include "feature.h"
5    
6     #if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT)
7 ayin 1.7 # if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_POSIX) || defined(PTYS_ARE_PTMX)
8 root 1.4 # define NO_SETOWNER_TTYDEV 1
9     # endif
10     #endif
11 root 1.5 #if defined(__CYGWIN32__)
12 root 1.4 # define NO_SETOWNER_TTYDEV 1
13     #endif
14 root 1.1
15 root 1.6 #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 root 1.1 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 root 1.4 #ifndef NO_SETOWNER_TTYDEV
65 root 1.1 void privileges (rxvt_privaction action);
66 root 1.4 bool saved;
67     #endif
68 root 1.1 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 root 1.2 void close_tty ();
80    
81 root 1.1 bool make_controlling_tty ();
82 root 1.3 void set_utf8_mode (bool on);
83 root 1.6
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 root 1.1 };
103    
104     #endif
105