Eliminate some uses of wd2 - tests can be done on raw2 buffer instead.

This commit is contained in:
Eric S. Raymond 2017-07-20 07:09:20 -04:00
parent 360adc8bfb
commit 52723acb72
2 changed files with 2 additions and 3 deletions

View file

@ -1145,7 +1145,7 @@ static int rub(verb_t verb, obj_t obj)
static int say(struct command_t *command) static int say(struct command_t *command)
/* Say. Echo WD2 (or WD1 if no WD2 (SAY WHAT?, etc.).) Magic words override. */ /* Say. Echo WD2 (or WD1 if no WD2 (SAY WHAT?, etc.).) Magic words override. */
{ {
if (command->wd2 > 0) { if (command->raw2 != '\0') {
command->wd1 = command->wd2; command->wd1 = command->wd2;
strncpy(command->raw1, command->raw2, LINESIZE - 1); strncpy(command->raw1, command->raw2, LINESIZE - 1);
} }
@ -1360,7 +1360,7 @@ int action(struct command_t *command)
switch (command->part) { switch (command->part) {
case intransitive: case intransitive:
if (command->wd2 > 0 && command->verb != SAY) if (command->raw2[0] != '\0' && command->verb != SAY)
return GO_WORD2; return GO_WORD2;
if (command->verb == SAY) if (command->verb == SAY)
command->obj = command->wd2; command->obj = command->wd2;

1
main.c
View file

@ -1214,7 +1214,6 @@ Lookup:
command.id2 = WORD_EMPTY; command.id2 = WORD_EMPTY;
command.type2 = NO_WORD_TYPE; command.type2 = NO_WORD_TYPE;
command.raw2[0] = '\0'; command.raw2[0] = '\0';
wordclear(&command.wd2);
goto Lookup; goto Lookup;
case GO_UNKNOWN: case GO_UNKNOWN:
/* Random intransitive verbs come here. Clear obj just in case /* Random intransitive verbs come here. Clear obj just in case