From fb6886cad739c44b16575330c88022785d0cea8f Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Fri, 3 Jan 2020 22:14:31 +0100 Subject: [PATCH] Case-insensitive parsing of piece types Make parsing of piece types from variant configuration case-insensitive. Fixes #63. --- src/parser.cpp | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/parser.cpp b/src/parser.cpp index 4e86dbf..3165970 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -121,7 +121,7 @@ Variant* VariantParser::parse(Variant* v) { char token; size_t idx; std::stringstream ss(it_prom->second); - while (ss >> token && ((idx = v->pieceToChar.find(token)) != std::string::npos)) + while (ss >> token && ((idx = v->pieceToChar.find(toupper(token))) != std::string::npos)) v->promotionPieceTypes.insert(PieceType(idx)); } parse_attribute("sittuyinPromotion", v->sittuyinPromotion); @@ -165,7 +165,7 @@ Variant* VariantParser::parse(Variant* v) { char token; size_t idx; std::stringstream ss(it_castling_rook_piece->second); - if (ss >> token && (idx = v->pieceToChar.find(token)) != std::string::npos) + if (ss >> token && (idx = v->pieceToChar.find(toupper(token))) != std::string::npos) v->castlingRookPiece = PieceType(idx); } parse_attribute("checking", v->checking); @@ -209,7 +209,7 @@ Variant* VariantParser::parse(Variant* v) { char token; size_t idx; std::stringstream ss(it_ext->second); - while (ss >> token && ((idx = v->pieceToChar.find(token)) != std::string::npos || token == '*')) + while (ss >> token && ((idx = v->pieceToChar.find(toupper(token))) != std::string::npos || token == '*')) v->extinctionPieceTypes.insert(PieceType(token == '*' ? 0 : idx)); } // flag piece type @@ -219,7 +219,7 @@ Variant* VariantParser::parse(Variant* v) { char token; size_t idx; std::stringstream ss(it_flag_pt->second); - if (ss >> token && (idx = v->pieceToChar.find(token)) != std::string::npos) + if (ss >> token && (idx = v->pieceToChar.find(toupper(token))) != std::string::npos) v->flagPiece = PieceType(idx); } parse_attribute("whiteFlag", v->whiteFlag); -- 1.7.0.4