summaryrefslogtreecommitdiff
path: root/ext/dba/dba_dbm.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-02-01 18:59:59 +0000
committerMarcus Boerger <helly@php.net>2003-02-01 18:59:59 +0000
commit0319e6377588c9bd8d182589c3d8bec4bec8fdef (patch)
tree981edce762f2aff5768503c4c68c317c3fe4bd21 /ext/dba/dba_dbm.c
parentc4eecf91993dcd431eee5e93e409ce3b1e179192 (diff)
downloadphp-git-0319e6377588c9bd8d182589c3d8bec4bec8fdef.tar.gz
- unify configure mechanisms (include file handling)
- fix dbm - allow dbm to be based on gdbm
Diffstat (limited to 'ext/dba/dba_dbm.c')
-rw-r--r--ext/dba/dba_dbm.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/ext/dba/dba_dbm.c b/ext/dba/dba_dbm.c
index f50d58a03f..06010af589 100644
--- a/ext/dba/dba_dbm.c
+++ b/ext/dba/dba_dbm.c
@@ -27,7 +27,12 @@
#if DBA_DBM
#include "php_dbm.h"
-#include <dbm.h>
+#ifdef DBM_INCLUDE_FILE
+#include DBM_INCLUDE_FILE
+#endif
+#if DBA_GDBM
+#include "php_gdbm.h"
+#endif
#include <unistd.h>
#include <sys/types.h>
@@ -108,6 +113,14 @@ DBA_UPDATE_FUNC(dbm)
datum gval;
DBM_GKEY;
+
+ if (mode == 1) { /* insert */
+ gval = fetch(gkey);
+ if(gval.dptr) {
+ return FAILURE;
+ }
+ }
+
gval.dptr = (char *) val;
gval.dsize = vallen;
@@ -179,7 +192,13 @@ DBA_SYNC_FUNC(dbm)
DBA_INFO_FUNC(dbm)
{
- return estrdup("DBM");
+#if DBA_GDBM
+ if (!strcmp(DBM_VERSION, "GDBM"))
+ {
+ return dba_info_gdbm(hnd, info TSRMLS_CC);
+ }
+#endif
+ return estrdup(DBM_VERSION);
}
#endif