| 725 if (len < 1 || len > 6) { |
725 if (len < 1 || len > 6) { |
| 726 return INVALID_MOVE_SYNTAX; |
726 return INVALID_MOVE_SYNTAX; |
| 727 } |
727 } |
| 728 |
728 |
| 729 /* evaluate check/checkmate flags */ |
729 /* evaluate check/checkmate flags */ |
| 730 if (mstr[len-1] == '+') { |
730 if (mstr[len-1] == '+' || mstr[len-1] == '#') { |
| 731 len--; mstr[len] = '\0'; |
731 len--; mstr[len] = '\0'; |
| 732 move->check = 1; |
732 move->check = true; |
| 733 } else if (mstr[len-1] == '#') { |
|
| 734 len--; mstr[len] = '\0'; |
|
| 735 /* ignore - validation should set game state */ |
|
| 736 } |
733 } |
| 737 |
734 |
| 738 /* evaluate promotion */ |
735 /* evaluate promotion */ |
| 739 if (len > 3 && mstr[len-2] == '=') { |
736 if (len > 3 && mstr[len-2] == '=') { |
| 740 move->promotion = getpiece(mstr[len-1]); |
737 move->promotion = getpiece(mstr[len-1]); |