X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Fentries.c;h=e84033d47f1d527519b459d2a49a693d87d9431a;hp=05f45ef0484ccf1d6602e9103b7de28aa8a12442;hb=048a1c1a65c6d98d92fca97f8d175d10d21091d0;hpb=ca276baf720e3a44721b9e18955d3f546955c6c8 diff --git a/ncurses/tinfo/entries.c b/ncurses/tinfo/entries.c index 05f45ef0..e84033d4 100644 --- a/ncurses/tinfo/entries.c +++ b/ncurses/tinfo/entries.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 2006-2011,2012 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 * @@ -28,6 +28,7 @@ /**************************************************************************** * Author: Thomas E. Dickey * + * and: Juergen Pfeifer * ****************************************************************************/ #include @@ -35,9 +36,8 @@ #include #include -#include -MODULE_ID("$Id: entries.c,v 1.6 2008/06/21 21:25:01 tom Exp $") +MODULE_ID("$Id: entries.c,v 1.21 2012/05/05 20:33:44 tom Exp $") /**************************************************************************** * @@ -96,6 +96,9 @@ _nc_delink_entry(ENTRY * headp, TERMTYPE *tterm) if (last != 0) { last->next = ep->next; } + if (ep->next != 0) { + ep->next->last = last; + } if (ep == _nc_head) { _nc_head = ep->next; } @@ -111,30 +114,41 @@ _nc_delink_entry(ENTRY * headp, TERMTYPE *tterm) NCURSES_EXPORT(void) _nc_leaks_tinfo(void) { +#if NO_LEAKS char *s; +#endif T((T_CALLED("_nc_free_tinfo()"))); #if NO_LEAKS _nc_free_tparm(); _nc_tgetent_leaks(); -#endif + + if (TerminalOf(CURRENT_SCREEN) != 0) { + del_curterm(TerminalOf(CURRENT_SCREEN)); + } + + _nc_comp_captab_leaks(); _nc_free_entries(_nc_head); _nc_get_type(0); _nc_first_name(0); -#if NO_LEAKS + _nc_db_iterator_leaks(); _nc_keyname_leaks(); -#endif #if BROKEN_LINKER || USE_REENTRANT _nc_names_leaks(); _nc_codes_leaks(); FreeIfNeeded(_nc_prescreen.real_acs_map); #endif -#if USE_WIDEC_SUPPORT - FreeIfNeeded(_nc_wacs); -#endif + _nc_comp_error_leaks(); if ((s = _nc_home_terminfo()) != 0) free(s); + +#ifdef TRACE + trace(0); + _nc_trace_buf(-1, (size_t) 0); +#endif + +#endif /* NO_LEAKS */ returnVoid; }