+static bool get_command_input(struct command_t *command)
+{
+ char inputbuf[LINESIZE];
+ char word1[TOKLEN + 1];
+ char word2[TOKLEN + 1];
+ char* input;
+
+ for (;;) {
+ input = get_input();
+ if (input == NULL)
+ return false;
+ if (word_count(input) > 2) {
+ rspeak(TWO_WORDS);
+ free(input);
+ continue;
+ }
+ if (strcmp(input, "") != 0)
+ break;
+ free(input);
+ }
+
+ strncpy(inputbuf, input, LINESIZE - 1);
+ free(input);
+
+ tokenize(inputbuf, command);
+
+ packed_to_token(command->wd1, word1);
+ packed_to_token(command->wd2, word2);
+ get_vocab_metadata(word1, &(command->id1), &(command->type1));
+ get_vocab_metadata(word2, &(command->id2), &(command->type2));
+
+ return true;
+}
+