From: Eric S. Raymond Date: Mon, 25 Mar 2019 22:29:05 +0000 (+0000) Subject: Merge branch 'master' into 'master' X-Git-Tag: 1.7~4 X-Git-Url: https://jxself.org/git/?p=wumpus.git;a=commitdiff_plain;h=ffb63e15cc61af0298db4932c4cd797099a42e9b;hp=c933090a7a4c96592d6c3f0df61b7c0224187ada Merge branch 'master' into 'master' fix: superhack input path reading See merge request esr/wumpus!1 --- 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;