]> gitweb.factorcode.org Git - factor.git/commitdiff
gdbm: move enums to main vocab
authorDmitry Shubin <dmitry.sh@gmail.com>
Sun, 27 Jun 2010 23:50:06 +0000 (03:50 +0400)
committerDmitry Shubin <dmitry.sh@gmail.com>
Sun, 27 Jun 2010 23:50:06 +0000 (03:50 +0400)
extra/gdbm/ffi/ffi.factor
extra/gdbm/gdbm-tests.factor
extra/gdbm/gdbm.factor

index 307f749cb4a466e4780d8bae4cb4f5fc24811ea9..f2c866769e5d4c3ec6875c73b6a5034332a1ab0e 100644 (file)
@@ -14,8 +14,6 @@ LIBRARY: libgdbm
 
 C-GLOBAL: c-string gdbm_version
 
-ENUM: gdbm-role reader writer wrcreat newdb ;
-
 CONSTANT: GDBM_SYNC   HEX: 20
 CONSTANT: GDBM_NOLOCK HEX: 40
 
@@ -46,29 +44,6 @@ FUNCTION: int gdbm_exists ( GDBM_FILE dbf, datum key ) ;
 FUNCTION: int gdbm_setopt ( GDBM_FILE dbf, int option, int* value, int size ) ;
 FUNCTION: int gdbm_fdesc ( GDBM_FILE dbf ) ;
 
-ENUM: gdbm-error
-    gdbm-no-error
-    gdbm-malloc-error
-    gdbm-block-size-error
-    gdbm-file-open-error
-    gdbm-file-write-error
-    gdbm-file-seek-error
-    gdbm-file-read-error
-    gdbm-bad-magic-number
-    gdbm-empty-database
-    gdbm-cant-be-reader
-    gdbm-cant-be-writer
-    gdbm-reader-cant-delete
-    gdbm-reader-cant-store
-    gdbm-reader-cant-reorganize
-    gdbm-unknown-update
-    gdbm-item-not-found
-    gdbm-reorganize-failed
-    gdbm-cannot-replace
-    gdbm-illegal-data
-    gdbm-option-already-set
-    gdbm-illegal-option ;
-
-C-GLOBAL: gdbm-error gdbm_errno
+C-GLOBAL: int gdbm_errno
 
-FUNCTION: c-string gdbm_strerror ( gdbm-error errno ) ;
+FUNCTION: c-string gdbm_strerror ( int errno ) ;
index b720dfc0f7ce731cba0f3b680c49efcc87914c0c..9d233c89493bdd9833eb4e0359329c0c35896562 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2010 Dmitry Shubin.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays continuations gdbm gdbm.ffi io.directories
+USING: accessors arrays continuations gdbm io.directories
 io.files.temp kernel sequences sets tools.test ;
 IN: gdbm.tests
 
index 6223a6b79e4d6d34c6339000731aeba20c366fc3..54980cb309b4f49a10d72d3c0143ea6b391b162a 100644 (file)
@@ -1,10 +1,13 @@
 ! 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 classes.struct combinators destructors gdbm.ffi io.backend
-kernel libc locals math namespaces sequences serialize strings ;
+alien.enums alien.syntax classes.struct combinators destructors
+gdbm.ffi io.backend kernel libc locals math namespaces sequences
+serialize strings ;
 IN: gdbm
 
+ENUM: gdbm-role reader writer wrcreat newdb ;
+
 TUPLE: gdbm
     { name string }
     { block-size integer }
@@ -15,10 +18,33 @@ TUPLE: gdbm
 
 : <gdbm> ( -- gdbm ) gdbm new ;
 
+ENUM: gdbm-error
+    gdbm-no-error
+    gdbm-malloc-error
+    gdbm-block-size-error
+    gdbm-file-open-error
+    gdbm-file-write-error
+    gdbm-file-seek-error
+    gdbm-file-read-error
+    gdbm-bad-magic-number
+    gdbm-empty-database
+    gdbm-cant-be-reader
+    gdbm-cant-be-writer
+    gdbm-reader-cant-delete
+    gdbm-reader-cant-store
+    gdbm-reader-cant-reorganize
+    gdbm-unknown-update
+    gdbm-item-not-found
+    gdbm-reorganize-failed
+    gdbm-cannot-replace
+    gdbm-illegal-data
+    gdbm-option-already-set
+    gdbm-illegal-option ;
+
 
 <PRIVATE
 
-: gdbm-throw ( -- * ) gdbm_errno throw ;
+: gdbm-throw ( -- * ) gdbm_errno gdbm-error number>enum throw ;
 
 : check-error ( ret -- ) 0 = [ gdbm-throw ] unless ;
 
@@ -69,7 +95,8 @@ PRIVATE>
 
 : gdbm-info ( -- str ) gdbm_version ;
 
-: gdbm-error-message ( error -- msg ) gdbm_strerror ;
+: gdbm-error-message ( error -- msg )
+    enum>number gdbm_strerror ;
 
 : replace ( key content -- ) GDBM_REPLACE gdbm-store ;
 : insert ( key content -- ) GDBM_INSERT gdbm-store ;