Commit | Line | Data |
a0d0e21e |
1 | #include "EXTERN.h" |
2 | #include "perl.h" |
3 | #include "XSUB.h" |
4 | #include <ndbm.h> |
5 | |
6 | typedef DBM* NDBM_File; |
7 | #define dbm_TIEHASH(dbtype,filename,flags,mode) dbm_open(filename,flags,mode) |
8 | #define dbm_FETCH(db,key) dbm_fetch(db,key) |
9 | #define dbm_STORE(db,key,value,flags) dbm_store(db,key,value,flags) |
10 | #define dbm_DELETE(db,key) dbm_delete(db,key) |
11 | #define dbm_FIRSTKEY(db) dbm_firstkey(db) |
12 | #define dbm_NEXTKEY(db,key) dbm_nextkey(db) |
13 | |
14 | MODULE = NDBM_File PACKAGE = NDBM_File PREFIX = dbm_ |
15 | |
16 | NDBM_File |
17 | dbm_TIEHASH(dbtype, filename, flags, mode) |
18 | char * dbtype |
19 | char * filename |
20 | int flags |
21 | int mode |
22 | |
23 | void |
24 | dbm_DESTROY(db) |
25 | NDBM_File db |
26 | CODE: |
27 | dbm_close(db); |
28 | |
29 | datum |
30 | dbm_FETCH(db, key) |
31 | NDBM_File db |
32 | datum key |
33 | |
34 | int |
35 | dbm_STORE(db, key, value, flags = DBM_REPLACE) |
36 | NDBM_File db |
37 | datum key |
38 | datum value |
39 | int flags |
40 | CLEANUP: |
41 | if (RETVAL) { |
42 | if (RETVAL < 0 && errno == EPERM) |
43 | croak("No write permission to ndbm file"); |
748a9306 |
44 | croak("ndbm store returned %d, errno %d, key \"%s\"", |
a0d0e21e |
45 | RETVAL,errno,key.dptr); |
46 | dbm_clearerr(db); |
47 | } |
48 | |
49 | int |
50 | dbm_DELETE(db, key) |
51 | NDBM_File db |
52 | datum key |
53 | |
54 | datum |
55 | dbm_FIRSTKEY(db) |
56 | NDBM_File db |
57 | |
58 | datum |
59 | dbm_NEXTKEY(db, key) |
60 | NDBM_File db |
61 | datum key |
62 | |
63 | int |
64 | dbm_error(db) |
65 | NDBM_File db |
66 | |
67 | void |
68 | dbm_clearerr(db) |
69 | NDBM_File db |
70 | |