* Copyright (c) 1981 Regents of the University of California.
* %sccs.include.redist.c%
static char sccsid
[] = "@(#)toucholap.c 5.8 (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
, 0);