From 032ba5383f44277e8f579ac1f8300aede7bf2cd2 Mon Sep 17 00:00:00 2001 From: Tursiae Date: Tue, 1 Jul 2025 21:52:36 +1000 Subject: Use the standard library instead of a dirty hack. --- src/tangara/audio/playlist.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/tangara/audio/playlist.cpp b/src/tangara/audio/playlist.cpp index d0c7e5a3..89d7e378 100644 --- a/src/tangara/audio/playlist.cpp +++ b/src/tangara/audio/playlist.cpp @@ -325,15 +325,8 @@ auto Playlist::nextItem(std::span buf) mutated_.reserve(line.size()); for (size_t n = 0; n < line.size(); ++n) { if (n < (line.size() - 2) && line[n] == '%' && - (isdigit(line[n+1]) || (line[n+1] >= 'a' && line[n+1] <= 'f') || (line[n+1] >= 'A' && line[n+1] <= 'F')) && - (isdigit(line[n+2]) || (line[n+2] >= 'a' && line[n+2] <= 'f') || (line[n+2] >= 'A' && line[n+2] <= 'F'))) { - char value = 0; - if (isdigit(line[n+1])) value += (line[n+1] - '0') << 4; - if (isdigit(line[n+2])) value += (line[n+2] - '0') << 0; - if (line[n+1] >= 'a' && line[n+1] <= 'f') value += (0x0a + line[n+1] - 'a') << 4; - if (line[n+2] >= 'a' && line[n+2] <= 'f') value += (0x0a + line[n+2] - 'a') << 0; - if (line[n+1] >= 'A' && line[n+1] <= 'F') value += (0x0A + line[n+1] - 'A') << 4; - if (line[n+2] >= 'A' && line[n+2] <= 'F') value += (0x0A + line[n+2] - 'A') << 0; + std::isxdigit(line[n+1]) && std::isxdigit(line[n+2])) { + char value = std::stoi(std::string(line.substr(n+1, 2)), 0, 16); mutated_ += value; n += 2; } else { -- cgit v1.2.3