# define WORDLEN(node) ((node)->w.n)
#endif
struct node *down, *right, *up;
- short len;
+ short chlen;
+# define CHLEN(node) ((node)->chlen)
};
#define WORDMAX 64
else if (ch = getchar(), ch != EOF) bail("short read, found `%c'", ch);
PREPNODE; INSERT;
- if (node) { node->up = node->down = node->right = 0; node->len = 1; }
+ if (node) { node->up = node->down = node->right = 0; CHLEN(node) = 1; }
}
CHECK;
/* fprintf(stderr, ";; search `%.*s'\n", word.n, word.p); */
parent = LOOKUP; if (!parent) continue;
}
- node->up = parent; nlen = node->len;
+ node->up = parent; nlen = CHLEN(node);
for (;;) {
if (!parent) {
if (nlen >= max) {
}
break;
}
- plen = parent->len; nlen++;
+ plen = CHLEN(parent); nlen++;
if (plen > nlen)
break;
else if (plen == nlen) {
break;
} else {
parent->down = node; node->right = 0;
- parent->len = nlen;
+ CHLEN(parent) = nlen;
node = parent; parent = node->up;
}
}