avoid negative return value from Win32::GetTickCount()
[p5sagit/p5-mst-13.2.git] / ext / NDBM_File / NDBM_File.xs
CommitLineData
a0d0e21e 1#include "EXTERN.h"
2#include "perl.h"
3#include "XSUB.h"
4#include <ndbm.h>
5
6typedef 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
14MODULE = NDBM_File PACKAGE = NDBM_File PREFIX = dbm_
15
16NDBM_File
17dbm_TIEHASH(dbtype, filename, flags, mode)
18 char * dbtype
19 char * filename
20 int flags
21 int mode
22
23void
24dbm_DESTROY(db)
25 NDBM_File db
26 CODE:
27 dbm_close(db);
28
29datum
30dbm_FETCH(db, key)
31 NDBM_File db
32 datum key
33
34int
35dbm_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
49int
50dbm_DELETE(db, key)
51 NDBM_File db
52 datum key
53
54datum
55dbm_FIRSTKEY(db)
56 NDBM_File db
57
58datum
59dbm_NEXTKEY(db, key)
60 NDBM_File db
61 datum key
62
63int
64dbm_error(db)
65 NDBM_File db
66
67void
68dbm_clearerr(db)
69 NDBM_File db
70