diff options
author | james <> | 2008-03-03 06:04:42 +0000 |
---|---|---|
committer | james <> | 2008-03-03 06:04:42 +0000 |
commit | f2c620137fa5290d913373e5579a97f0fee25fa3 (patch) | |
tree | dfbbe3562ae58e8f540a92654cb4f4d7323d59d7 /src/ptty.c | |
parent | 800cb4bdfb56dcd606216788fb023fcc23fb69bf (diff) | |
download | sympathy-f2c620137fa5290d913373e5579a97f0fee25fa3.tar.gz sympathy-f2c620137fa5290d913373e5579a97f0fee25fa3.tar.bz2 sympathy-f2c620137fa5290d913373e5579a97f0fee25fa3.zip |
*** empty log message ***
Diffstat (limited to 'src/ptty.c')
-rw-r--r-- | src/ptty.c | 77 |
1 files changed, 42 insertions, 35 deletions
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.18 2008/03/03 06:04:42 james + * *** empty log message *** + * * Revision 1.17 2008/03/02 10:37:56 james * *** empty log message *** * @@ -81,7 +84,8 @@ static char rcsid[] = "$Id$"; #include "project.h" -typedef struct { +typedef struct +{ TTY_SIGNATURE; int fd; pid_t child; @@ -108,18 +112,19 @@ ptty_read (TTY * _t, void *buf, int len) PTTY *t = (PTTY *) _t; int red, done = 0; - do { + do + { - red = wrap_read (t->fd, buf, len); - if (red < 0) - return -1; - if (!red) - return done; + red = wrap_read (t->fd, buf, len); + if (red < 0) + return -1; + if (!red) + return done; - buf += red; - len -= red; - done += red; - } + buf += red; + len -= red; + done += red; + } while (len); @@ -133,18 +138,19 @@ ptty_write (TTY * _t, void *buf, int len) int writ, done = 0; PTTY *t = (PTTY *) _t; - do { + do + { - writ = wrap_write (t->fd, buf, len); - if (writ < 0) - return -1; - if (!writ) - sleep (1); + writ = wrap_write (t->fd, buf, len); + if (writ < 0) + return -1; + if (!writ) + sleep (1); - buf += writ; - len -= writ; - done += writ; - } + buf += writ; + len -= writ; + done += writ; + } while (len); @@ -169,20 +175,21 @@ ptty_open (char *path, char *argv[], CRT_Pos * size) child = forkpty (&fd, name, &ctermios, &winsize); - switch (child) { - case -1: /*boo hiss */ - return NULL; - case 0: /*waaah */ - setenv ("TERM", "xterm", 1); - if (!path) - path = "/bin/sh"; - - if (!argv) - argv = default_argv; - - execv (path, argv); - _exit (-1); - } + switch (child) + { + case -1: /*boo hiss */ + return NULL; + case 0: /*waaah */ + setenv ("TERM", "xterm", 1); + if (!path) + path = "/bin/sh"; + + if (!argv) + argv = default_argv; + + execv (path, argv); + _exit (-1); + } set_nonblocking (fd); |