#include <curses.priv.h>
#include <stddef.h>
-MODULE_ID("$Id: lib_newwin.c,v 1.68 2011/01/22 20:34:15 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.71 2011/05/28 21:32:51 tom Exp $")
#define window_is(name) ((sp)->_##name == win)
T((T_CALLED("newwin(%p, %d,%d,%d,%d)"), (void *) SP_PARM, num_lines, num_columns,
begy, begx));
- if (begy < 0 || begx < 0 || num_lines <= 0 || num_columns <= 0)
+ if (begy < 0
+ || begx < 0
+ || num_lines < 0
+ || num_columns < 0
+ || SP_PARM == 0)
returnWin(0);
if (num_lines == 0)
/*
* make sure window fits inside the original one
*/
- if (begy < 0 || begx < 0 || orig == 0 || num_lines <= 0 || num_columns <= 0)
+ if (begy < 0 || begx < 0 || orig == 0 || num_lines < 0 || num_columns < 0)
returnWin(0);
if (begy + num_lines > orig->_maxy + 1
|| begx + num_columns > orig->_maxx + 1)
NCURSES_EXPORT(WINDOW *)
subwin(WINDOW *w, int l, int c, int y, int x)
{
+ WINDOW *result = 0;
+
T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), (void *) w, l, c, y, x));
- T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx));
+ if (w != 0) {
+ T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx));
- returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx));
+ result = derwin(w, l, c, y - w->_begy, x - w->_begx);
+ }
+ returnWin(result);
}
static bool