From a9022b5972dc49d86f617a27940fafe9c4d0e7e7 Mon Sep 17 00:00:00 2001 From: Ian C Date: Thu, 9 Jun 2011 13:46:28 +0000 Subject: Initial import of (very old) vidoom sources. --- debug.c | 231 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 debug.c (limited to 'debug.c') diff --git a/debug.c b/debug.c new file mode 100644 index 0000000..e318482 --- /dev/null +++ b/debug.c @@ -0,0 +1,231 @@ +/* + + viDOOM - level editor for DOOM + + Copyright (C) 2000 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------- + + Debug output + +*/ +static const char rcs_id[]="$Id$"; + +#include "config.h" + +#include +#include +#include + +#include "debug.h" + +/* Set this true if you want to use stderr for debug output +*/ +static int use_stderr=TRUE; + +static FILE *trace_fp=NULL; + +void VIDOOM_Debug(char *fmt,...) +{ + static char last[512]=""; + static char this[512]=""; + static int rep=0; + int f; + va_list va; + + if (!trace_fp) + { + if (use_stderr) + trace_fp=stderr; + else + { + trace_fp=fopen("trace.out","w"); + setbuf(trace_fp,NULL); + } + } + + if (trace_fp) + { + va_start(va,fmt); + vsprintf(this,fmt,va); + va_end(va); + + if (strcmp(last,this)==0) + { + rep++; + if (rep==3) + fprintf(trace_fp,"DEBUG: *** Repeating...\n"); + } + else + { + if (rep) + { + if (rep>2) + fprintf(trace_fp,"DEBUG: *** Repeated %d times\n",rep); + else + for(f=0;f2) + fprintf(trace_fp,"*** Repeated %d times\n",rep); + else + for(f=0;f=0) + { + if (val&(1<(sizeof(s)-10)) + { + sprintf(s+i,"<...>"); + return(s); + } + + size--; + addr++; + } + + s[i]=0; + return(s); +} + + +/* END OF FILE */ -- cgit v1.2.3