]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/base/lib_freeall.c
ncurses 5.0
[ncurses.git] / ncurses / base / lib_freeall.c
similarity index 91%
rename from ncurses/lib_freeall.c
rename to ncurses/base/lib_freeall.c
index fe756bb43b117a52e08e060a39e8ba3ff9dc4a9a..324e7a28274150b3de24b3ac6e108fd48e63b644 100644 (file)
  *  Author: Thomas E. Dickey <dickey@clark.net> 1996,1997                   *
  ****************************************************************************/
 
-#define HAVE_NC_FREEALL 1
-
 #include <curses.priv.h>
-#include <term.h>
+#include <term_entry.h>
+
+#if HAVE_NC_FREEALL
 
 #if HAVE_LIBDBMALLOC
 extern int malloc_errfd;       /* FIXME */
 #endif
 
-MODULE_ID("$Id: lib_freeall.c,v 1.11 1998/02/11 12:13:57 tom Exp $")
+MODULE_ID("$Id: lib_freeall.c,v 1.15 1999/10/22 21:40:10 tom Exp $")
 
 static void free_slk(SLK *p)
 {
@@ -50,16 +50,6 @@ static void free_slk(SLK *p)
        }
 }
 
-void _nc_free_termtype(struct termtype *p, int base)
-{
-       if (p != 0) {
-               FreeIfNeeded(p->term_names);
-               FreeIfNeeded(p->str_table);
-               if (base)
-                       free(p);
-       }
-}
-
 static void free_tries(struct tries *p)
 {
        struct tries *q;
@@ -111,14 +101,14 @@ void _nc_freeall(void)
                free_slk(SP->_slk);
                FreeIfNeeded(SP->_color_pairs);
                FreeIfNeeded(SP->_color_table);
-               _nc_set_buffer(SP->_ofp, FALSE);
 #if !BROKEN_LINKER
                FreeAndNull(SP);
 #endif
        }
 
        if (cur_term != 0) {
-               _nc_free_termtype(&(cur_term->type), TRUE);
+               _nc_free_termtype(&(cur_term->type));
+               free(cur_term);
        }
 
 #ifdef TRACE
@@ -137,3 +127,6 @@ void _nc_free_and_exit(int code)
        _nc_freeall();
        exit(code);
 }
+#else
+void _nc_freeall(void) { }
+#endif