chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / ptty.c
index e2688259a51b591ff692073d15232b97ef96abea..f8b6b9fced7c8467d1643399a257c789ff779022 100644 (file)
@@ -10,6 +10,27 @@ static char rcsid[] = "$Id$";
 
 /*
  * $Log$
+ * Revision 1.16  2008/02/28 16:57:52  james
+ * *** empty log message ***
+ *
+ * Revision 1.15  2008/02/27 09:42:53  james
+ * *** empty log message ***
+ *
+ * Revision 1.14  2008/02/27 09:42:22  james
+ * *** empty log message ***
+ *
+ * Revision 1.13  2008/02/27 01:31:38  james
+ * *** empty log message ***
+ *
+ * Revision 1.12  2008/02/27 01:31:14  james
+ * *** empty log message ***
+ *
+ * Revision 1.11  2008/02/26 23:23:17  james
+ * *** empty log message ***
+ *
+ * Revision 1.10  2008/02/24 00:42:53  james
+ * *** empty log message ***
+ *
  * Revision 1.9  2008/02/23 13:05:58  staffcvs
  * *** empty log message ***
  *
@@ -131,25 +152,22 @@ ptty_write (TTY * _t, void *buf, int len)
 }
 
 TTY *
-ptty_open (char *path, char *argv[])
+ptty_open (char *path, char *argv[], CRT_Pos * size)
 {
   PTTY *t;
   pid_t child;
   char name[1024];
   struct winsize winsize = { 0 };
-  struct termios termios = { 0 };
+  struct termios ctermios = { 0 };
   int fd;
   char *default_argv[] = { "-", (char *) 0 };
 
 
-  default_termios (&termios);
-  cfsetispeed (&termios, B9600);
-  cfsetospeed (&termios, B9600);
-
-  winsize.ws_row = VT102_ROWS;
-  winsize.ws_col = VT102_COLS;
+  client_termios (&ctermios);
+  winsize.ws_row = size ? size->y : VT102_ROWS_24;
+  winsize.ws_col = size ? size->x : VT102_COLS_80;
 
-  child = forkpty (&fd, name, &termios, &winsize);
+  child = forkpty (&fd, name, &ctermios, &winsize);
 
   switch (child)
     {
@@ -169,6 +187,16 @@ ptty_open (char *path, char *argv[])
 
   set_nonblocking (fd);
 
+#if 0
+  {
+    struct termios termios = { 0 };
+
+    tcgetattr (fd, &termios);
+    default_termios (&termios);
+    tcsetattr (fd, TCSANOW, &termios);
+  }
+#endif
+
   t = (PTTY *) malloc (sizeof (PTTY));
 
   strncpy (t->name, name, sizeof (t->name));