int search_block(char *arg, char **list, int exact)
{
register int i, l;
/* Make into lower case, and get length of string */
for (l = 0; *(arg + l); l++)
*(arg + l) = LOWER(*(arg + l));
You'll never match uppercase because it uses 'strcmp' and 'strncmp' for
case sensitivity. I'm thinking they should be str_cmp and strn_cmp, almost
everything else in the mud is case insensitive.
--------------------
Yes, I do remember this as being a problem. I did change search_block
to use the case insensitive comparison functions, and all problems
went away :-)
int search_block(char *arg, char **list, bool exact)
{
register int i, l;
l = strlen(arg);
if (exact) {
for (i = 0; **(list + i) != '\n'; i++)
if (!str_cmp(arg, *(list + i)))
return (i);
} else {
if (!l)
l = 1; /* Avoid "" to match the first available
* string */
for (i = 0; **(list + i) != '\n'; i++)
if (!strn_cmp(arg, *(list + i), l))
return (i);
}
return -1;
}
--Sean
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST