Annotation of 43BSD/ucb/window/wwtty.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)wwtty.c    3.9 4/24/85";
                      3: #endif
                      4: 
                      5: /*
                      6:  * Copyright (c) 1983 Regents of the University of California,
                      7:  * All rights reserved.  Redistribution permitted subject to
                      8:  * the terms of the Berkeley Software License Agreement.
                      9:  */
                     10: 
                     11: #include "ww.h"
                     12: #include <fcntl.h>
                     13: 
                     14: wwgettty(d, t)
                     15: register struct ww_tty *t;
                     16: {
                     17:        if (ioctl(d, (int)TIOCGETP, (char *)&t->ww_sgttyb) < 0)
                     18:                goto bad;
                     19:        if (ioctl(d, (int)TIOCGETC, (char *)&t->ww_tchars) < 0)
                     20:                goto bad;
                     21:        if (ioctl(d, (int)TIOCGLTC, (char *)&t->ww_ltchars) < 0)
                     22:                goto bad;
                     23:        if (ioctl(d, (int)TIOCLGET, (char *)&t->ww_lmode) < 0)
                     24:                goto bad;
                     25:        if (ioctl(d, (int)TIOCGETD, (char *)&t->ww_ldisc) < 0)
                     26:                goto bad;
                     27:        if ((t->ww_fflags = fcntl(d, F_GETFL, 0)) < 0)
                     28:                goto bad;
                     29:        return 0;
                     30: bad:
                     31:        wwerrno = WWE_SYS;
                     32:        return -1;
                     33: }
                     34: 
                     35: /*
                     36:  * Set the modes of tty 'd' to 't'
                     37:  * 'o' is the current modes.  We set the line discipline only if
                     38:  * it changes, to avoid unnecessary flushing of typeahead.
                     39:  */
                     40: wwsettty(d, t, o)
                     41: register struct ww_tty *t, *o;
                     42: {
                     43:        if (ioctl(d, (int)TIOCSETN, (char *)&t->ww_sgttyb) < 0)
                     44:                goto bad;
                     45:        if (ioctl(d, (int)TIOCSETC, (char *)&t->ww_tchars) < 0)
                     46:                goto bad;
                     47:        if (ioctl(d, (int)TIOCSLTC, (char *)&t->ww_ltchars) < 0)
                     48:                goto bad;
                     49:        if (ioctl(d, (int)TIOCLSET, (char *)&t->ww_lmode) < 0)
                     50:                goto bad;
                     51:        if ((o == 0 || t->ww_ldisc != o->ww_ldisc) &&
                     52:            ioctl(d, (int)TIOCSETD, (char *)&t->ww_ldisc) < 0)
                     53:                goto bad;
                     54:        if (fcntl(d, F_SETFL, t->ww_fflags) < 0)
                     55:                goto bad;
                     56:        return 0;
                     57: bad:
                     58:        wwerrno = WWE_SYS;
                     59:        return -1;
                     60: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.