# HG changeset patch # User Mike Becker # Date 1784890438 -7200 # Node ID 835776e0338f4476fb80a08ac94d0d74e2e8d268 # Parent 5336e985bd6988215e4a18dce6015c9fadda6e92 fix: disambiguation by row while capturing was not implemented fixes #934 diff -r 5336e985bd69 -r 835776e0338f src/chess/rules.c --- a/src/chess/rules.c Fri Jul 24 12:44:42 2026 +0200 +++ b/src/chess/rules.c Fri Jul 24 12:53:58 2026 +0200 @@ -804,8 +804,14 @@ if (mstr[2] == 'x') { move->capture = 1; if (move->piece) { - /* capture (e.g. "Ndxf3") */ - move->fromfile = fileidx(mstr[1]); + /* capture (e.g. "Ndxf3" or "R1xh3") */ + if (isfile(mstr[1])) { + move->fromfile = fileidx(mstr[1]); + } else if (isrow(mstr[1])) { + move->fromrow = rowidx(mstr[1]); + } else { + return INVALID_MOVE_SYNTAX; + } } else { /* long notation capture (e.g. "e5xf6") */ move->piece = PAWN;