FUNCTION: int gdbm_setopt ( GDBM_FILE dbf, int option, int* value, int size )
FUNCTION: int gdbm_fdesc ( GDBM_FILE dbf )
+! Removed in gdbm 1.14
C-GLOBAL: int gdbm_errno
+! Added in gdbm 1.14
+FUNCTION: int *gdbm_errno_location ( )
FUNCTION: c-string gdbm_strerror ( int errno )
! Copyright (C) 2010 Dmitry Shubin.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.c-types alien.data alien.destructors
-alien.enums alien.syntax classes.struct combinators destructors
-fry gdbm.ffi io.backend kernel libc locals math namespaces
+alien.enums alien.syntax classes.struct combinators continuations
+destructors fry gdbm.ffi io.backend kernel libc locals math namespaces
sequences serialize strings ;
IN: gdbm
gdbm-option-already-set
gdbm-illegal-option ;
-
<PRIVATE
-: gdbm-throw ( -- * ) gdbm_errno gdbm-error number>enum throw ;
+: gdbm-errno ( -- n )
+ [ gdbm_errno ] [ drop gdbm_errno_location int deref ] recover ;
+
+: gdbm-throw ( -- * ) gdbm-errno gdbm-error number>enum throw ;
: check-error ( ret -- ) 0 = [ gdbm-throw ] unless ;