8int btree_update(BTREE *B,
const void *key,
int keylen,
const void *data,
14 int (*cmp)(
const void *,
const void *);
21 B->node[N].key = store(key, keylen);
22 B->node[N].data = store(data, datalen);
25 if (B->node[N].key && B->node[N].data)
36 dir = (*cmp)(B->node[q].key, key);
38 free(B->node[q].data);
39 return ((B->node[q].data = store(data, datalen))) ? 1 : 0;
53 B->node = (BTREE_NODE *)realloc(B->node,
sizeof(BTREE_NODE) *
54 (B->tlen += B->incr));
60 B->node[N].key = store(key, keylen);
61 B->node[N].data = store(data, datalen);
65 B->node[N].right = -p;
69 B->node[N].right = B->node[p].right;