aboutsummaryrefslogtreecommitdiffstats
path: root/src/ptty.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ptty.c')
-rw-r--r--src/ptty.c85
1 files changed, 46 insertions, 39 deletions
diff --git a/src/ptty.c b/src/ptty.c
index 53252a2..a8fdb4f 100644
--- a/src/ptty.c
+++ b/src/ptty.c
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$";
/*
* $Log$
+ * Revision 1.24 2012/06/22 10:22:25 james
+ * *** empty log message ***
+ *
* Revision 1.23 2008/03/12 01:30:23 james
* *** empty log message ***
*
@@ -99,7 +102,8 @@ static char rcsid[] = "$Id$";
#include "project.h"
-typedef struct {
+typedef struct
+{
TTY_SIGNATURE;
int fd;
pid_t child;
@@ -126,18 +130,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);
@@ -151,18 +156,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);
@@ -187,24 +193,25 @@ 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;
-
- if (path[0] == '/')
- execv (path, argv);
- else
- execvp (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;
+
+ if (path[0] == '/')
+ execv (path, argv);
+ else
+ execvp (path, argv);
+
+ _exit (-1);
+ }
set_nonblocking (fd);