aboutsummaryrefslogtreecommitdiff
path: root/src/gdbmerrno.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2016-07-09 11:40:19 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2016-07-09 12:11:20 +0300
commite8cad816f36b1cad11bb67c96f0ce878cf30844e (patch)
treec971d9de6369f9e340a3764d848c24d4a2ce96e8 /src/gdbmerrno.c
parent0eafbb93c82a489204f54259593f2aaeb9cdbfc4 (diff)
downloadgdbm-e8cad816f36b1cad11bb67c96f0ce878cf30844e.tar.gz
gdbm-e8cad816f36b1cad11bb67c96f0ce878cf30844e.tar.bz2
Don't bail out on fatal errors, unless the user defines the fatal_err function
* src/bucket.c (_gdbm_get_bucket) (_gdbm_split_bucket, _gdbm_write_bucket): Return error code. All callers updated. * src/proto.h (_gdbm_get_bucket) (_gdbm_split_bucket, _gdbm_write_bucket): Update declarations * src/falloc.c (push_avail_block) (pop_avail_block): Return error code. All callers updated. * src/update.c (_gdbm_fatal): Exit only if the user defined fatal_err function. * src/gdbmerrno.c (gdbm_needs_recovery): New function. * src/gdbm.h.in (gdbm_needs_recovery): New proto. * compat/dbminit.c: Set gdbm_errno on fatal errors. * compat/dbmopen.c: Likewise. * src/findkey.c: Likewise. * src/gdbm_load.c: Likewise. * src/gdbmcount.c: Likewise. * src/gdbmdefs.h: Likewise. * src/gdbmdelete.c: Likewise. * src/gdbmdump.c: Likewise. * src/gdbmexists.c: Likewise. * src/gdbmexp.c: Likewise. * src/gdbmfetch.c: Likewise. * src/gdbmimp.c: Likewise. * src/gdbmload.c: Likewise. * src/gdbmopen.c: Likewise. * src/gdbmreorg.c: Likewise. * src/gdbmseq.c: Likewise. * src/gdbmsetopt.c: Likewise. * src/gdbmstore.c: Likewise. * src/gdbmsync.c: Likewise. * src/mmap.c: Likewise.
Diffstat (limited to 'src/gdbmerrno.c')
-rw-r--r--src/gdbmerrno.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gdbmerrno.c b/src/gdbmerrno.c
index 4eeff8c..8882489 100644
--- a/src/gdbmerrno.c
+++ b/src/gdbmerrno.c
@@ -50,6 +50,14 @@ gdbm_last_errno (GDBM_FILE dbf)
return dbf->last_error;
}
+int
+gdbm_needs_recovery (GDBM_FILE dbf)
+{
+ if (!dbf)
+ return 0;
+ return dbf->need_recovery;
+}
+
/* Clear error state for the database DBF. */
void
gdbm_clear_error (GDBM_FILE dbf)

Return to:

Send suggestions and report system problems to the System administrator.