+static int cf_lookup (CFile cf, int no)
+{
+ if (cf->head.state > 1)
+ return cf_lookup_flat (cf, no);
+ return cf_lookup_hash (cf, no);
+}
+
+int cf_new_flat (CFile cf, int no)
+{
+ int hno = (no*sizeof(int))/HASH_BSIZE;
+ int off = (no*sizeof(int)) - hno*sizeof(HASH_BSIZE);
+ int vno = (cf->head.next_block)++;
+
+ mf_write (cf->hash_mf, hno+cf->head.next_bucket, off, sizeof(int), &vno);
+ return vno;
+}
+
+static int cf_new_hash (CFile cf, int no)