Use rxvt_temp_buf in more places.
[dana/urxvt.git] / src / ptytty.h
1 // This file is part of libptytty. Do not make local modifications.
2 // http://software.schmorp.de/pkg/libptytty
3
4 #ifndef PTYTTY_H
5 #define PTYTTY_H
6
7 #include "libptytty.h"
8 #include "ptytty_conf.h"
9
10 #if PTYTTY_REENTRANT
11 # define PTYTTY_NO_PID_CHECK 1
12 #endif
13
14 #if defined(HAVE__GETPTY) || defined(HAVE_OPENPTY) || defined(UNIX98_PTY)
15 # define NO_SETOWNER_TTYDEV 1
16 #endif
17
18 #if UTMP_SUPPORT
19 # if !defined(UTMPX_FILE) || !defined(HAVE_STRUCT_UTMPX) || defined(__GLIBC__)
20 #  undef HAVE_UTMPX_H
21 #  undef HAVE_STRUCT_UTMPX
22 # endif
23 # if !defined(UTMP_FILE) || !defined(HAVE_STRUCT_UTMP)
24 #  undef HAVE_UTMP_H
25 #  undef HAVE_STRUCT_UTMP
26 # endif
27
28 # ifdef HAVE_UTMPX_H
29 #  include <utmpx.h>
30 # endif
31 # ifdef HAVE_UTMP_H
32 #  include <utmp.h>
33 # endif
34
35 # if ! defined(HAVE_STRUCT_UTMPX) && ! defined(HAVE_STRUCT_UTMP)
36 #  error cannot build with utmp support - no utmp or utmpx struct found
37 # endif
38
39 # ifdef HAVE_LASTLOG_H
40 #  include <lastlog.h>
41 # endif
42
43 # include <pwd.h>
44
45 # ifdef UTMP_SYSV
46 #  ifndef USER_PROCESS
47 #   define USER_PROCESS         7
48 #  endif
49 #  ifndef DEAD_PROCESS
50 #   define DEAD_PROCESS         8
51 #  endif
52 # endif
53
54 #endif
55
56 #define fatal(msg) do { write (2, msg, sizeof (msg) - 1); _exit (255); } while (0)
57
58 struct ptytty_unix : ptytty
59 {
60   char *name;
61
62 public:
63
64   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);
71
72 #if UTMP_SUPPORT
73   int utmp_pos;
74   int cmd_pid;
75   bool login_shell;
76
77 #ifdef HAVE_STRUCT_UTMP
78   struct utmp ut;
79 #endif
80 #ifdef HAVE_STRUCT_UTMPX
81   struct utmpx utx;
82 #endif
83 #if (defined(HAVE_STRUCT_UTMP) && defined(HAVE_UTMP_PID)) || defined(HAVE_STRUCT_UTMPX)
84   char ut_id[5];
85 #endif
86
87   void logout ();
88 #endif
89 };
90
91 #endif
92