debug.c
Author: cmaier@cmassoc.net

    /*====================================================================*
     *
     *   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

[PREV] [HOME] [NEXT]