114691Sedward #ifndef lint 2*29722Sedward static char sccsid[] = "@(#)tttermcap.c 3.7 08/05/86"; 314691Sedward #endif 414691Sedward 518740Sedward /* 618740Sedward * Copyright (c) 1983 Regents of the University of California, 718740Sedward * All rights reserved. Redistribution permitted subject to 818740Sedward * the terms of the Berkeley Software License Agreement. 918740Sedward */ 1018740Sedward 1114691Sedward #include "tt.h" 1214691Sedward 1314691Sedward char *tgetstr(); 1424975Sedward char *tgoto(); 1524975Sedward char *malloc(); 1614691Sedward 1716123Sedward tttputc(c) 1814691Sedward { 1916123Sedward ttputc(c); 2014691Sedward } 2114691Sedward 2216123Sedward ttxputc(c) 2314691Sedward { 2414691Sedward *tt_strp++ = c; 2514691Sedward } 2614691Sedward 2724975Sedward struct tt_str * 2824975Sedward tttgetstr(str) 2924975Sedward char *str; 3024975Sedward { 3124975Sedward register struct tt_str *s; 3224975Sedward 3324975Sedward if ((str = tgetstr(str, &tt_strp)) == 0) 3424975Sedward return 0; 3524975Sedward if ((s = (struct tt_str *) malloc(sizeof *s)) == 0) 3624975Sedward return 0; 3724975Sedward s->ts_str = str; 3824975Sedward s->ts_n = tt_strp - s->ts_str - 1; 3924975Sedward return s; 4024975Sedward } 4124975Sedward 4224975Sedward struct tt_str * 4316123Sedward ttxgetstr(str) 4424975Sedward char *str; 4514691Sedward { 4624975Sedward register struct tt_str *s; 4714691Sedward char buf[100]; 4814691Sedward char *bufp = buf; 4914691Sedward 5024975Sedward if (tgetstr(str, &bufp) == 0) 5114691Sedward return 0; 5224975Sedward if ((s = (struct tt_str *) malloc(sizeof *s)) == 0) 5324975Sedward return 0; 5424975Sedward s->ts_str = tt_strp; 5516123Sedward tputs(buf, 1, ttxputc); 5624975Sedward s->ts_n = tt_strp - s->ts_str; 5724975Sedward *tt_strp++ = 0; 5824975Sedward return s; 5914691Sedward } 6024975Sedward 6124975Sedward tttgoto(s, col, row) 6224975Sedward struct tt_str *s; 6324975Sedward { 6424975Sedward register char *p = s->ts_str; 6524975Sedward 6624975Sedward ttputs(tgoto(p, col, row)); 6724975Sedward for (p += s->ts_n; *--p == 0;) 6824975Sedward ttputc(0); 6924975Sedward } 70*29722Sedward 71*29722Sedward ttstrcmp(a, b) 72*29722Sedward register struct tt_str *a, *b; 73*29722Sedward { 74*29722Sedward int n, r; 75*29722Sedward 76*29722Sedward if (r = bcmp(a->ts_str, b->ts_str, 77*29722Sedward (n = a->ts_n - b->ts_n) < 0 ? a->ts_n : b->ts_n)) 78*29722Sedward return r; 79*29722Sedward return n; 80*29722Sedward } 81