X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_newwin.c;h=bb6bc0578633748c6dd6c56996b129df66dd5109;hp=ba516337b99634ca051f4342980a6efb575bbccf;hb=3853a8e97d7efa8cb6a3c93c696d2c52895d6a70;hpb=027ae42953e3186daed8f3882da73de48291b606 diff --git a/ncurses/base/lib_newwin.c b/ncurses/base/lib_newwin.c index ba516337..bb6bc057 100644 --- a/ncurses/base/lib_newwin.c +++ b/ncurses/base/lib_newwin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2006 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 * @@ -41,7 +41,7 @@ #include -MODULE_ID("$Id: lib_newwin.c,v 1.38 2006/10/14 20:31:19 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) @@ -52,16 +52,22 @@ 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; @@ -208,22 +214,22 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags) 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; @@ -303,5 +309,5 @@ _nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags) T((T_CREATE("window %p"), win)); - return (win); + returnWin(win); }