X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_overlay.c;h=22bd2f80ba72bb2d688072e42f3372bb684eda66;hp=7840b45036e0968e5c9d96ca62cf0cdc3e255357;hb=2639531af0c3ca25b48e7bcb9c790fa566cc5892;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01 diff --git a/ncurses/base/lib_overlay.c b/ncurses/base/lib_overlay.c index 7840b450..22bd2f80 100644 --- a/ncurses/base/lib_overlay.c +++ b/ncurses/base/lib_overlay.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,7 +40,7 @@ #include -MODULE_ID("$Id: lib_overlay.c,v 1.21 2002/09/21 23:03:32 tom Exp $") +MODULE_ID("$Id: lib_overlay.c,v 1.23 2007/04/07 17:13:52 tom Exp $") static int overlap(const WINDOW *const s, WINDOW *const d, int const flag) @@ -56,10 +56,16 @@ overlap(const WINDOW *const s, WINDOW *const d, int const flag) if (s == 0 || d == 0) { returnCode(ERR); } else { - T(("src : begy %d, begx %d, maxy %d, maxx %d", - s->_begy, s->_begx, s->_maxy, s->_maxx)); - T(("dst : begy %d, begx %d, maxy %d, maxx %d", - d->_begy, d->_begx, d->_maxy, d->_maxx)); + T(("src : begy %ld, begx %ld, maxy %ld, maxx %ld", + (long) s->_begy, + (long) s->_begx, + (long) s->_maxy, + (long) s->_maxx)); + T(("dst : begy %ld, begx %ld, maxy %ld, maxx %ld", + (long) d->_begy, + (long) d->_begx, + (long) d->_maxy, + (long) d->_maxx)); sx1 = s->_begx; sy1 = s->_begy; @@ -133,8 +139,8 @@ copywin(const WINDOW *src, WINDOW *dst, { int sx, sy, dx, dy; bool touched; - attr_t bk = AttrOf(dst->_nc_bkgd); - attr_t mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0); + attr_t bk; + attr_t mask; T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"), src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over)); @@ -142,6 +148,9 @@ copywin(const WINDOW *src, WINDOW *dst, if (!src || !dst) returnCode(ERR); + bk = AttrOf(dst->_nc_bkgd); + mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0); + /* make sure rectangle exists in source */ if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) || (smincol + dmaxcol - dmincol) > (src->_maxx + 1)) {