--- rxvt-unicode/src/rxvt.h 2006/01/17 10:59:32 1.217 +++ rxvt-unicode/src/rxvt.h 2006/01/19 09:47:15 1.222 @@ -96,6 +96,8 @@ # define STDERR_FILENO 2 #endif +enum rxvt_privaction { IGNORE = 'i', SAVE = 's', RESTORE = 'r' };//TODO + /* ***************************************************************************** * PROTOTYPES @@ -174,6 +176,28 @@ } bgPixmap_t; #endif +struct rxvt_ptytty { + int pty; // pty file descriptor; connected to rxvt + int tty; // tty file descriptor; connected to child + + virtual ~rxvt_ptytty () + { + // + } + + virtual bool get () = 0; +#if UTMP_SUPPORT + virtual void login (int cmd_pid, bool login_shell, const char *hostname) = 0; +#endif + + void close_tty (); + bool make_controlling_tty (); + void set_utf8_mode (bool on); +}; + +rxvt_ptytty *rxvt_new_ptytty (); // create a new pty object +void rxvt_ptytty_server (); // start the ptytty server process + /* * the 'essential' information for reporting Mouse Events * pared down from XButtonEvent @@ -1124,7 +1148,7 @@ char *cmdbuf_ptr, *cmdbuf_endp; char cmdbuf_base[CBUFSIZ]; - rxvt_ptytty_unix pty; + rxvt_ptytty *pty; rxvt_salloc *talloc; // text line allocator rxvt_salloc *ralloc; // rend line allocator @@ -1165,6 +1189,7 @@ xevent_watcher scrollbar_ev; #endif + void child_cb (child_watcher &w, int status); child_watcher child_ev; void check_cb (check_watcher &w); check_watcher check_ev; void destroy_cb (time_watcher &w); time_watcher destroy_ev; void flush_cb (time_watcher &w); time_watcher flush_ev; @@ -1204,7 +1229,6 @@ rxvt_term (); ~rxvt_term (); - void child_exit (); // child has exited, usually destroys void destroy (); void emergency_cleanup ();