From 686728a329d9b5e159fc7b5394517c968edb7a22 Mon Sep 17 00:00:00 2001 From: Maxim Prokhorov Date: Mon, 22 Jan 2024 23:59:22 +0300 Subject: [PATCH] rfb: , parser fix --- code/espurna/rfbridge.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/code/espurna/rfbridge.cpp b/code/espurna/rfbridge.cpp index 7c289f1f..40ddd7f7 100644 --- a/code/espurna/rfbridge.cpp +++ b/code/espurna/rfbridge.cpp @@ -1025,25 +1025,20 @@ void _rfbSendFromPayload(espurna::StringView payload) { return; } - decltype(_rfb_repeats) repeats { _rfb_repeats }; + uint8_t repeats { _rfb_repeats }; auto it = std::find(payload.begin(), payload.end(), ','); if (it != payload.end()) { - it += 1; - if ((it == payload.end()) || (*it == '\0') || (*it == '-')) { - return; - } - - const auto result = parseUnsigned( - espurna::StringView(it, payload.end()), 10); - if (!result.ok) { - return; + auto value = espurna::StringView(it + 1, payload.end()); + if (value.length()) { + const auto result = parseUnsigned(value, 10); + if (result.ok) { + repeats = result.value; + } } - - repeats = result.value; } - payload = espurna::StringView(it, payload.end()); + payload = espurna::StringView(payload.begin(), it); if (!payload.length()) { return; }