1 #include <stdio.h>
2 #ifdef SDBM
3 #include "sdbm.h"
4 #else
5 #include "ndbm.h"
6 #endif
7
8 void
oops(char * s1,char * s2)9 oops(char *s1, char *s2)
10 {
11 extern int errno, sys_nerr;
12 extern char *sys_errlist[];
13 extern char *progname;
14
15 if (progname)
16 fprintf(stderr, "%s: ", progname);
17 fprintf(stderr, s1, s2);
18 if (errno > 0 && errno < sys_nerr)
19 fprintf(stderr, " (%s)", sys_errlist[errno]);
20 fprintf(stderr, "\n");
21 exit(1);
22 }
23
24 int
okpage(char * pag)25 okpage(char *pag)
26 {
27 unsigned n;
28 int off;
29 short *ino = (short *) pag;
30
31 if ((n = ino[0]) > PBLKSIZ / sizeof(short))
32 return 0;
33
34 if (!n)
35 return 1;
36
37 off = PBLKSIZ;
38 for (ino++; n; ino += 2) {
39 if (ino[0] > off || ino[1] > off ||
40 ino[1] > ino[0])
41 return 0;
42 off = ino[1];
43 n -= 2;
44 }
45
46 return 1;
47 }
48