X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftrace%2Ftrace_tries.c;h=14f704b4abb5ffb2962ee353dc89a1a9c6a0ffa6;hp=c4274643c5e56fc5cb1d31f70f6683deb38aaf14;hb=c976a90788f3e50afc773670ff74c5270ecb48df;hpb=3a0d9d27e0cf115ff9dcc6163c251bccaa62bd7d;ds=sidebyside diff --git a/ncurses/trace/trace_tries.c b/ncurses/trace/trace_tries.c index c4274643..14f704b4 100644 --- a/ncurses/trace/trace_tries.c +++ b/ncurses/trace/trace_tries.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1999-2008,2009 Free Software Foundation, Inc. * + * Copyright 2020 Thomas E. Dickey * + * Copyright 1999-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 * @@ -27,7 +28,7 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1999 * + * Author: Thomas E. Dickey 1999 * ****************************************************************************/ /* * trace_tries.c - Tracing/Debugging buffers (keycode tries-trees) @@ -35,7 +36,7 @@ #include -MODULE_ID("$Id: trace_tries.c,v 1.15 2009/10/24 22:15:47 tom Exp $") +MODULE_ID("$Id: trace_tries.c,v 1.18 2020/02/02 23:34:34 tom Exp $") #ifdef TRACE #define my_buffer _nc_globals.tracetry_buf @@ -49,30 +50,33 @@ recur_tries(TRIES * tree, unsigned level) my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length); } - 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 (my_buffer != 0) { + 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; } - if (tree->child) - recur_tries(tree->child, level + 1); - tree = tree->sibling; } } NCURSES_EXPORT(void) _nc_trace_tries(TRIES * tree) { - 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); + if ((my_buffer = typeMalloc(unsigned char, my_length = 80)) != 0) { + _tracef("BEGIN tries %p", (void *) tree); + recur_tries(tree, 0); + _tracef(". . . tries %p", (void *) tree); + free(my_buffer); + } } #else -EMPTY_MODULE(_nc_trace_tries) +EMPTY_MODULE(_nc_empty_trace_tries) #endif