aboutsummaryrefslogtreecommitdiff
path: root/ncurses/tinfo/entries.c
diff options
context:
space:
mode:
Diffstat (limited to 'ncurses/tinfo/entries.c')
-rw-r--r--ncurses/tinfo/entries.c67
1 files changed, 40 insertions, 27 deletions
diff --git a/ncurses/tinfo/entries.c b/ncurses/tinfo/entries.c
index e84033d47f1d..794c519b8884 100644
--- a/ncurses/tinfo/entries.c
+++ b/ncurses/tinfo/entries.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. *
+ * Copyright (c) 2006-2017,2019 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 *
@@ -37,7 +37,7 @@
#include <tic.h>
-MODULE_ID("$Id: entries.c,v 1.21 2012/05/05 20:33:44 tom Exp $")
+MODULE_ID("$Id: entries.c,v 1.29 2019/12/15 00:18:03 tom Exp $")
/****************************************************************************
*
@@ -63,30 +63,8 @@ MODULE_ID("$Id: entries.c,v 1.21 2012/05/05 20:33:44 tom Exp $")
NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
-NCURSES_EXPORT(void)
-_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
-/* free the allocated storage consumed by the given list entry */
-{
- ENTRY *ep;
-
- if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
- free(ep);
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_free_entries(ENTRY * headp)
-/* free the allocated storage consumed by list entries */
-{
- (void) headp; /* unused - _nc_head is altered here! */
-
- while (_nc_head != 0) {
- _nc_free_termtype(&(_nc_head->tterm));
- }
-}
-
-NCURSES_EXPORT(ENTRY *)
-_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
+static ENTRY *
+_nc_delink_entry(ENTRY * headp, TERMTYPE2 *tterm)
/* delink the allocated storage for the given list entry */
{
ENTRY *ep, *last;
@@ -112,6 +90,28 @@ _nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
}
NCURSES_EXPORT(void)
+_nc_free_entry(ENTRY * headp, TERMTYPE2 *tterm)
+/* free the allocated storage consumed by the given list entry */
+{
+ ENTRY *ep;
+
+ if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
+ free(ep);
+ }
+}
+
+NCURSES_EXPORT(void)
+_nc_free_entries(ENTRY * headp)
+/* free the allocated storage consumed by list entries */
+{
+ (void) headp; /* unused - _nc_head is altered here! */
+
+ while (_nc_head != 0) {
+ _nc_free_termtype2(&(_nc_head->tterm));
+ }
+}
+
+NCURSES_EXPORT(void)
_nc_leaks_tinfo(void)
{
#if NO_LEAKS
@@ -120,14 +120,17 @@ _nc_leaks_tinfo(void)
T((T_CALLED("_nc_free_tinfo()")));
#if NO_LEAKS
+ _nc_globals.leak_checking = TRUE;
_nc_free_tparm();
_nc_tgetent_leaks();
if (TerminalOf(CURRENT_SCREEN) != 0) {
del_curterm(TerminalOf(CURRENT_SCREEN));
}
+ _nc_forget_prescr();
_nc_comp_captab_leaks();
+ _nc_comp_userdefs_leaks();
_nc_free_entries(_nc_head);
_nc_get_type(0);
_nc_first_name(0);
@@ -144,7 +147,8 @@ _nc_leaks_tinfo(void)
free(s);
#ifdef TRACE
- trace(0);
+ T((T_RETURN("")));
+ curses_trace(0);
_nc_trace_buf(-1, (size_t) 0);
#endif
@@ -160,3 +164,12 @@ _nc_free_tinfo(int code)
exit(code);
}
#endif
+
+NCURSES_EXPORT(void)
+exit_terminfo(int code)
+{
+#if NO_LEAKS
+ _nc_leaks_tinfo();
+#endif
+ exit(code);
+}