ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/ptytty.h
(Generate patch)

Comparing rxvt-unicode/src/ptytty.h (file contents):
Revision 1.8 by root, Tue Jan 17 10:59:32 2006 UTC vs.
Revision 1.21 by root, Mon Jan 23 12:05:12 2006 UTC

1// This file is part of libptytty. Do not make local modifications.
2// http://software.schmorp.de/pkg/libptytty
3
1#ifndef PTYTTY_H 4#ifndef PTYTTY_H
2#define PTYTTY_H 5#define PTYTTY_H
3 6
4#include "feature.h" 7#include "libptytty.h"
8#include "ptytty_conf.h"
5 9
6#if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT) 10#if PTYTTY_REENTRANT
7# if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_POSIX) || defined(PTYS_ARE_PTMX) 11# define PTYTTY_NO_PID_CHECK 1
8# define NO_SETOWNER_TTYDEV 1
9# endif
10#endif 12#endif
11#if defined(__CYGWIN32__) 13
14#if defined(HAVE__GETPTY) || defined(HAVE_OPENPTY) || defined(UNIX98_PTY)
12# define NO_SETOWNER_TTYDEV 1 15# define NO_SETOWNER_TTYDEV 1
13#endif 16#endif
14 17
15#if UTMP_SUPPORT 18#if UTMP_SUPPORT
16# if !defined(RXVT_UTMPX_FILE) || !defined(HAVE_STRUCT_UTMPX) 19# if !defined(UTMPX_FILE) || !defined(HAVE_STRUCT_UTMPX) || defined(__GLIBC__)
17# undef HAVE_UTMPX_H 20# undef HAVE_UTMPX_H
18# undef HAVE_STRUCT_UTMPX 21# undef HAVE_STRUCT_UTMPX
19# endif 22# endif
20# if !defined(RXVT_UTMP_FILE) || !defined(HAVE_STRUCT_UTMP) 23# if !defined(UTMP_FILE) || !defined(HAVE_STRUCT_UTMP)
21# undef HAVE_UTMP_H 24# undef HAVE_UTMP_H
22# undef HAVE_STRUCT_UTMP 25# undef HAVE_STRUCT_UTMP
23# endif 26# endif
24 27
25# ifdef HAVE_UTMPX_H 28# ifdef HAVE_UTMPX_H
37# include <lastlog.h> 40# include <lastlog.h>
38# endif 41# endif
39 42
40# include <pwd.h> 43# include <pwd.h>
41 44
42# ifdef RXVT_UTMP_SYSV 45# ifdef UTMP_SYSV
43# ifndef USER_PROCESS 46# ifndef USER_PROCESS
44# define USER_PROCESS 7 47# define USER_PROCESS 7
45# endif 48# endif
46# ifndef DEAD_PROCESS 49# ifndef DEAD_PROCESS
47# define DEAD_PROCESS 8 50# define DEAD_PROCESS 8
48# endif 51# endif
49# endif 52# endif
50 53
51# ifdef __QNX__
52# include <sys/utsname.h>
53# define ut_name ut_user
54# endif
55
56#endif 54#endif
57 55
58enum rxvt_privaction { IGNORE = 'i', SAVE = 's', RESTORE = 'r' }; 56#define fatal(msg) do { write (2, msg, sizeof (msg) - 1); _exit (255); } while (0)
59 57
60struct rxvt_ptytty {
61 int pty; // pty file descriptor; connected to rxvt
62 int tty; // tty file descriptor; connected to child
63
64 virtual ~rxvt_ptytty ()
65 {
66 //
67 }
68
69 virtual bool get () = 0;
70 virtual void put () = 0;
71
72 virtual void login (int cmd_pid, bool login_shell, const char *hostname) = 0;
73 virtual void logout () = 0;
74
75 void close_tty ();
76
77 bool make_controlling_tty ();
78 void set_utf8_mode (bool on);
79};
80
81struct rxvt_ptytty_unix : rxvt_ptytty { 58struct ptytty_unix : ptytty
59{
82 char *name; 60 char *name;
83 61
84#ifndef RESET_TTY_TO_COMMON_DEFAULTS
85 struct stat savestat; /* original status of our tty */
86#endif
87#ifndef NO_SETOWNER_TTYDEV
88 void privileges (rxvt_privaction action);
89 bool saved;
90#endif
91public: 62public:
92 63
93 rxvt_ptytty_unix (); 64 ptytty_unix ();
94 ~rxvt_ptytty_unix (); 65 ~ptytty_unix ();
66
67 bool get ();
68 void put ();
69
70 void login (int cmd_pid, bool login_shell, const char *hostname);
95 71
96#if UTMP_SUPPORT 72#if UTMP_SUPPORT
97 int utmp_pos; 73 int utmp_pos;
98 int cmd_pid; 74 int cmd_pid;
99 bool login_shell; 75 bool login_shell;
106#endif 82#endif
107#if (defined(HAVE_STRUCT_UTMP) && defined(HAVE_UTMP_PID)) || defined(HAVE_STRUCT_UTMPX) 83#if (defined(HAVE_STRUCT_UTMP) && defined(HAVE_UTMP_PID)) || defined(HAVE_STRUCT_UTMPX)
108 char ut_id[5]; 84 char ut_id[5];
109#endif 85#endif
110 86
111 bool get ();
112 void put ();
113
114 void login (int cmd_pid, bool login_shell, const char *hostname);
115 void logout (); 87 void logout ();
116#endif 88#endif
117}; 89};
118 90
119#endif 91#endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines