xref: /csrg-svn/usr.bin/window/wwmove.c (revision 14980)
1*14980Sedward #ifndef lint
2*14980Sedward static	char *sccsid = "@(#)wwmove.c	3.1 83/09/14";
3*14980Sedward #endif
4*14980Sedward 
5*14980Sedward #include "ww.h"
6*14980Sedward 
7*14980Sedward /*
8*14980Sedward  * Move a window.  Should be unattached.
9*14980Sedward  */
10*14980Sedward wwmove(w, row, col)
11*14980Sedward register struct ww *w;
12*14980Sedward {
13*14980Sedward 	if (w->ww_forw != 0 || w->ww_back != 0)
14*14980Sedward 		return;				/* sanity */
15*14980Sedward 
16*14980Sedward 	w->ww_w.t = row;
17*14980Sedward 	w->ww_w.b = w->ww_w.t + w->ww_w.nr;
18*14980Sedward 	w->ww_w.l = col;
19*14980Sedward 	w->ww_w.r = w->ww_w.l + w->ww_w.nc;
20*14980Sedward 
21*14980Sedward 	w->ww_i.t = MAX(w->ww_w.t, 0);
22*14980Sedward 	w->ww_i.b = MIN(w->ww_w.b, wwnrow);
23*14980Sedward 	w->ww_i.nr = w->ww_i.b - w->ww_i.t;
24*14980Sedward 	w->ww_i.l = MAX(w->ww_w.l, 0);
25*14980Sedward 	w->ww_i.r = MIN(w->ww_w.r, wwncol);
26*14980Sedward 	w->ww_i.nc = w->ww_i.r - w->ww_i.l;
27*14980Sedward }
28