1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:17:36 +00:00

Everywhere: Remove unintentional partial stream reads and writes

This commit is contained in:
Tim Schumacher 2023-03-01 17:24:50 +01:00 committed by Linus Groh
parent 26516ee160
commit ae51c1821c
44 changed files with 109 additions and 192 deletions

View file

@ -632,25 +632,24 @@ ErrorOr<void> ChessWidget::import_pgn(Core::File& file)
ErrorOr<void> ChessWidget::export_pgn(Core::File& file) const
{
// Tag Pair Section
// FIXME: This should write the entire span.
TRY(file.write_some("[Event \"Casual Game\"]\n"sv.bytes()));
TRY(file.write_some("[Site \"SerenityOS Chess\"]\n"sv.bytes()));
TRY(file.write_some(DeprecatedString::formatted("[Date \"{}\"]\n", Core::DateTime::now().to_deprecated_string("%Y.%m.%d"sv)).bytes()));
TRY(file.write_some("[Round \"1\"]\n"sv.bytes()));
TRY(file.write_until_depleted("[Event \"Casual Game\"]\n"sv.bytes()));
TRY(file.write_until_depleted("[Site \"SerenityOS Chess\"]\n"sv.bytes()));
TRY(file.write_until_depleted(DeprecatedString::formatted("[Date \"{}\"]\n", Core::DateTime::now().to_deprecated_string("%Y.%m.%d"sv)).bytes()));
TRY(file.write_until_depleted("[Round \"1\"]\n"sv.bytes()));
DeprecatedString username(getlogin());
auto const player1 = (!username.is_empty() ? username.view() : "?"sv.bytes());
auto const player2 = (!m_engine.is_null() ? "SerenityOS ChessEngine"sv.bytes() : "?"sv.bytes());
TRY(file.write_some(DeprecatedString::formatted("[White \"{}\"]\n", m_side == Chess::Color::White ? player1 : player2).bytes()));
TRY(file.write_some(DeprecatedString::formatted("[Black \"{}\"]\n", m_side == Chess::Color::Black ? player1 : player2).bytes()));
TRY(file.write_until_depleted(DeprecatedString::formatted("[White \"{}\"]\n", m_side == Chess::Color::White ? player1 : player2).bytes()));
TRY(file.write_until_depleted(DeprecatedString::formatted("[Black \"{}\"]\n", m_side == Chess::Color::Black ? player1 : player2).bytes()));
TRY(file.write_some(DeprecatedString::formatted("[Result \"{}\"]\n", Chess::Board::result_to_points_string(m_board.game_result(), m_board.turn())).bytes()));
TRY(file.write_some("[WhiteElo \"?\"]\n"sv.bytes()));
TRY(file.write_some("[BlackElo \"?\"]\n"sv.bytes()));
TRY(file.write_some("[Variant \"Standard\"]\n"sv.bytes()));
TRY(file.write_some("[TimeControl \"-\"]\n"sv.bytes()));
TRY(file.write_some("[Annotator \"SerenityOS Chess\"]\n"sv.bytes()));
TRY(file.write_some("\n"sv.bytes()));
TRY(file.write_until_depleted(DeprecatedString::formatted("[Result \"{}\"]\n", Chess::Board::result_to_points_string(m_board.game_result(), m_board.turn())).bytes()));
TRY(file.write_until_depleted("[WhiteElo \"?\"]\n"sv.bytes()));
TRY(file.write_until_depleted("[BlackElo \"?\"]\n"sv.bytes()));
TRY(file.write_until_depleted("[Variant \"Standard\"]\n"sv.bytes()));
TRY(file.write_until_depleted("[TimeControl \"-\"]\n"sv.bytes()));
TRY(file.write_until_depleted("[Annotator \"SerenityOS Chess\"]\n"sv.bytes()));
TRY(file.write_until_depleted("\n"sv.bytes()));
// Movetext Section
for (size_t i = 0, move_no = 1; i < m_board.moves().size(); i += 2, move_no++) {
@ -658,17 +657,17 @@ ErrorOr<void> ChessWidget::export_pgn(Core::File& file) const
if (i + 1 < m_board.moves().size()) {
const DeprecatedString black = m_board.moves().at(i + 1).to_algebraic();
TRY(file.write_some(DeprecatedString::formatted("{}. {} {} ", move_no, white, black).bytes()));
TRY(file.write_until_depleted(DeprecatedString::formatted("{}. {} {} ", move_no, white, black).bytes()));
} else {
TRY(file.write_some(DeprecatedString::formatted("{}. {} ", move_no, white).bytes()));
TRY(file.write_until_depleted(DeprecatedString::formatted("{}. {} ", move_no, white).bytes()));
}
}
TRY(file.write_some("{ "sv.bytes()));
TRY(file.write_some(Chess::Board::result_to_string(m_board.game_result(), m_board.turn()).bytes()));
TRY(file.write_some(" } "sv.bytes()));
TRY(file.write_some(Chess::Board::result_to_points_string(m_board.game_result(), m_board.turn()).bytes()));
TRY(file.write_some("\n"sv.bytes()));
TRY(file.write_until_depleted("{ "sv.bytes()));
TRY(file.write_until_depleted(Chess::Board::result_to_string(m_board.game_result(), m_board.turn()).bytes()));
TRY(file.write_until_depleted(" } "sv.bytes()));
TRY(file.write_until_depleted(Chess::Board::result_to_points_string(m_board.game_result(), m_board.turn()).bytes()));
TRY(file.write_until_depleted("\n"sv.bytes()));
return {};
}