end = word;
while (end != NULL && *end != 0) {
start = end;
- while (*start != 0 && !isalnum(*start)) {
+ while (*start != 0 && (ispunct(*start) || isspace (*start))) {
start++;
}
end = start;
- while (*end != 0 && isalnum(*end)) {
+ while (*end != 0 && (!ispunct(*end) && !isspace (*end))) {
*end = tolower(*end);
end++;
}
end++;
}
- if (llfind(wordlist, start, strcmp) == NULL) {
- wordlist = lladd(wordlist, start);
+ if (llfind(wordlist, start,
+ (int (*)(const void *, const void *)) strcmp
+ ) == NULL) {
+ wordlist = lladdend(wordlist, start);
}
}
}
for (i = 0; uids[i] != NULL; ++i) {
words = makewordlist(NULL, uids[i]);
for (wl = words; wl != NULL; wl = wl->next) {
- if (llfind(wordlist, wl->object, strcmp) == NULL) {
+ if (llfind(wordlist, wl->object,
+ (int (*)(const void *, const void *)) strcmp
+ ) == NULL) {
wordlist = lladd(wordlist, strdup(wl->object));
}
}