I'm getting a little fed up with interpreter.c It all started innocently enough. I noticed that skip_spaces() did something unintuitive: it increments the pointer passed to it in order to skip the spaces at the beginning of the string. The fact that it takes a pointer to a pointer to char should be a hint that something is up, but it's not immediately obvious to someone who isn't thinking about it why skip_spaces(buf) would be a very, very bad thing. So I changed it, and find_skill_num() broke. It relied on skip_spaces() old behavior of just incrementing the pointer. So I changed find_skill_num() and rewrote a few other things that were breaking. I'd like people's opinion on what the best way to handle skip_spaces() is. What do you think the stock Circle behavior should be? Also, I noticed that strings were lowercased in many places throughout interpreter.c. Sometimes they were lowercased more than once. One particularly bad example is search_block() (and hence fill_word(), one_argument(), one_word(), and all the others that depend on it) which not only discards case sensitivity but permanently modifies the string to all lower case letters. In my opinion, it should be the responsibility of "higher" functions (and hence putting the responsibility in the end programmer's hands instead of whoever coded the utility functions) like special procs, ACMDs, etc. to decide if case sensitivity is desired. There are exceptions, but functions that are "general utility" functions shouldn't assume such things. Any opinions? +------------------------------------------------------------+ | 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