Goto elimination.
authorEric S. Raymond <esr@thyrsus.com>
Mon, 12 Jun 2017 11:58:24 +0000 (07:58 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 12 Jun 2017 11:58:24 +0000 (07:58 -0400)
main.c

diff --git a/main.c b/main.c
index e3c7085d55dcb4a4f6303fef06e28d008a1c1f5a..17bde07b5aa12c94b9a925ba29c81ea65081587c 100644 (file)
--- a/main.c
+++ b/main.c
@@ -824,8 +824,12 @@ L2607:     game.foobar=(game.foobar>0 ? -game.foobar : 0);
        if (game.trndex <= TRNVLS)
            game.thresh=MOD(TRNVAL[game.trndex],100000)+1;
        }
-       if (VERB == SAY && WD2 > 0)VERB=0;
-       if (VERB == SAY) goto L4090;
+       if (VERB == SAY && WD2 > 0)
+           VERB=0;
+       if (VERB == SAY) {
+           part=transitive;
+           goto Laction;
+       }
        if (game.tally == 0 && INDEEP(game.loc) && game.loc != 33)
            --game.clock1;
 
@@ -1013,17 +1017,12 @@ L2630:
        switch (KQ-1)
        {
        case 0: goto L8;
-       case 1: goto L5000;
-       case 2: goto L4000;
+       case 1: part=unknown; obj = KMOD; goto Laction;
+       case 2: part=intransitive; VERB = KMOD; goto Laction;
        case 3: RSPEAK(KMOD); goto L2012;
        }
        BUG(22);
 
-/* Verb and object analysis moved to separate module. */
-
-L4000: part=intransitive; VERB = KMOD; goto Laction;
-L4090: part=transitive; goto Laction;
-L5000: part=unknown; obj = KMOD;
 Laction:
         switch (action(cmdin, part, VERB, obj)) {
         case 2: return true;