if (!ps_neednoargs(ps)) return;
ec= movpos_change(back,move,fwd,ms,0);
- if (ec)
+ if (ec) {
badcmd(ps,"movfeat %s %s %s %ld %s",
back->i->pname, move->i->pname, fwd->i->pname,
ms==INT_MAX ? -1L : ms,
errorcodelist[ec]);
+ return;
+ }
ouack(ci);
}
for (i=0;
i<ninfsmax && (tname= *(const char *const*)inf);
- inf= (const char*)inf + sz)
+ i++, inf= (const char*)inf + sz)
if (!thiswordstrcmp(ps,tname))
return inf;
return 0;
const void *r;
if (!ps_needword(ps)) return 0;
r= any_lookup(ps,infs,ninfsmax,sz);
- if (!r) { badcmd(ps,"unknown %s",what); return 0; }
+ if (!r) {
+ badcmd(ps,"unknown %s %.*s",what, ps->lthisword,ps->thisword);
+ return 0;
+ }
return r;
}
int ps_needsegment(ParseState *ps, Segment **seg_r,
const SegmentInfo **segi_r) {
const SegmentInfo *segi;
- if (!ps_needword(ps)) return 0;
segi= some_needword_lookup_counted(ps,info_segments,info_nsegments,
- ps->thisword);
+ "segment");
if (!segi) return 0;
if (segi_r) *segi_r= segi;
if (seg_r) *seg_r= segments + (segi - info_segments);