- /* FIXME: ugly use of globals */
- SETPRM(1, WD2, WD2X);
- if (WD2 <= 0)
- SETPRM(1, WD1, WD1X);
- if (WD2 > 0)
- WD1 = WD2;
- int wd = VOCAB(WD1, -1);
- /* FIXME: Magic numbers */
- if (wd == 62 || wd == 65 || wd == 71 || wd == 2025 || wd == 2034) {
- WD2 = 0;
+ if (command->wd2 > 0) {
+ command->wd1 = command->wd2;
+ strcpy(command->raw1, command->raw2);
+ }
+ char word1[TOKLEN + 1];
+ packed_to_token(command->wd1, word1);
+ int wd = (int) get_vocab_id(word1);
+ if (wd == MOTION_WORD(XYZZY) ||
+ wd == MOTION_WORD(PLUGH) ||
+ wd == MOTION_WORD(PLOVER) ||
+ wd == ACTION_WORD(GIANTWORDS) ||
+ wd == ACTION_WORD(PART)) {
+ /* FIXME: scribbles on the interpreter's command block */
+ wordclear(&command->wd2);