chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / ptty.c
index b59f823e40f8ebc667aacd8ee2208824ef308de5..860928e0135aa5ea81aa0802c22c46921a124047 100644 (file)
@@ -10,6 +10,21 @@ static char rcsid[] = "$Id$";
 
 /*
  * $Log$
+ * Revision 1.7  2008/02/22 17:07:00  james
+ * *** empty log message ***
+ *
+ * Revision 1.6  2008/02/22 14:51:54  james
+ * *** empty log message ***
+ *
+ * Revision 1.5  2008/02/15 23:52:12  james
+ * *** empty log message ***
+ *
+ * Revision 1.4  2008/02/14 10:39:14  james
+ * *** empty log message ***
+ *
+ * Revision 1.3  2008/02/13 09:12:21  james
+ * *** empty log message ***
+ *
  * Revision 1.2  2008/02/12 22:36:46  james
  * *** empty log message ***
  *
@@ -118,16 +133,22 @@ ptty_open (char *path, char *argv[])
   struct winsize winsize = { 0 };
   struct termios termios;
   int fd;
-  char *default_argv = { "-", (char *) 0 };
+  char *default_argv[] = { "-", (char *) 0 };
+
+
+  default_termios (&termios);
+
+  winsize.ws_row = VT102_ROWS;
+  winsize.ws_col = VT102_COLS;
 
   child = forkpty (&fd, name, &termios, &winsize);
 
   switch (child)
     {
     case -1:                   /*boo hiss */
-      return -1;
+      return NULL;
     case 0:                    /*waaah */
-      setenv ("TERM", "vt102", 1);
+      setenv ("TERM", "xterm", 1);
       setenv ("LANG", "C", 1);
       if (!path)
         path = "/bin/sh";
@@ -146,19 +167,17 @@ ptty_open (char *path, char *argv[])
   strncpy (t->name, name, sizeof (t->name));
   t->name[sizeof (t->name) - 1] = 0;
 
-  t->read = ptty_read;
-  t->write = ptty_write;
+  t->recv = ptty_read;
+  t->xmit = ptty_write;
   t->close = ptty_close;
-
-  default_termios (&termios);
-
-  winsize.ws_row = VT102_ROWS;
-  winsize.ws_col = VT102_COLS;
-
-  t->fd = open_fd_to_pty (path, argv);
-  t->pid = child;
+  t->fd = fd;
+  t->child = child;
   t->rfd = t->fd;
-  t->wfd = 0;
+  t->wfd = t->fd;
+  t->size.x = winsize.ws_row;
+  t->size.y = winsize.ws_col;
+  t->blocked = 0;
+  t->hanging_up = 0;
 
   return (TTY *) t;
 }