home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Unix / CNews / Source / libfake / dbz.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-12  |  1.5 KB  |  83 lines

  1. /*
  2.  * fakes for using dbm (or old dbz) as if it were dbz
  3.  */
  4. #include <stdio.h>
  5. #include <sys/types.h>
  6. #include <dbz.h>
  7.  
  8. /* the simple stuff */
  9. dbzfresh(a,b,c,d,e) char *a; long b; { return(dbzagain(a,a)); }
  10. long dbzsize(a) long a; { return(a); }
  11. dbzincore(n) int n; { return(0); }
  12. dbzdebug(n) int n; { return(0); }
  13. long dbztrim(a) long a; { return(a); }
  14. int dbzsync() { return(0); }
  15.  
  16. /*
  17.  - dbzagain - like dbminit but creates files
  18.  */
  19. int
  20. dbzagain(a, b)
  21. char *a;
  22. char *b;
  23. {
  24.     char dirname[200];
  25.     char pagname[200];
  26.     FILE *p;
  27.     FILE *d;
  28.  
  29.     sprintf(dirname, "%s.dir", a);
  30.     sprintf(pagname, "%s.pag", a);
  31.     p = fopen(dirname, "w");
  32.     d = fopen(pagname, "w");
  33.     if (p != NULL)
  34.         (void) fclose(p);
  35.     if (d != NULL)
  36.         (void) fclose(d);
  37.     if (p == NULL || d == NULL)
  38.         return(-1);
  39.  
  40.     return(dbminit(a));
  41. }
  42.  
  43. /*
  44.  - dbzfetch - fetch() with case mapping built in
  45.  *
  46.  * Uses C News rfc822ize().  Assumes keys are strings.
  47.  */
  48. datum
  49. dbzfetch(key)
  50. datum key;
  51. {
  52.     char buffer[DBZMAXKEY + 1];
  53.     datum mappedkey;
  54.  
  55.     (void) strcpy(buffer, key.dptr);
  56.     (void) rfc822ize(buffer);
  57.     mappedkey.dptr = buffer;
  58.     mappedkey.dsize = key.dsize;
  59.  
  60.     return(fetch(mappedkey));
  61. }
  62.  
  63. /*
  64.  - dbzstore - store() with case mapping built in
  65.  *
  66.  * Uses C News rfc822ize().  Assumes keys are strings.
  67.  */
  68. int
  69. dbzstore(key, data)
  70. datum key;
  71. datum data;
  72. {
  73.     char buffer[DBZMAXKEY + 1];
  74.     datum mappedkey;
  75.  
  76.     (void) strcpy(buffer, key.dptr);
  77.     (void) rfc822ize(buffer);
  78.     mappedkey.dptr = buffer;
  79.     mappedkey.dsize = key.dsize;
  80.  
  81.     return(store(mappedkey, data));
  82. }
  83.