]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/lib_cur_term.c
ncurses 5.7 - patch 20090530
[ncurses.git] / ncurses / tinfo / lib_cur_term.c
index 64ff4c29700a5672d4a5f1655c00b532d8aa4c3a..26e8dc8d4d971fea7465e1583c1a6bed913cb2a4 100644 (file)
@@ -40,7 +40,7 @@
 #include <term_entry.h>                /* TTY, cur_term */
 #include <termcap.h>           /* ospeed */
 
-MODULE_ID("$Id: lib_cur_term.c,v 1.19 2009/02/28 15:49:58 tom Exp $")
+MODULE_ID("$Id: lib_cur_term.c,v 1.22 2009/05/30 13:55:19 tom Exp $")
 
 #undef CUR
 #define CUR termp->type.
@@ -68,7 +68,9 @@ set_curterm(TERMINAL * termp)
     oldterm = cur_term;
     if (SP)
        SP->_term = termp;
-#if BROKEN_LINKER || USE_REENTRANT
+#if BROKEN_LINKER && !USE_REENTRANT
+    cur_term = termp;
+#elif BROKEN_LINKER || USE_REENTRANT
     _nc_prescreen._cur_term = termp;
 #else
     cur_term = termp;
@@ -86,7 +88,7 @@ set_curterm(TERMINAL * termp)
 }
 
 NCURSES_EXPORT(int)
-del_curterm(TERMINAL * termp)
+NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL * termp)
 {
     int rc = ERR;
 
@@ -96,6 +98,10 @@ del_curterm(TERMINAL * termp)
     if (termp != 0) {
        _nc_free_termtype(&(termp->type));
        FreeIfNeeded(termp->_termname);
+#if USE_HOME_TERMINFO
+       if (_nc_globals.home_terminfo != 0)
+           FreeAndNull(_nc_globals.home_terminfo);
+#endif
        free(termp);
        if (termp == cur_term)
            set_curterm(0);
@@ -105,3 +111,13 @@ del_curterm(TERMINAL * termp)
 
     returnCode(rc);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+del_curterm(TERMINAL * termp)
+{
+    int rc = ERR;
+    rc = NCURSES_SP_NAME(del_curterm) (CURRENT_SCREEN, termp);
+    return (rc);
+}
+#endif