#include "XSUB.h"
#ifdef NULL
-#undef NULL
+#undef NULL /* XXX Why? */
#endif
#ifdef I_DBM
# include <dbm.h>
MODULE = ODBM_File PACKAGE = ODBM_File PREFIX = odbm_
+#ifndef NULL
+# define NULL 0
+#endif
+
ODBM_File
odbm_TIEHASH(dbtype, filename, flags, mode)
char * dbtype
int mode
CODE:
{
- char tmpbuf[1025];
+ char *tmpbuf;
if (dbmrefcnt++)
croak("Old dbm can only open one database");
+ New(0, tmpbuf, strlen(filename) + 5, char);
+ SAVEFREEPV(tmpbuf);
sprintf(tmpbuf,"%s.dir",filename);
if (stat(tmpbuf, &statbuf) < 0) {
if (flags & O_CREAT) {
}
RETVAL = (void*)(dbminit(filename) >= 0 ? &dbmrefcnt : 0);
ST(0) = sv_mortalcopy(&sv_undef);
- sv_setptrobj(ST(0), RETVAL, "ODBM_File");
+ sv_setptrobj(ST(0), RETVAL, dbtype);
}
void