From: Frank Uhlig Date: Mon, 25 Mar 2019 20:54:49 +0000 (+0000) Subject: fix: superhack input path reading X-Git-Tag: 1.7~4^2 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=1806c4e4493dd43bb0de71735b3bb665b48a31de;p=wumpus.git fix: superhack input path reading --- diff --git a/superhack.c b/superhack.c index c5461a1..eff24c2 100644 --- a/superhack.c +++ b/superhack.c @@ -22,6 +22,7 @@ static int path[5]; static int j, k, scratchloc, pies; static char inp[BUFSIZ]; /* common input buffer */ +#define NUMBERS "0123456789" #define YOU 0 #define RMS 1 #define STARLET1 2 @@ -226,8 +227,9 @@ void throw() extern void check_shot(), move_superhack(); int j9; - j9 = sscanf(inp + isalpha(inp[0]), "%d %d %d %d %d", + j9 = sscanf(inp + strcspn(inp, NUMBERS), "%d %d %d %d %d", &path[0], &path[1], &path[2], &path[3], &path[4]); + if (j9 < 1) { PM("Sorry, I didn't see any room numbers after your throw command."); @@ -312,7 +314,7 @@ void move_superhack() void move() { - if (sscanf(inp + isalpha(inp[0]), "%d", &scratchloc) < 1) + if (sscanf(inp + strcspn(inp, NUMBERS), "%d", &scratchloc) < 1) { PM("Sorry, I didn't see a room number after your `m' command."); return;