/*====================================================================*
 *
 *   signed extra (signed status, errno_t number, int argc, char const * arg []);
 *
 *   error.h
 *
 *   print error message plus excess argments on stdout;
 *
 *   Motley Tools by Charles Maier <cmaier@cmassoc.net>;
 *   Copyright (c) 2001-2006 by Charles Maier Associates;
 *   Licensed under the Internet Software Consortium License;
 *
 *--------------------------------------------------------------------*/

#ifndef EXTRA_SOURCE
#define EXTRA_SOURCE

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>

#include "../tools/types.h"
#include "../tools/error.h"

signed extra (signed status, errno_t number, int argc, char const * argv []) 

{ 
	extern char const * program_name; 
	if ((program_name) && (* program_name)) 
	{ 
		fprintf (stderr, "%s: ", program_name); 
	} 
	if (number) 
	{ 
		fprintf (stderr, "%s: ", strerror (number)); 
	} 
	fprintf (stderr, "Excess data: "); 
	while ((argc) && (* argv)) 
	{ 
		fprintf (stderr, "%s ", * argv); 
		argv++; 
		argc--; 
	} 
	fprintf (stderr, "\n"); 
	fflush (stderr); 
	if (status) 
	{ 
		exit (status); 
	} 
	return (- 1); 
} 

#endif