/* udb_misc.c - Misc support routines for unter style error management. */
/* $Id: udb_misc.c,v 1.13 2002/10/24 16:55:36 dpassmor Exp $ */
/*
* Stolen from mjr.
*
* Andrew Molitor, amolitor@eagle.wesleyan.edu
*/
#include "copyright.h"
#include "autoconf.h"
#include "config.h"
#include "alloc.h" /* required by mudconf */
#include "flags.h" /* required by mudconf */
#include "htab.h" /* required by mudconf */
#include "mudconf.h" /* required by code */
#include "db.h" /* required by externs */
#include "externs.h" /* required by code */
/*
* Log database errors
*/
void log_db_err(obj, attr, txt)
int obj, attr;
const char *txt;
{
if (!mudstate.standalone) {
STARTLOG(LOG_ALWAYS, "DBM", "ERROR")
log_printf("Could not %s object #%d", txt, obj);
if (attr != NOTHING) {
log_printf(" attr #%d", attr);
}
ENDLOG
} else {
fprintf(mainlog_fp, "Could not %s object #%d", txt, obj);
if (attr != NOTHING) {
fprintf(mainlog_fp, " attr #%d", attr);
}
fprintf(mainlog_fp, "\n");
}
}
/*
* print a series of warnings - do not exit
*/
/*
* VARARGS
*/
#if defined(__STDC__) && defined(STDC_HEADERS)
void logf(char *p,...)
#else
void logf(va_alist)
va_dcl
#endif
{
va_list ap;
#if defined(__STDC__) && defined(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 *) strerror(errno);
(void)fprintf(mainlog_fp, "%s", p);
p = va_arg(ap, char *);
}
va_end(ap);
}
/*
* print a series of warnings - exit
*/
/*
* VARARGS
*/
#if defined(__STDC__) && defined(STDC_HEADERS)
void fatal(char *p,...)
#else
void fatal(va_alist)
va_dcl
#endif
{
va_list ap;
#if defined(__STDC__) && defined(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 *) strerror(errno);
(void)fprintf(mainlog_fp, "%s", p);
p = va_arg(ap, char *);
}
va_end(ap);
exit(1);
}