aboutsummaryrefslogtreecommitdiffstats
path: root/src/terminal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/terminal.c')
-rw-r--r--src/terminal.c101
1 files changed, 55 insertions, 46 deletions
diff --git a/src/terminal.c b/src/terminal.c
index f0472a1..1223c0f 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$";
/*
* $Log$
+ * Revision 1.3 2008/02/13 09:12:21 james
+ * *** empty log message ***
+ *
* Revision 1.2 2008/02/13 01:08:18 james
* *** empty log message ***
*
@@ -47,7 +50,7 @@ typedef struct TERMINAL_struct
} TERMINAL;
-static TERMINAL terminal_list=NULL;
+static TERMINAL *terminal_list = NULL;
int terminal_winches;
@@ -56,36 +59,39 @@ static void
terminal_close (TTY * _t)
{
TERMINAL *t = (TERMINAL *) _t;
- TERMINAL **ptr=&terminal_list;
+ TERMINAL **ptr = &terminal_list;
if (!t)
return;
/* Take out of cleanup list */
- while (*ptr && (*ptr != t)) ptr=&((*ptr)->next);
+ while (*ptr && (*ptr != t))
+ ptr = &((*ptr)->next);
- if (*ptr)
- *ptr=t->next;
+ if (*ptr)
+ *ptr = t->next;
- tcsetattr(t->wfd,TCSANOW,&t->orig_termios);
+ tcsetattr (t->wfd, TCSANOW, &t->orig_termios);
- set_blocking(t->rfd);
- set_blocking(t->wfd);
+ set_blocking (t->rfd);
+ set_blocking (t->wfd);
free (t);
}
-void terminal_atexit(void)
+void
+terminal_atexit (void)
{
-while (terminal_list)
- terminal_close(terminal_list);
+ while (terminal_list)
+ terminal_close ((TTY *) terminal_list);
}
-static void sigint(int dummy)
+static void
+sigint (int dummy)
{
-terminal_atexit();
-exit(-1);
+ terminal_atexit ();
+ exit (-1);
}
static void
@@ -96,14 +102,15 @@ sigwinch (int not)
void
-terminal_getsize (TTY *_t)
+terminal_getsize (TTY * _t)
{
-TERMINAL *t=(TTY *) _t;
+ TERMINAL *t = (TERMINAL *) _t;
struct winsize sz = { 0 };
-if (!t) return;
+ if (!t)
+ return;
-if (ioctl (a->wfd, TIOCGWINSZ, &sz))
+ if (ioctl (t->wfd, TIOCGWINSZ, &sz))
{
t->size.x = CRT_COLS;
t->size.y = CRT_ROWS;
@@ -116,17 +123,19 @@ if (ioctl (a->wfd, TIOCGWINSZ, &sz))
}
-void terminal_dispatch(void)
+void
+terminal_dispatch (void)
{
-TERMINAL *t;
+ TERMINAL *t;
-if (!terminal_winches) return;
+ if (!terminal_winches)
+ return;
-terminal_winches=0;
+ terminal_winches = 0;
-for (t=terminal_list;t;t=t->next)
-terminal_getsize(t);
+ for (t = terminal_list; t; t = t->next)
+ terminal_getsize (t);
}
@@ -137,12 +146,12 @@ terminal_read (TTY * _t, void *buf, int len)
TERMINAL *t = (TERMINAL *) _t;
int red, done = 0;
- terminal_dispatch();
+ terminal_dispatch ();
do
{
- red = wrap_read (t->fd, buf, len);
+ red = wrap_read (t->rfd, buf, len);
if (red < 0)
return -1;
if (!red)
@@ -165,12 +174,12 @@ terminal_write (TTY * _t, void *buf, int len)
int writ, done = 0;
TERMINAL *t = (TERMINAL *) _t;
- terminal_dispatch();
+ terminal_dispatch ();
do
{
- writ = wrap_write (t->fd, buf, len);
+ writ = wrap_write (t->wfd, buf, len);
if (writ < 0)
return -1;
if (!writ)
@@ -187,21 +196,22 @@ terminal_write (TTY * _t, void *buf, int len)
}
-void terminal_register_handlers(void)
+void
+terminal_register_handlers (void)
{
- struct sigaction sa = { 0 };
+ struct sigaction sa = { 0 };
- sa.sa_handler = sigwinch;
- sa.sa_flags = SA_RESTART;
- sigaction (SIGWINCH, &sa, NULL);
+ sa.sa_handler = sigwinch;
+ sa.sa_flags = SA_RESTART;
+ sigaction (SIGWINCH, &sa, NULL);
- sa.sa_handler = sigint;
- sa.sa_flags = SA_RESTART;
- sigaction (SIGINT, &sa, NULL);
+ sa.sa_handler = sigint;
+ sa.sa_flags = SA_RESTART;
+ sigaction (SIGINT, &sa, NULL);
}
TTY *
-terminal_open (int rfd,int wfd)
+terminal_open (int rfd, int wfd)
{
TERMINAL *t;
pid_t child;
@@ -213,12 +223,12 @@ terminal_open (int rfd,int wfd)
t->rfd = rfd;
t->wfd = wfd;
- tcgetattr(wfd,&t->orig_termios);
+ tcgetattr (wfd, &t->orig_termios);
- t->next=terminal_list;
- terminal_list=t;
+ t->next = terminal_list;
+ terminal_list = t;
- tcgetattr(tfd,&termios);
+ tcgetattr (wfd, &termios);
set_nonblocking (rfd);
set_nonblocking (wfd);
@@ -226,15 +236,14 @@ terminal_open (int rfd,int wfd)
raw_termios (&termios);
- tcsetattr(wfd,TCSANOW,&termios);
+ tcsetattr (wfd, TCSANOW, &termios);
- t->read = terminal_read;
- t->write = terminal_write;
+ t->recv = terminal_read;
+ t->xmit = terminal_write;
t->close = terminal_close;
- terminal_getsize((TTY*) t);
+ terminal_getsize ((TTY *) t);
return (TTY *) t;
}
-