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

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)ttinit.c   3.14 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 "tt.h"
                     13: 
                     14: int tt_h19();
                     15: int tt_h29();
                     16: int tt_f100();
                     17: int tt_tvi925();
                     18: int tt_generic();
                     19: struct tt_tab tt_tab[] = {
                     20:        { "h19",        3, tt_h19 },
                     21:        { "h29",        3, tt_h29 },
                     22:        { "f100",       4, tt_f100 },
                     23:        { "tvi925",     6, tt_tvi925 },
                     24:        { "generic",    0, tt_generic },
                     25:        0
                     26: };
                     27: 
                     28: ttinit()
                     29: {
                     30:        register struct tt_tab *tp;
                     31:        register char *p, *q;
                     32:        register char *t;
                     33:        struct winsize winsize;
                     34: 
                     35:        tt_strp = tt_strings;
                     36: 
                     37:        /*
                     38:         * Set output buffer size to about 1 second of output time.
                     39:         */
                     40:        tt_obp = tt_ob;
                     41:        tt_obe = tt_ob + MIN(wwbaud/10, sizeof tt_ob);
                     42: 
                     43:        /*
                     44:         * Use the standard name of the terminal (i.e. the second
                     45:         * name in termcap).
                     46:         */
                     47:        for (p = wwtermcap; *p && *p != '|' && *p != ':'; p++)
                     48:                ;
                     49:        if (*p == '|')
                     50:                p++;
                     51:        for (q = p; *q && *q != '|' && *q != ':'; q++)
                     52:                ;
                     53:        if (q != p && (t = malloc((unsigned) (q - p + 1))) != 0) {
                     54:                wwterm = t;
                     55:                while (p < q)
                     56:                        *t++ = *p++;
                     57:                *t = 0;
                     58:        }
                     59:        for (tp = tt_tab; tp->tt_name != 0; tp++)
                     60:                if (strncmp(tp->tt_name, wwterm, tp->tt_len) == 0)
                     61:                        break;
                     62:        if (tp->tt_name == 0) {
                     63:                wwerrno = WWE_BADTERM;
                     64:                return -1;
                     65:        }
                     66:        if ((*tp->tt_func)() < 0) {
                     67:                wwerrno = WWE_CANTDO;
                     68:                return -1;
                     69:        }
                     70:        if (ioctl(0, (int)TIOCGWINSZ, (char *)&winsize) >= 0 &&
                     71:            winsize.ws_row != 0 && winsize.ws_col != 0) {
                     72:                tt.tt_nrow = winsize.ws_row;
                     73:                tt.tt_ncol = winsize.ws_col;
                     74:        }
                     75:        return 0;
                     76: }

unix.superglobalmegacorp.com

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