X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftrace%2Flib_tracedmp.c;h=536231364085c96b601da173df2432bf0198123b;hp=b5d758bdf486474fae9c8e48e7d0603bcdeabd0a;hb=7a27c7d49c2e8b4a1ecbe85b4423d647cbc75ea5;hpb=55ccd2b959766810cf7db8d1c4462f338ce0afc8 diff --git a/ncurses/trace/lib_tracedmp.c b/ncurses/trace/lib_tracedmp.c index b5d758bd..53623136 100644 --- a/ncurses/trace/lib_tracedmp.c +++ b/ncurses/trace/lib_tracedmp.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 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 * @@ -39,15 +39,16 @@ #include #include -MODULE_ID("$Id: lib_tracedmp.c,v 1.26 2005/01/29 16:23:51 tom Exp $") +MODULE_ID("$Id: lib_tracedmp.c,v 1.28 2007/04/21 21:10:54 tom Exp $") #ifdef TRACE + +#define my_buffer _nc_globals.tracedmp_buf +#define my_length _nc_globals.tracedmp_used + NCURSES_EXPORT(void) _tracedump(const char *name, WINDOW *win) { - static char *buf = 0; - static size_t used = 0; - int i, j, n, width; /* compute narrowest possible display width */ @@ -66,13 +67,13 @@ _tracedump(const char *name, WINDOW *win) } if (width < win->_maxx) ++width; - if (++width + 1 > (int) used) { - used = 2 * (width + 1); - buf = typeRealloc(char, used, buf); + if (++width + 1 > (int) my_length) { + my_length = 2 * (width + 1); + my_buffer = typeRealloc(char, my_length, my_buffer); } for (n = 0; n <= win->_maxy; ++n) { - char *ep = buf; + char *ep = my_buffer; bool haveattrs, havecolors; /* @@ -93,10 +94,10 @@ _tracedump(const char *name, WINDOW *win) : '?'; } ep[j] = '\0'; - _tracef("%s[%2d] %3d%3d ='%s'", + _tracef("%s[%2d] %3ld%3ld ='%s'", name, n, - win->_line[n].firstchar, - win->_line[n].lastchar, + (long) win->_line[n].firstchar, + (long) win->_line[n].lastchar, ep); /* dump A_COLOR part, will screw up if there are more than 96 */ @@ -107,7 +108,7 @@ _tracedump(const char *name, WINDOW *win) break; } if (havecolors) { - ep = buf; + ep = my_buffer; for (j = 0; j < width; ++j) { int pair = GetPair(win->_line[n].text[j]); if (pair >= 52) @@ -123,7 +124,7 @@ _tracedump(const char *name, WINDOW *win) } ep[j] = '\0'; _tracef("%*s[%2d]%*s='%s'", (int) strlen(name), - "colors", n, 8, " ", buf); + "colors", n, 8, " ", my_buffer); } for (i = 0; i < 4; ++i) { @@ -137,20 +138,20 @@ _tracedump(const char *name, WINDOW *win) break; } if (haveattrs) { - ep = buf; + ep = my_buffer; for (j = 0; j < width; ++j) ep[j] = hex[(AttrOf(win->_line[n].text[j]) & mask) >> ((i + 4) * 4)]; ep[j] = '\0'; _tracef("%*s%d[%2d]%*s='%s'", (int) strlen(name) - - 1, "attrs", i, n, 8, " ", buf); + 1, "attrs", i, n, 8, " ", my_buffer); } } } #if NO_LEAKS - free(buf); - buf = 0; - used = 0; + free(my_buffer); + my_buffer = 0; + my_length = 0; #endif }