Commit | Line | Data |
---|---|---|
0fae0eb5 | 1 | #ifndef lint |
a95880d6 | 2 | static 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 | */ | |
10 | c_move(w) | |
11 | register 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 | } |