X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=wordlist.c;h=791c55d96e6fb10274c9084b12d7ed8541280b33;hb=b29df6ee43968324d986717ac10d6e0656925196;hp=a9e20a62e69a682fce1c51d2d134d2d463c79832;hpb=394938c479925750ffe56c28d281945ba4003a14;p=onak.git diff --git a/wordlist.c b/wordlist.c index a9e20a6..791c55d 100644 --- a/wordlist.c +++ b/wordlist.c @@ -40,11 +40,11 @@ struct ll *makewordlist(struct ll *wordlist, char *word) 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++; } @@ -54,8 +54,10 @@ struct ll *makewordlist(struct ll *wordlist, char *word) 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); } } } @@ -87,7 +89,9 @@ struct ll *makewordlistfromkey(struct ll *wordlist, 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)); } }