X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=inline;f=src%2Fserial.c;h=bd4450cfa92738e7fc0c0e30e67124179aa647a6;hb=ded21942fccb9fde8c3264c8f9a3dcdbc6ae1c38;hp=2e67d3dd75e5f465876a37784baf64070dea991f;hpb=1191192d054da2be10658472c29f95e2494ea18f;p=sympathy.git diff --git a/src/serial.c b/src/serial.c index 2e67d3d..bd4450c 100644 --- a/src/serial.c +++ b/src/serial.c @@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.7 2008/02/15 23:52:12 james + * *** empty log message *** + * * Revision 1.6 2008/02/15 19:51:30 james * *** empty log message *** * @@ -79,6 +82,7 @@ serial_close (TTY * _t) if (!t) return; + tcflush (t->fd, TCIOFLUSH); close (t->fd); free (t); } @@ -116,7 +120,7 @@ serial_read (TTY * _t, void *buf, int len) static int -ptty_write (TTY * _t, void *buf, int len) +serial_write (TTY * _t, void *buf, int len) { int writ, done = 0; Serial *t = (Serial *) _t; @@ -161,7 +165,7 @@ serial_open (char *path, int lock_mode) default_termios (&termios); - fd = open (path, O_RDWR); + fd = open (path, O_RDWR | O_NOCTTY | O_NONBLOCK); set_nonblocking (fd); @@ -173,7 +177,7 @@ serial_open (char *path, int lock_mode) t->name[sizeof (t->name) - 1] = 0; t->recv = serial_read; - //t->xmit = serial_write; + t->xmit = serial_write; t->close = serial_close; t->fd = fd; t->rfd = t->fd; @@ -181,6 +185,7 @@ serial_open (char *path, int lock_mode) t->size.x = VT102_COLS; t->size.y = VT102_ROWS; t->blocked = serial_lock_check (t->lock); + t->hanging_up = 0; return (TTY *) t; }