diff options
author | Steve Peters <steve@fisharerojo.org> | 2005-10-31 23:46:01 +0000 |
---|---|---|
committer | Steve Peters <steve@fisharerojo.org> | 2005-10-31 23:46:01 +0000 |
commit | d6067fe31ede7f6e23962055018443b632541189 (patch) | |
tree | 7bee46f36d69aa5d5cfd86a7b20e0ed54cd4ecef /ext/DB_File/DB_File.xs | |
parent | e96b369dc61077fe31b75895167f55dbce4d7519 (diff) | |
download | perl-d6067fe31ede7f6e23962055018443b632541189.tar.gz |
Upgrade to DB_File 1.813.
p4raw-id: //depot/perl@25942
Diffstat (limited to 'ext/DB_File/DB_File.xs')
-rw-r--r-- | ext/DB_File/DB_File.xs | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/ext/DB_File/DB_File.xs b/ext/DB_File/DB_File.xs index 0e6fe2abba..5b36ae61ea 100644 --- a/ext/DB_File/DB_File.xs +++ b/ext/DB_File/DB_File.xs @@ -3,8 +3,8 @@ DB_File.xs -- Perl 5 interface to Berkeley DB written by Paul Marquess <pmqs@cpan.org> - last modified 12th March 2005 - version 1.812 + last modified 31st October 2005 + version 1.813 All comments/suggestions/problems are welcome @@ -112,6 +112,7 @@ 1.810 - no change 1.811 - no change 1.812 - no change + 1.813 - no change */ @@ -193,10 +194,22 @@ # define AT_LEAST_DB_3_2 #endif +#if DB_VERSION_MAJOR > 3 || (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR >= 3) +# define AT_LEAST_DB_3_3 +#endif + #if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) # define AT_LEAST_DB_4_1 #endif +#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3) +# define AT_LEAST_DB_4_3 +#endif + +#ifdef AT_LEAST_DB_3_3 +# define WANT_ERROR +#endif + /* map version 2 features & constants onto their version 1 equivalent */ #ifdef DB_Prefix_t @@ -770,14 +783,13 @@ HASH_CB_SIZE_TYPE size ; return (retval) ; } -#if 0 +#ifdef WANT_ERROR + static void -#ifdef CAN_PROTOTYPE -db_errcall_cb(const char * db_errpfx, char * buffer) +#ifdef AT_LEAST_DB_4_3 +db_errcall_cb(const DB_ENV* dbenv, const char * db_errpfx, const char * buffer) #else -db_errcall_cb(db_errpfx, buffer) -const char * db_errpfx; -char * buffer; +db_errcall_cb(const char * db_errpfx, char * buffer) #endif { #ifdef dTHX @@ -1237,6 +1249,9 @@ SV * sv ; } dbp = RETVAL->dbp ; +#ifdef WANT_ERROR + RETVAL->dbp->set_errcall(RETVAL->dbp, db_errcall_cb) ; +#endif if (sv) { if (! SvROK(sv) ) @@ -1431,6 +1446,12 @@ SV * sv ; Flags |= DB_TRUNCATE ; #endif +#ifdef AT_LEAST_DB_4_4 + /* need this for recno */ + if ((flags & O_TRUNC) == O_TRUNC) + Flags |= DB_CREATE ; +#endif + #ifdef AT_LEAST_DB_4_1 status = (RETVAL->dbp->open)(RETVAL->dbp, NULL, name, NULL, RETVAL->type, Flags, mode) ; @@ -1441,7 +1462,6 @@ SV * sv ; /* printf("open returned %d %s\n", status, db_strerror(status)) ; */ if (status == 0) { - /* RETVAL->dbp->set_errcall(RETVAL->dbp, db_errcall_cb) ;*/ status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &RETVAL->cursor, 0) ; @@ -1471,7 +1491,9 @@ BOOT: #ifdef dTHX dTHX; #endif - /* SV * sv_err = perl_get_sv(ERR_BUFF, GV_ADD|GV_ADDMULTI) ; */ +#ifdef WANT_ERROR + SV * sv_err = perl_get_sv(ERR_BUFF, GV_ADD|GV_ADDMULTI) ; +#endif MY_CXT_INIT; __getBerkeleyDBInfo() ; |