#include <tic.h>
-MODULE_ID("$Id: comp_parse.c,v 1.117 2022/04/30 15:57:27 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.124 2022/09/10 19:54:59 tom Exp $")
static void sanity_check2(TERMTYPE2 *, bool);
NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2;
{
ENTRY *newp;
- DEBUG(1, (T_CALLED("enqueue(ep=%p)"), ep));
+ DEBUG(2, (T_CALLED("enqueue(ep=%p)"), (void *) ep));
newp = _nc_copy_entry(ep);
if (newp == 0)
newp->next = 0;
if (newp->last)
newp->last->next = newp;
+ DEBUG(2, (T_RETURN("")));
}
#define NAMEBUFFER_SIZE (MAX_NAME_SIZE + 2)
bool oldsuppress = _nc_suppress_warnings;
int immediate = 0;
- DEBUG(1,
+ DEBUG(2,
(T_CALLED("_nc_read_entry_source(file=%p, buf=%p, literal=%d, silent=%d, hook=%p)"),
- fp, buf, literal, silent, hook));
+ (void *) fp, buf, literal, silent, (void *) hook));
if (silent)
_nc_suppress_warnings = TRUE; /* shut the lexer up, too */
FreeIfNeeded(thisentry.tterm.Booleans);
FreeIfNeeded(thisentry.tterm.Numbers);
FreeIfNeeded(thisentry.tterm.Strings);
+ FreeIfNeeded(thisentry.tterm.str_table);
#if NCURSES_XNAMES
FreeIfNeeded(thisentry.tterm.ext_Names);
+ FreeIfNeeded(thisentry.tterm.ext_str_table);
#endif
}
}
#endif
_nc_suppress_warnings = oldsuppress;
+ DEBUG(2, (T_RETURN("")));
}
#if 0 && NCURSES_XNAMES
int matchcount = 0;
for_entry_list(rp) {
- if (qp > rp
+ if (qp > rp // FIXME - pointer-comparison is wrong...
&& check_collisions(qp->tterm.term_names,
rp->tterm.term_names,
matchcount + 1)) {
for_entry_list(rp) {
if (rp != qp
&& _nc_name_match(rp->tterm.term_names, lookfor, "|")) {
- DEBUG(2, ("%s: resolving use=%s (in core)",
- child, lookfor));
+ DEBUG(2, ("%s: resolving use=%s %p (in core)",
+ child, lookfor, lookfor));
qp->uses[i].link = rp;
foundit = TRUE;
for_entry_list(qp) {
if (qp->nuses > 0) {
- DEBUG(2, ("%s: attempting merge",
- _nc_first_name(qp->tterm.term_names)));
+ DEBUG(2, ("%s: attempting merge of %d entries",
+ _nc_first_name(qp->tterm.term_names),
+ qp->nuses));
/*
* If any of the use entries we're looking for is
* incomplete, punt. We'll catch this entry on a
* subsequent pass.
*/
- for (i = 0; i < qp->nuses; i++)
+ for (i = 0; i < qp->nuses; i++) {
if (qp->uses[i].link
&& qp->uses[i].link->nuses) {
DEBUG(2, ("%s: use entry %d unresolved",
_nc_first_name(qp->tterm.term_names), i));
goto incomplete;
}
+ }
/*
* First, make sure there is no garbage in the
FreeIfNeeded(qp->tterm.Booleans);
FreeIfNeeded(qp->tterm.Numbers);
FreeIfNeeded(qp->tterm.Strings);
+ FreeIfNeeded(qp->tterm.str_table);
#if NCURSES_XNAMES
FreeIfNeeded(qp->tterm.ext_Names);
+ FreeIfNeeded(qp->tterm.ext_str_table);
#endif
qp->tterm = merged.tterm;
_nc_wrap_entry(qp, TRUE);
NCURSES_EXPORT(void)
_nc_leaks_tic(void)
{
- T((T_CALLED("_nc_free_tic()")));
+ T((T_CALLED("_nc_leaks_tic()")));
_nc_globals.leak_checking = TRUE;
_nc_alloc_entry_leaks();
_nc_captoinfo_leaks();
_nc_codes_leaks();
#endif
_nc_tic_expand(0, FALSE, 0);
+ T((T_RETURN("")));
}
NCURSES_EXPORT(void)
_nc_free_tic(int code)
{
+ T((T_CALLED("_nc_free_tic(%d)"), code));
_nc_leaks_tic();
exit_terminfo(code);
}