#include <sys/types.h> #include <stdio.h> #include "btconf.h" #include "btree.h" /* (C) Copyright, 1988, 1989 Marcus J. Ranum All rights reserved This software, its documentation, and supporting files are copyrighted material and may only be distributed in accordance with the terms listed in the COPYRIGHT document. $Log: bterrors.c,v $ * Revision 1.1 90/06/08 16:11:44 mjr * * * Revision 1.1 90/06/06 15:03:42 mjr * * * Revision 1.1 90/06/03 16:23:08 mjr * * * Revision 1.1 90/05/18 23:20:35 mjr * * * Revision 1.1 90/05/15 13:18:28 mjr * Initial revision * * Revision 1.1 90/05/05 15:04:33 mjr * Initial revision * * Revision 1.1 90/03/23 15:03:41 mjr * Initial revision * */ #ifndef lint static char *rcsid = "$Header: /atreus/mjr/hacks/mud/btlib/RCS/bterrors.c,v 1.1 90/06/08 16:11:44 mjr Exp $"; #endif char *bt_errs[] = { /* BT_NOERROR */ "no btree error", /* BT_KTOBIG */ "btree key too big", /* BT_ZEROKEY */ "zero sized btree key", /* BT_DUPKEY */ "duplicate btree key", /* BT_PTRINVAL */ "invalid btree pointer", /* BT_NOBUFFERS */ "insufficient btree buffers", /* BT_LTOOBIG */ "btree label too big", /* BT_BTOOSMALL */ "btree buffer too small", /* BT_BADPAGE */ "btree page is corrupt", /* BT_PAGESRCH */ "cannot search btree page", /* BT_BADUSERARG */ "invalid btree argument", 0}; /* system error # */ extern int errno; void bt_perror(b,s) BT_INDEX *b; char *s; { static char *cmesg = "cannot open"; static char *fmt1 = "%s\n"; static char *fmt2 = "%s: %s\n"; if(b == NULL) { if(s == NULL || *s == '\0') (void)fprintf(stderr,fmt1,cmesg); else (void)fprintf(stderr,fmt2,s,cmesg); return; } if(bt_errno(b) == BT_NOERROR && errno != 0) { perror(s); } else { if(s == NULL || *s == '\0') (void)fprintf(stderr,fmt1,bt_errs[bt_errno(b)]); else (void)fprintf(stderr,fmt2,s,bt_errs[bt_errno(b)]); } }