lint
[unix-history] / usr / src / usr.bin / window / cmd5.c
CommitLineData
0fae0eb5 1#ifndef lint
a95880d6 2static char *sccsid = "@(#)cmd5.c 3.4 83/09/01";
0fae0eb5 3#endif
8baf70f5
EW
4
5#include "defs.h"
6
7/*
8 * Window movement.
9 */
10c_move(w)
11register struct ww *w;
12{
13 int col, row;
8baf70f5
EW
14 struct ww *back = w->ww_back;
15
16 col = w->ww_w.l;
17 row = w->ww_w.t;
18 wwadd(boxwin, framewin->ww_back);
19 for (;;) {
20 wwbox(boxwin, row - 1, col - 1, w->ww_w.nr + 2, w->ww_w.nc + 2);
21 wwsetcursor(row, col);
22 while (bpeekc() < 0)
23 bread();
24 wwunbox(boxwin);
25 switch (getpos(&row, &col, 1, 0,
26 wwnrow - w->ww_w.nr, wwncol - w->ww_w.nc)) {
27 case -1:
28 wwdelete(boxwin);
29 if (!terse)
30 (void) wwputs("\r\nCancelled. ", cmdwin);
31 return;
32 case 1:
33 break;
34 case 0:
35 continue;
36 }
37 break;
38 }
39 wwdelete(boxwin);
40 if (!terse)
41 (void) wwputs("\r\n", cmdwin);
42 wwcurtowin(cmdwin);
43 wwdelete(w);
44 w->ww_w.t = row;
45 w->ww_w.l = col;
46 w->ww_w.b = row + w->ww_w.nr;
47 w->ww_w.r = col + w->ww_w.nc;
48 wwadd(w, back);
49 reframe();
50}