Angus Mezick <angus@EDGIL.CCMAIL.COMPUSERVE.COM> writes: > Saga, > nifty idea, but one question, what is help_lookup()? did you just yank the code > out of do_help or something? If so, not that hard to code on my own, but your > snippet needs it to function. > --Angus Ahh I meant to send that correction in after I posted, but got distracted in the other threads. Yes, I did pull it from do_help; I've included it below. Also, the data structures I used (CHAR_DATA) are not included in stock. As I mentioned in another thread, I've replaced mine (saves on typing and IMO reduces clutter). Sorry it wasn't posted in a more useable form. /* Given a string s, it returns the index in the help_table of the help entry for that string, or -1 on failure. */ int help_lookup(char *s) { int chk, bot, top, mid, minlen; if (!help_table) { return -1; } bot = 0; top = top_of_helpt; minlen = strlen(s); for (;;) { mid = (bot + top) / 2; if (bot > top) { return -1; } else if (!(chk = strn_cmp(s, help_table[mid].keyword, minlen))) { /* trace backwards to find first matching entry. Thanks Jeff Fink! */ while ((mid > 0) && (!(chk = strn_cmp(s, help_table[mid - 1].keyword, minlen)))) mid--; return mid; } else { if (chk > 0) bot = mid + 1; else top = mid - 1; } } } -- James Turner turnerjh@xtn.net http://www.vuse.vanderbilt.edu/~turnerj1/ +------------------------------------------------------------+ | 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/15/00 PST