extern int sdbm_store proto((DBM *, datum, datum, int));
extern datum sdbm_firstkey proto((DBM *));
extern datum sdbm_nextkey proto((DBM *));
+extern int sdbm_exists proto((DBM *, datum));
/*
* other
#define dbm_clearerr sdbm_clearerr
#endif
-/* Most of the following is stolen from perl.h. */
+/* Most of the following is stolen from perl.h. We don't include
+ perl.h here because we just want the portability parts of perl.h,
+ not everything else.
+*/
#ifndef H_PERL /* Include guard */
+#include "embed.h" /* Follow all the global renamings. */
/*
* The following contortions are brought to you on behalf of all the
# include <unixio.h>
#endif
-#if !defined(MSDOS) && !defined(WIN32) && !defined(VMS)
-# ifdef PARAM_NEEDS_TYPES
-# include <sys/types.h>
+#ifdef I_SYS_PARAM
+# if !defined(MSDOS) && !defined(WIN32) && !defined(VMS)
+# ifdef PARAM_NEEDS_TYPES
+# include <sys/types.h>
+# endif
+# include <sys/param.h>
# endif
-# include <sys/param.h>
#endif
#ifndef _TYPES_ /* If types.h defines this it's easy. */
/* This comes after <stdlib.h> so we don't try to change the standard
* library prototypes; we'll use our own instead. */
-#if defined(MYMALLOC) && (defined(HIDEMYMALLOC) || defined(EMBEDMYMALLOC))
-
-# ifdef HIDEMYMALLOC
-# define malloc Mymalloc
-# define calloc Mycalloc
-# define realloc Myremalloc
-# define free Myfree
-# endif
-# ifdef EMBEDMYMALLOC
-# define malloc Perl_malloc
-# define calloc Perl_calloc
-# define realloc Perl_realloc
-# define free Perl_free
-# endif
-
- Malloc_t malloc proto((MEM_SIZE nbytes));
- Malloc_t calloc proto((MEM_SIZE elements, MEM_SIZE size));
- Malloc_t realloc proto((Malloc_t where, MEM_SIZE nbytes));
- Free_t free proto((Malloc_t where));
+#if defined(MYMALLOC) && !defined(PERL_POLLUTE_MALLOC)
+# define malloc Perl_malloc
+# define calloc Perl_calloc
+# define realloc Perl_realloc
+# define free Perl_mfree
-#endif /* MYMALLOC && (HIDEMYMALLOC || EMBEDMYMALLOC) */
+Malloc_t Perl_malloc proto((MEM_SIZE nbytes));
+Malloc_t Perl_calloc proto((MEM_SIZE elements, MEM_SIZE size));
+Malloc_t Perl_realloc proto((Malloc_t where, MEM_SIZE nbytes));
+Free_t Perl_mfree proto((Malloc_t where));
+#endif /* MYMALLOC */
#ifdef I_STRING
-#include <string.h>
+# ifndef __ultrix__
+# include <string.h>
+# endif
#else
-#include <strings.h>
+# include <strings.h>
#endif
#ifdef I_MEMORY
# endif
# endif
# ifdef BUGGY_MSC
- # pragma function(memcmp)
+# pragma function(memcmp)
# endif
#else
# ifndef memcmp