aboutsummaryrefslogtreecommitdiff
path: root/contrib/ncurses/panel/p_new.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ncurses/panel/p_new.c')
-rw-r--r--contrib/ncurses/panel/p_new.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/contrib/ncurses/panel/p_new.c b/contrib/ncurses/panel/p_new.c
index f2f208d6ec7b..43542fea2154 100644
--- a/contrib/ncurses/panel/p_new.c
+++ b/contrib/ncurses/panel/p_new.c
@@ -36,7 +36,12 @@
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_new.c,v 1.4 1999/09/29 15:22:32 juergen Exp $")
+MODULE_ID("$Id: p_new.c,v 1.5 1999/11/22 18:02:41 juergen Exp $")
+
+#ifdef TRACE
+static char* stdscr_id;
+static char* new_id;
+#endif
/*+-------------------------------------------------------------------------
Get root (i.e. stdscr's) panel.
@@ -57,7 +62,9 @@ root_panel(void)
pan->below = (PANEL*)0;
pan->above = (PANEL*)0;
#ifdef TRACE
- pan->user = "stdscr";
+ if (!stdscr_id)
+ stdscr_id = strdup("stdscr");
+ pan->user = stdscr_id;
#else
pan->user = (void*)0;
#endif
@@ -72,7 +79,11 @@ new_panel(WINDOW *win)
{
PANEL *pan = (PANEL*)0;
- (void)root_panel();
+ if (!win)
+ return(pan);
+
+ if (!_nc_stdscr_pseudo_panel)
+ (void)root_panel();
assert(_nc_stdscr_pseudo_panel);
if (!(win->_flags & _ISPAD) && (pan = (PANEL*)malloc(sizeof(PANEL))))
@@ -81,7 +92,9 @@ new_panel(WINDOW *win)
pan->above = (PANEL *)0;
pan->below = (PANEL *)0;
#ifdef TRACE
- pan->user = "new";
+ if (!new_id)
+ new_id = strdup("new");
+ pan->user = new_id;
#else
pan->user = (char *)0;
#endif