X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=misc.c;h=340aa3de906dd860764a0934769ff011c519be28;hp=756e5cbfb223a443d3909fe4d3025b199bc3cb55;hb=2fa530340d65c636fb297aee5df5805393f08d31;hpb=03b2f1c86e4a7e856fadff2244b9c6456ccd8835 diff --git a/misc.c b/misc.c index 756e5cb..340aa3d 100644 --- a/misc.c +++ b/misc.c @@ -99,10 +99,6 @@ void tokenize(char* raw, struct command_t *cmd) * raw-input buffer as long as the enrire inout buffer. */ sscanf(raw, "%s%s", cmd->raw1, cmd->raw2); - // pack the substrings - cmd->wd1 = token_to_packed(cmd->raw1); - cmd->wd2 = token_to_packed(cmd->raw2); - /* (ESR) In oldstyle mode, simulate the uppercasing and truncating * effect on raw tokens of packing them into sixbit characters, 5 * to a 32-bit word. This is something the FORTRAN version did @@ -128,11 +124,6 @@ void tokenize(char* raw, struct command_t *cmd) /* Hide the fact that wods are corrently packed longs */ -bool wordempty(token_t a) -{ - return a == 0; -} - void wordclear(token_t *v) { *v = 0; @@ -140,7 +131,7 @@ void wordclear(token_t *v) /* I/O routines (speak, pspeak, rspeak, sspeak, get_input, yes) */ -void vspeak(const char* msg, bool blank, va_list ap) +static void vspeak(const char* msg, bool blank, va_list ap) { // Do nothing if we got a null pointer. if (msg == NULL) @@ -467,7 +458,7 @@ int get_motion_vocab_id(const char* word) { for (int i = 0; i < NMOTIONS; ++i) { for (int j = 0; j < motions[i].words.n; ++j) { - if (strcasecmp(word, motions[i].words.strs[j]) == 0 && (strlen(word) > 1 || + if (strncasecmp(word, motions[i].words.strs[j], TOKLEN) == 0 && (strlen(word) > 1 || strchr(ignore, word[0]) == NULL || !settings.oldstyle)) return (i); @@ -482,7 +473,7 @@ int get_object_vocab_id(const char* word) { for (int i = 0; i < NOBJECTS + 1; ++i) { // FIXME: the + 1 should go when 1-indexing for objects is removed for (int j = 0; j < objects[i].words.n; ++j) { - if (strcasecmp(word, objects[i].words.strs[j]) == 0) + if (strncasecmp(word, objects[i].words.strs[j], TOKLEN) == 0) return (i); } } @@ -495,7 +486,7 @@ int get_action_vocab_id(const char* word) { for (int i = 0; i < NACTIONS; ++i) { for (int j = 0; j < actions[i].words.n; ++j) { - if (strcasecmp(word, actions[i].words.strs[j]) == 0 && (strlen(word) > 1 || + if (strncasecmp(word, actions[i].words.strs[j], TOKLEN) == 0 && (strlen(word) > 1 || strchr(ignore, word[0]) == NULL || !settings.oldstyle)) return (i); @@ -510,7 +501,7 @@ int get_special_vocab_id(const char* word) { for (int i = 0; i < NSPECIALS; ++i) { for (int j = 0; j < specials[i].words.n; ++j) { - if (strcasecmp(word, specials[i].words.strs[j]) == 0) + if (strncasecmp(word, specials[i].words.strs[j], TOKLEN) == 0) return (i); } }