1: /*
   2:  * Copyright (c) 1980 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  */
   6: 
   7: #ifndef lint
   8: static char sccsid[] = "@(#)dbm.c	5.3 (Berkeley) 85/08/15";
   9: #endif not lint
  10: 
  11: #include    "dbm.h"
  12: 
  13: #define NODB    ((DBM *)0)
  14: 
  15: static DBM *cur_db = NODB;
  16: 
  17: static char no_db[] = "dbm: no open database\n";
  18: 
  19: dbminit(file)
  20:     char *file;
  21: {
  22:     if (cur_db != NODB)
  23:         dbm_close(cur_db);
  24: 
  25:     cur_db = dbm_open(file, 2, 0);
  26:     if (cur_db == NODB) {
  27:         cur_db = dbm_open(file, 0, 0);
  28:         if (cur_db == NODB)
  29:             return (-1);
  30:     }
  31:     return (0);
  32: }
  33: 
  34: long
  35: forder(key)
  36: datum key;
  37: {
  38:     if (cur_db == NODB) {
  39:         printf(no_db);
  40:         return (0L);
  41:     }
  42:     return (dbm_forder(cur_db, key));
  43: }
  44: 
  45: datum
  46: fetch(key)
  47: datum key;
  48: {
  49:     datum item;
  50: 
  51:     if (cur_db == NODB) {
  52:         printf(no_db);
  53:         item.dptr = 0;
  54:         return (item);
  55:     }
  56:     return (dbm_fetch(cur_db, key));
  57: }
  58: 
  59: delete(key)
  60: datum key;
  61: {
  62:     if (cur_db == NODB) {
  63:         printf(no_db);
  64:         return (-1);
  65:     }
  66:     if (dbm_rdonly(cur_db))
  67:         return (-1);
  68:     return (dbm_delete(cur_db, key));
  69: }
  70: 
  71: store(key, dat)
  72: datum key, dat;
  73: {
  74:     if (cur_db == NODB) {
  75:         printf(no_db);
  76:         return (-1);
  77:     }
  78:     if (dbm_rdonly(cur_db))
  79:         return (-1);
  80: 
  81:     return (dbm_store(cur_db, key, dat, DBM_REPLACE));
  82: }
  83: 
  84: datum
  85: firstkey()
  86: {
  87:     datum item;
  88: 
  89:     if (cur_db == NODB) {
  90:         printf(no_db);
  91:         item.dptr = 0;
  92:         return (item);
  93:     }
  94:     return (dbm_firstkey(cur_db));
  95: }
  96: 
  97: datum
  98: nextkey(key)
  99: datum key;
 100: {
 101:     datum item;
 102: 
 103:     if (cur_db == NODB) {
 104:         printf(no_db);
 105:         item.dptr = 0;
 106:         return (item);
 107:     }
 108:     return (dbm_nextkey(cur_db, key));
 109: }

Defined functions

forder defined in line 34; never used

Defined variables

no_db defined in line 17; used 6 times
sccsid defined in line 8; never used

Defined macros

NODB defined in line 13; used 10 times
Last modified: 1985-08-16
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1347
Valid CSS Valid XHTML 1.0 Strict