Make compparuson out to TOKLEN only explicit in vocab lookups.
authorEric S. Raymond <esr@thyrsus.com>
Thu, 20 Jul 2017 09:54:55 +0000 (05:54 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Thu, 20 Jul 2017 09:54:55 +0000 (05:54 -0400)
misc.c

diff --git a/misc.c b/misc.c
index f3b0f3dcf33675cf166e45d50689d42064bade2a..ae5048d9a92825b948f770c4b218f9f83559abc8 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -462,7 +462,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);
@@ -477,7 +477,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);
         }
     }
@@ -490,7 +490,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);
@@ -505,7 +505,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);
         }
     }