/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2009,2011 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1999 *
+ * Author: Thomas E. Dickey 1999 *
****************************************************************************/
/*
* trace_tries.c - Tracing/Debugging buffers (keycode tries-trees)
#include <curses.priv.h>
-MODULE_ID("$Id: trace_tries.c,v 1.6 1999/03/06 22:51:07 tom Exp $")
+MODULE_ID("$Id: trace_tries.c,v 1.16 2011/01/09 00:23:27 tom Exp $")
#ifdef TRACE
-static unsigned char *buffer;
-static unsigned len;
+#define my_buffer _nc_globals.tracetry_buf
+#define my_length _nc_globals.tracetry_used
-static void recur_tries(struct tries *tree, unsigned level)
+static void
+recur_tries(TRIES * tree, unsigned level)
{
- if (level > len)
- buffer = (unsigned char *)realloc(buffer, len = (level + 1) * 4);
+ if (level > my_length) {
+ my_length = (level + 1) * 4;
+ my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length);
+ }
- while (tree != 0) {
- if ((buffer[level] = tree->ch) == 0)
- buffer[level] = 128;
- buffer[level+1] = 0;
- if (tree->value != 0) {
- _tracef("%5d: %s (%s)", tree->value, _nc_visbuf((char *)buffer), keyname(tree->value));
- }
- if (tree->child)
- recur_tries(tree->child, level+1);
- tree = tree->sibling;
+ while (tree != 0) {
+ if ((my_buffer[level] = tree->ch) == 0)
+ my_buffer[level] = 128;
+ my_buffer[level + 1] = 0;
+ if (tree->value != 0) {
+ _tracef("%5d: %s (%s)", tree->value,
+ _nc_visbuf((char *) my_buffer), keyname(tree->value));
}
+ if (tree->child)
+ recur_tries(tree->child, level + 1);
+ tree = tree->sibling;
+ }
}
-void _nc_trace_tries(struct tries *tree)
+NCURSES_EXPORT(void)
+_nc_trace_tries(TRIES * tree)
{
- buffer = typeMalloc(unsigned char, len = 80);
- _tracef("BEGIN tries %p", tree);
- recur_tries(tree, 0);
- _tracef(". . . tries %p", tree);
- free(buffer);
+ my_buffer = typeMalloc(unsigned char, my_length = 80);
+ _tracef("BEGIN tries %p", (void *) tree);
+ recur_tries(tree, 0);
+ _tracef(". . . tries %p", (void *) tree);
+ free(my_buffer);
}
+
#else
-void _nc_trace_tries(struct tries *tree GCC_UNUSED)
-{
-}
+EMPTY_MODULE(_nc_empty_trace_tries)
#endif