/*====================================================================* * * signed debug (signed status, char const * string, char const * format, ...); * * error.h * * variation of the GNU error() function that accepts a message in * place of an error code and always returns -1; * * Motley Tools by Charles Maier <cmaier@cmassoc.net>; * Copyright (c) 2001-2006 by Charles Maier Associates; * Licensed under the Internet Software Consortium License; * *--------------------------------------------------------------------*/ #ifndef DEBUG_SOURCE #define DEBUG_SOURCE #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include "../tools/types.h" #include "../tools/error.h" #ifdef __GNUC__ __attribute__ ((format (printf, 3, 4))) #endif signed debug (signed status, char const * string, char const * format, ...) { extern char const * program_name; if ((program_name) && (* program_name)) { fprintf (stderr, "%s: ", program_name); } if ((string) && (* string)) { fprintf (stderr, "%s: ", string); } if ((format) && (*format)) { va_list arglist; va_start (arglist, format); vfprintf (stderr, format, arglist); va_end (arglist); } fprintf (stderr, "\n"); fflush (stderr); if (status) { exit (status); } return (-1); } #endif