REGION_INIT(pWin->drawable.pScreen, &rgnDst, NullBox, 0);
REGION_NULL(pWin->drawable.pScreen, &rgnDst);
clCopyWindow(pWin, ptOldOrg, prgnSrc)    WindowPtr pWin;    DDXPointRec ptOldOrg;    RegionPtr prgnSrc;{    DDXPointPtr pptSrc;    register DDXPointPtr ppt;    RegionRec rgnDst;    register BoxPtr pbox;    register int dx, dy;    register int i, nbox;    WindowPtr pwinRoot;    pwinRoot = WindowTable[pWin->drawable.pScreen->myNum];    REGION_INIT(pWin->drawable.pScreen, &rgnDst, NullBox, 0);    dx = ptOldOrg.x - pWin->drawable.x;    dy = ptOldOrg.y - pWin->drawable.y;    REGION_TRANSLATE(pWin->drawable.pScreen, prgnSrc, -dx, -dy);    REGION_INTERSECT(pWin->drawable.pScreen, &rgnDst, &pWin->borderClip, prgnSrc);    pbox = REGION_RECTS(&rgnDst);    nbox = REGION_NUM_RECTS(&rgnDst);    if(!nbox || !(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec))))    {	REGION_UNINIT(pWin->drawable.pScreen, &rgnDst);	return;    }    ppt = pptSrc;    for (i = nbox; --i >= 0; ppt++, pbox++)    {	ppt->x = pbox->x1 + dx;	ppt->y = pbox->y1 + dy;    }    clDoBitbltCopy((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot,		GXcopy, &rgnDst, pptSrc, ~0L);    DEALLOCATE_LOCAL(pptSrc);    REGION_UNINIT(pWin->drawable.pScreen, &rgnDst);}