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.
if (!snxtsct(&nstr, player->argp[1]))
return RET_SYN;
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,
if (!player->owner)
continue;
pr("%s at %s ", dchr[sect.sct_type].d_name,
} else
pr("has no dist sector. \n");
p = getstarg(player->argp[2], "Distribution sector? ", buf);
} else
pr("has no dist sector. \n");
p = getstarg(player->argp[2], "Distribution sector? ", buf);
+ if (!p)
+ return RET_SYN;
+ if (!*p)
if (!check_sect_ok(§))
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;
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;
if (!getsect(dstx, dsty, &dsect)) {
pr("Bad sector.\n");
return RET_FAIL;