From 7bbd3fcd89c0e4657fd8e8a478cfaf88e582001a Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 18 Jul 2008 18:10:44 -0400 Subject: [PATCH] Fix distribute aborting at prompt for second argument Before failing the command, the old code attempted to change the current sector's distribution center to the last one used, which might have been uninitialized coordinates. If lucky, the coordinates were invalid, and the attempt oopsed and did nothing. --- src/lib/commands/dist.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/lib/commands/dist.c b/src/lib/commands/dist.c index 6cdd7b523..b4124b51d 100644 --- a/src/lib/commands/dist.c +++ b/src/lib/commands/dist.c @@ -53,7 +53,7 @@ dist(void) if (!snxtsct(&nstr, player->argp[1])) return RET_SYN; - while (!player->aborted && nxtsct(&nstr, §)) { + while (nxtsct(&nstr, §)) { if (!player->owner) continue; pr("%s at %s ", dchr[sect.sct_type].d_name, @@ -70,20 +70,18 @@ dist(void) } else pr("has no dist sector. \n"); p = getstarg(player->argp[2], "Distribution sector? ", buf); - if (p && (*p == 0)) + if (!p) + return RET_SYN; + if (!*p) continue; - if (!check_sect_ok(§)) continue; - if (p && (*p != '.') && (*p != 'h') && (!sarg_xy(p, &dstx, &dsty))) - return RET_SYN; - - if (p && ((*p == '.') || (*p == 'h'))) { + if (*p == '.' || *p == 'h') { dstx = sect.sct_x; dsty = sect.sct_y; - } - + } else if (!sarg_xy(p, &dstx, &dsty)) + return RET_SYN; if (!getsect(dstx, dsty, &dsect)) { pr("Bad sector.\n"); return RET_FAIL; -- 2.43.0