/* * Copyright (C) 1994-2005 The Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifdef MY_NDBM #define DBLKSIZ 4096 typedef struct { List *dbm_list; /* cached database */ Node *dbm_next; /* next key to return for nextkey() */ /* Name of the file to write to if modified is set. malloc'd. */ char *name; /* Nonzero if the database has been modified and dbm_close needs to write it out to disk. */ int modified; } DBM; typedef struct { char *dptr; int dsize; } datum; /* * So as not to conflict with other dbm_open, etc., routines that may * be included by someone's libc, all of my emulation routines are prefixed * by "my" and we define the "standard" ones to be "my" ones here. */ #define dbm_open mydbm_open #define dbm_close mydbm_close #define dbm_fetch mydbm_fetch #define dbm_firstkey mydbm_firstkey #define dbm_nextkey mydbm_nextkey #define dbm_store mydbm_store #define DBM_INSERT 0 #define DBM_REPLACE 1 DBM *mydbm_open (char *file, int flags, int mode); void mydbm_close (DBM * db); datum mydbm_fetch (DBM * db, datum key); datum mydbm_firstkey (DBM * db); datum mydbm_nextkey (DBM * db); extern int mydbm_store (DBM *, datum, datum, int); #endif /* MY_NDBM */