lost ww_tty
[unix-history] / usr / src / usr.bin / window / wwmisc.c
CommitLineData
8584be19 1#ifndef lint
5cb4df98 2static char *sccsid = "@(#)wwmisc.c 3.4 83/11/28";
8584be19
EW
3#endif
4
5#include "ww.h"
6
27b31336 7/*
f2a77fe1 8 * Sufficient but not necessary test for total visibility.
27b31336
EW
9 */
10wwvisible(w)
11register struct ww *w;
12{
13 register i;
14 register nvis = 0;
15
f2a77fe1 16 for (i = w->ww_i.t; i < w->ww_i.b; i++)
27b31336 17 nvis += w->ww_nvis[i];
f2a77fe1
EW
18 if (w->ww_hascursor
19 && w->ww_cur.r >= w->ww_i.b && w->ww_cur.r < w->ww_i.t
20 && w->ww_cur.c >= w->ww_i.l && w->ww_cur.c < w->ww_i.r
21 && wwsmap[w->ww_cur.r][w->ww_cur.c] == w->ww_index)
27b31336 22 nvis++;
f2a77fe1 23 return nvis == w->ww_i.nr * w->ww_i.nc;
27b31336
EW
24}
25
2ea355ad
EW
26char *
27unctrl(c)
5cb4df98 28register c;
2ea355ad
EW
29{
30 static char buf[5];
31 register char *p = buf;
32
5cb4df98 33 c = (unsigned)(unsigned char)c;
2ea355ad
EW
34 if (c == DEL) {
35 *p++ = '^';
36 *p++ = '?';
37 } else if (c < ' ') {
38 *p++ = '^';
39 *p++ = c + '@';
40 } else if (c > DEL) {
41 *p++ = '\\';
42 *p++ = (c >> 6 & 3) + '0';
43 *p++ = (c >> 3 & 7) + '0';
44 *p++ = (c & 7) + '0';
45 } else
46 *p++ = c;
47 *p = 0;
48 return buf;
49}