tinymush-3.0b21/game/bin/
tinymush-3.0b21/game/data/
tinymush-3.0b21/src/tools/
/*
 * Misc support routines for unter style error management.
 * Stolen from mjr.
 * 
 * Modded to scribble on stderr, for now.
 * 
 * Andrew Molitor, amolitor@eagle.wesleyan.edu
 * 
 * $Id: udb_misc.c,v 1.4 1999/10/13 06:19:43 cvs Exp $
 */

#include "autoconf.h"
#include "udb_defs.h"
#include "externs.h"

/*
 * Log database errors 
 */

void log_db_err(obj, attr, txt)
int obj, attr;
const char *txt;
{
	STARTLOG(LOG_ALWAYS, "DBM", "ERROR")
		log_text((char *)"Could not ");
	log_text((char *)txt);
	log_text((char *)" object #");
	log_number(obj);
	if (attr != NOTHING) {
		log_text((char *)" attr #");
		log_number(attr);
	}
	ENDLOG
}

/*
 * print a series of warnings - do not exit
 */
/*
 * VARARGS 
 */
#ifdef STDC_HEADERS
void logf(char *p,...)
#else
void logf(va_alist)
va_dcl

#endif

{
	va_list ap;

#ifdef STDC_HEADERS
	va_start(ap, p);
#else
	char *p;

	va_start(ap);
	p = va_arg(ap, char *);

#endif
	while (1) {
		if (p == (char *)0)
			break;

		if (p == (char *)-1)
			p = (char *) sys_errlist[errno];

		(void)fprintf(stderr, "%s", p);
		p = va_arg(ap, char *);
	}
	va_end(ap);
	(void)fflush(stderr);
}

/*
 * print a series of warnings - exit
 */
/*
 * VARARGS 
 */
#ifdef STDC_HEADERS
void fatal(char *p,...)
#else
void fatal(va_alist)
va_dcl

#endif
{
	va_list ap;

#ifdef STDC_HEADERS
	va_start(ap, p);
#else
	char *p;

	va_start(ap);
	p = va_arg(ap, char *);

#endif
	while (1) {
		if (p == (char *)0)
			break;

		if (p == (char *)-1)
			p = (char *) sys_errlist[errno];

		(void)fprintf(stderr, "%s", p);
		p = va_arg(ap, char *);
	}
	va_end(ap);
	(void)fflush(stderr);
	exit(1);
}