int x1f4_find_??word
(void *, const unsigned char *, unsigned, void **)
looks for some $1 associative array item matching the null ended string $2 key. The key is compared with some null ended string record in the data of examined associative array element, record to be found $3 bytes after to the start of element data. Upon success, the start address of the found associative array element data is stored at $4.
Note that the examined record (in the associative array element) is a null ended string, and not a pointer to a null ended string.
x1f4_find_??word(a1, a2, a3, a4)
is equivalent with:
x1f4_find_??line(a1, a2, a3, compare, a4)
where compare is:
int
compare(void *looked_for_key, void *associative_array_stored_key)
{
int e;
unsigned char *s, *v;
s = looked_for_key;
v = associative_array_stored_key;
while (1) {
unsigned char c;
c = *s;
if (c ^ *v) {
e = (int) c - (int) *v;
break;
} else {
if (c) {
s++;
v++;
} else {
e = 0;
break;
}
}
}
return e;
}
returns 0 if no match was found, non zero otherwise