* Copyright (c) 1981 Regents of the University of California.
* %sccs.include.redist.c%
static char sccsid
[] = "@(#)toucholap.c 5.6 (Berkeley) %G%";
* Touch, on win2, the part that overlaps with win1.
register WINDOW
*win1
, *win2
;
register int y
, endy
, endx
, starty
, startx
;
__TRACE("touchoverlap: (%0.2o, %0.2o);\n", win1
, win2
);
starty
= max(win1
->_begy
, win2
->_begy
);
startx
= max(win1
->_begx
, win2
->_begx
);
endy
= min(win1
->_maxy
+ win1
->_begy
, win2
->_maxy
+ win2
->_begx
);
endx
= min(win1
->_maxx
+ win1
->_begx
, win2
->_maxx
+ win2
->_begx
);
__TRACE("touchoverlap: from (%d,%d) to (%d,%d)\n",
starty
, startx
, endy
, endx
);
__TRACE("touchoverlap: win1 (%d,%d) to (%d,%d)\n",
win1
->_begy
, win1
->_begx
, win1
->_begy
+ win1
->_maxy
,
win1
->_begx
+ win1
->_maxx
);
__TRACE("touchoverlap: win2 (%d,%d) to (%d,%d)\n",
win2
->_begy
, win2
->_begx
, win2
->_begy
+ win2
->_maxy
,
win2
->_begx
+ win2
->_maxx
);
if (starty
>= endy
|| startx
>= endx
)
for (--endx
, y
= starty
; y
< endy
; y
++)
touchline(win2
, y
, startx
, endx
);