develooper Front page | perl.perl5.porters | Postings from December 2000

[ID 20001213.003] DB3's dbm/ndbm emulation support

Thread Next
From:
Stanislav Brabec
Date:
December 13, 2000 15:10
Subject:
[ID 20001213.003] DB3's dbm/ndbm emulation support
Message ID:
20001213232718.A30706@utx.cz
Hallo Perl developers,

I am adding small patch fixing some problems of ndbm/odbm emulation in
DB3:

- Some ndbm/odbm defines are disabled by default. On systems, where
dbm.h and ndbm.h are simple symlinks to db.h, emualtion needs set-u
define.

- ACTION is defined in both DB and PERL (unfortunatelly in different
meaning). Carefull permutation of includes can simply workaround the
problem.

The patch was not tested with real historic implementations of ndbm/dbm,
but I guess it should work.

Notes:

lib/ndbm.............ok
lib/odbm.............FAILED at test 9
    Failed 1/64 tests, 98.44% okay

DB3 is, by default installed without links to historical names. This
patch doesn't solve this - simply if these links are not created, perl
builds without odbm/ndbm emulation. But it's problem of DB3's packager,
not Perl.

ln -s libdb-3.so /usr/lib/libdb.so
ln -s libdb-3.so /usr/lib/libdbm.so
ln -s libdb-3.so /usr/lib/libndbm.so
ln -s libdb-3.so /usr/lib/libdb1.so
ln -s db.h /usr/include/ndbm.h
ln -s db.h /usr/include/dbm.h

-- 
Stanislav Brabec

--- perl-5.6.0/ext/NDBM_File/NDBM_File.xs.orig	Tue Feb 15 06:42:40 2000
+++ perl-5.6.0/ext/NDBM_File/NDBM_File.xs	Wed Dec 13 19:45:28 2000
@@ -1,7 +1,9 @@
+#define DB_DBM_HSEARCH 1
+#include <ndbm.h>
+
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
-#include <ndbm.h>
 
 typedef struct {
 	DBM * 	dbp ;
--- perl-5.6.0/ext/ODBM_File/ODBM_File.xs.orig	Wed Feb 16 07:12:17 2000
+++ perl-5.6.0/ext/ODBM_File/ODBM_File.xs	Wed Dec 13 20:33:05 2000
@@ -1,7 +1,7 @@
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
+#include "config.h"
+#undef VOIDUSED
 
+#define DB_DBM_HSEARCH 1
 #ifdef I_DBM
 #  include <dbm.h>
 #else
@@ -10,6 +10,10 @@
 #  endif
 #endif
 
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
 #ifdef DBM_BUG_DUPLICATE_FREE 
 /*
  * DBM on at least Ultrix and HPUX call dbmclose() from dbminit(),


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About