* kdb_dbm.c, t_kdb.c: Add prototype for dbm_error and dbm_clearerr
authorTom Yu <tlyu@mit.edu>
Tue, 25 Jul 1995 18:42:08 +0000 (18:42 +0000)
committerTom Yu <tlyu@mit.edu>
Tue, 25 Jul 1995 18:42:08 +0000 (18:42 +0000)
in case they're not prototyped in the header files.

* configure.in: Add test for missing prototypes for dbm_error and
dbm_clearerr.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6322 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/kdb/ChangeLog
src/lib/kdb/configure.in
src/lib/kdb/kdb_dbm.c
src/lib/kdb/t_kdb.c

index 289c2d94fc1e9c472c96be906957871477cab392..fcebad85d74ccb86c2ad405be0eb8e46268d0128 100644 (file)
@@ -1,3 +1,11 @@
+Tue Jul 25 14:06:50 1995  Tom Yu  <tlyu@lothlorien.MIT.EDU>
+
+       * kdb_dbm.c, t_kdb.c: Add prototype for dbm_error and dbm_clearerr
+               in case they're not prototyped in the header files.
+
+       * configure.in: Add test for missing prototypes for dbm_error and
+               dbm_clearerr.
+
 Thu Jul 20 23:59:18 1995  Mark Eichin  <eichin@cygnus.com>
 
        * kdb_dbm.c (krb5_dbm_db_create): move dirname, pagname
index fce913aa1929320f3570cb5b1774cf20fa216448..4b45a6a1e3a490bfecf8ebd30877110b550c52c5 100644 (file)
@@ -18,6 +18,40 @@ else
        DBFLAGS=-DBERK_DB_DBM
 fi
 AC_SUBST(DBFLAGS)dnl
+AC_CHECK_LIB(ndbm,main)
+AC_CHECK_LIB(dbm,main)
+AC_MSG_CHECKING([for missing dbm_error prototype])
+if test "$ac_cv_func_dbm_open" = yes; then
+       AC_EGREP_HEADER([dbm_error], [ndbm.h],
+       AC_MSG_RESULT(no), AC_TRY_LINK(
+[#include <ndbm.h>
+int dbm_error();],
+[dbm_error();], AC_DEFINE([MISSING_ERROR_PROTO])
+AC_MSG_RESULT(yes), AC_MSG_RESULT(no)))
+else
+       AC_EGREP_HEADER([dbm_error], [ndbm.h],
+       AC_MSG_RESULT(no), AC_TRY_LINK(
+[#include <dbm.h>
+int dbm_error();],
+[dbm_error();], AC_DEFINE([MISSING_ERROR_PROTO])
+AC_MSG_RESULT(yes), AC_MSG_RESULT(no)))
+fi
+AC_MSG_CHECKING([for missing dbm_clearerr prototype])
+if test "$ac_cv_func_dbm_open" = yes; then
+       AC_EGREP_HEADER([dbm_error], [ndbm.h],
+       AC_MSG_RESULT(no), AC_TRY_LINK(
+[#include <ndbm.h>
+int dbm_clearerr();],
+[dbm_clearerr();], AC_DEFINE([MISSING_CLEARERR_PROTO])
+AC_MSG_RESULT(yes), AC_MSG_RESULT(no)))
+else
+       AC_EGREP_HEADER([dbm_error], [ndbm.h],
+       AC_MSG_RESULT(no), AC_TRY_LINK(
+[#include <dbm.h>
+int dbm_clearerr();],
+[dbm_clearerr();], AC_DEFINE([MISSING_CLEARERR_PROTO])
+AC_MSG_RESULT(yes), AC_MSG_RESULT(no)))
+fi
 dnl
 V5_USE_SHARED_LIB
 AC_CHECK_FUNCS(srand48 srand srandom umask)
index 4357c54ccf52c27aefce91ec0c54b53c11dacebd..88ebb55b0ed2ccd5f37f55bf762cdf7b0080fd3b 100644 (file)
@@ -155,6 +155,18 @@ static kdb5_dispatch_table kdb5_default_dispatch = {
     (int (*)()) NULL           /* Get DB data FD num   */
 };
 #else  /* BERK_DB_DBM */
+/*
+ * The following prototypes are necessary in case dbm_error and
+ * dbm_clearerr are in the library but not prototyped
+ * (e.g. NetBSD-1.0)
+ */
+#ifdef MISSING_ERROR_PROTO
+int dbm_error PROTOTYPE((DBM *));
+#endif
+#ifdef MISSING_CLEARERR_PROTO
+int dbm_clearerr PROTOTYPE((DBM *));
+#endif
+
 /*
  * This module contains all of the code which directly interfaces to
  * the underlying representation of the Kerberos database; this
index ae43bab8239ac6a73d1f0cb0776fbe363b7c46e1..1010b65dd34caa03949429266563feb47f2ed28d 100644 (file)
@@ -106,6 +106,18 @@ static kdb5_dispatch_table berkeley_dispatch = {
     (int (*)()) NULL           /* Get Database FD num  */
 };
 
+/*
+ * The following prototypes are necessary in case dbm_error and
+ * dbm_clearerr are in the library but not prototyped
+ * (e.g. NetBSD-1.0)
+ */
+#ifdef MISSING_ERROR_PROTO
+int dbm_error PROTOTYPE((DBM *));
+#endif
+#ifdef MISSING_CLEARERR_PROTO
+int dbm_clearerr PROTOTYPE((DBM *));
+#endif
+
 static kdb5_dispatch_table dbm_dispatch = {
     "Stock [N]DBM Database",
     ".dir",                    /* Index file name ext  */