freedom 100
[unix-history] / usr / src / usr.bin / window / wwmisc.c
CommitLineData
8584be19 1#ifndef lint
f2a77fe1 2static char *sccsid = "@(#)wwmisc.c 3.3 83/09/15";
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)
28register char c;
29{
30 static char buf[5];
31 register char *p = buf;
32
33 if (c == DEL) {
34 *p++ = '^';
35 *p++ = '?';
36 } else if (c < ' ') {
37 *p++ = '^';
38 *p++ = c + '@';
39 } else if (c > DEL) {
40 *p++ = '\\';
41 *p++ = (c >> 6 & 3) + '0';
42 *p++ = (c >> 3 & 7) + '0';
43 *p++ = (c & 7) + '0';
44 } else
45 *p++ = c;
46 *p = 0;
47 return buf;
48}