/****************************************************************************
- * Copyright (c) 1998-2004,2005 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 *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_newwin.c,v 1.36 2005/04/09 15:23:04 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.40 2007/03/10 18:18:59 tom Exp $")
static WINDOW *
remove_window_from_screen(WINDOW *win)
SCREEN *sp = *scan;
if (sp->_curscr == win) {
sp->_curscr = 0;
+#if !USE_REENTRANT
if (win == curscr)
curscr = 0;
+#endif
} else if (sp->_stdscr == win) {
sp->_stdscr = 0;
+#if !USE_REENTRANT
if (win == stdscr)
stdscr = 0;
+#endif
} else if (sp->_newscr == win) {
sp->_newscr = 0;
+#if !USE_REENTRANT
if (win == newscr)
newscr = 0;
+#endif
} else {
scan = &(*scan)->_next_screen;
continue;
win->_pary = begy;
win->_parx = begx;
- win->_attrs = orig->_attrs;
+ WINDOW_ATTRS(win) = WINDOW_ATTRS(orig);
win->_nc_bkgd = orig->_nc_bkgd;
for (i = 0; i < num_lines; i++)
subwin(WINDOW *w, int l, int c, int y, int x)
{
T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), w, l, c, y, x));
- T(("parent has begy = %d, begx = %d", w->_begy, w->_begx));
+ T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx));
returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx));
}
WINDOW *win;
bool is_pad = (flags & _ISPAD);
- T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx));
+ T((T_CALLED("_nc_makenew(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
if (SP == 0)
- return 0;
+ returnWin(0);
if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
- return 0;
+ returnWin(0);
if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
- return 0;
+ returnWin(0);
win = &(wp->win);
if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
free(win);
- return 0;
+ returnWin(0);
}
win->_curx = 0;
win->_yoffset = SP->_topstolen;
win->_flags = flags;
- win->_attrs = A_NORMAL;
+ WINDOW_ATTRS(win) = A_NORMAL;
SetChar(win->_nc_bkgd, BLANK_TEXT, BLANK_ATTR);
win->_clear = is_pad ? FALSE : (num_lines == screen_lines
T((T_CREATE("window %p"), win));
- return (win);
+ returnWin(win);
}