diff options
Diffstat (limited to 'contrib/perl5/ext/SDBM_File/sdbm/dba.c')
-rw-r--r-- | contrib/perl5/ext/SDBM_File/sdbm/dba.c | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/contrib/perl5/ext/SDBM_File/sdbm/dba.c b/contrib/perl5/ext/SDBM_File/sdbm/dba.c deleted file mode 100644 index 74067763985a..000000000000 --- a/contrib/perl5/ext/SDBM_File/sdbm/dba.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * dba dbm analysis/recovery - */ - -#include <stdio.h> -#include <sys/file.h> -#include "EXTERN.h" -#include "sdbm.h" - -char *progname; -extern void oops(); - -int -main(int argc, char **argv) -{ - int n; - char *p; - char *name; - int pagf; - - progname = argv[0]; - - if (p = argv[1]) { - name = (char *) malloc((n = strlen(p)) + 5); - if (!name) - oops("cannot get memory"); - - strcpy(name, p); - strcpy(name + n, ".pag"); - - if ((pagf = open(name, O_RDONLY)) < 0) - oops("cannot open %s.", name); - - sdump(pagf); - } - else - oops("usage: %s dbname", progname); - - return 0; -} - -void -sdump(int pagf) -{ - register b; - register n = 0; - register t = 0; - register o = 0; - register e; - char pag[PBLKSIZ]; - - while ((b = read(pagf, pag, PBLKSIZ)) > 0) { - printf("#%d: ", n); - if (!okpage(pag)) - printf("bad\n"); - else { - printf("ok. "); - if (!(e = pagestat(pag))) - o++; - else - t += e; - } - n++; - } - - if (b == 0) - printf("%d pages (%d holes): %d entries\n", n, o, t); - else - oops("read failed: block %d", n); -} - -int -pagestat(char *pag) -{ - register n; - register free; - register short *ino = (short *) pag; - - if (!(n = ino[0])) - printf("no entries.\n"); - else { - free = ino[n] - (n + 1) * sizeof(short); - printf("%3d entries %2d%% used free %d.\n", - n / 2, ((PBLKSIZ - free) * 100) / PBLKSIZ, free); - } - return n / 2; -} |