1 #include <stdio.h> 2 #ifdef SDBM 3 #include "sdbm.h" 4 #else 5 #include "ndbm.h" 6 #endif 7 8 void 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 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