avoid negative return value from Win32::GetTickCount()
[p5sagit/p5-mst-13.2.git] / ext / SDBM_File / SDBM_File.xs
CommitLineData
a0d0e21e 1#include "EXTERN.h"
2#include "perl.h"
3#include "XSUB.h"
4#include "sdbm/sdbm.h"
5
6typedef DBM* SDBM_File;
7#define sdbm_TIEHASH(dbtype,filename,flags,mode) sdbm_open(filename,flags,mode)
8#define sdbm_FETCH(db,key) sdbm_fetch(db,key)
9#define sdbm_STORE(db,key,value,flags) sdbm_store(db,key,value,flags)
10#define sdbm_DELETE(db,key) sdbm_delete(db,key)
f4b9d880 11#define sdbm_EXISTS(db,key) sdbm_exists(db,key)
a0d0e21e 12#define sdbm_FIRSTKEY(db) sdbm_firstkey(db)
13#define sdbm_NEXTKEY(db,key) sdbm_nextkey(db)
14
15
16MODULE = SDBM_File PACKAGE = SDBM_File PREFIX = sdbm_
17
18SDBM_File
19sdbm_TIEHASH(dbtype, filename, flags, mode)
20 char * dbtype
21 char * filename
22 int flags
23 int mode
24
25void
26sdbm_DESTROY(db)
27 SDBM_File db
28 CODE:
29 sdbm_close(db);
30
31datum
32sdbm_FETCH(db, key)
33 SDBM_File db
34 datum key
35
36int
37sdbm_STORE(db, key, value, flags = DBM_REPLACE)
38 SDBM_File db
39 datum key
40 datum value
41 int flags
42 CLEANUP:
43 if (RETVAL) {
44 if (RETVAL < 0 && errno == EPERM)
45 croak("No write permission to sdbm file");
748a9306 46 croak("sdbm store returned %d, errno %d, key \"%s\"",
a0d0e21e 47 RETVAL,errno,key.dptr);
48 sdbm_clearerr(db);
49 }
50
51int
52sdbm_DELETE(db, key)
53 SDBM_File db
54 datum key
55
f4b9d880 56int
57sdbm_EXISTS(db,key)
58 SDBM_File db
59 datum key
60
a0d0e21e 61datum
62sdbm_FIRSTKEY(db)
63 SDBM_File db
64
65datum
66sdbm_NEXTKEY(db, key)
67 SDBM_File db
68 datum key
69
70int
71sdbm_error(db)
72 SDBM_File db
73
74int
75sdbm_clearerr(db)
76 SDBM_File db
77