/*
* 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);
}