From d9967c2638052730c6eeb1624586d633d6482003 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Sat, 27 Apr 2024 19:54:23 +0000 Subject: Avoid ctype abuse. fix https://github.com/ledger/ledger/issues/2338 fix https://github.com/ledger/ledger/issues/2340 --- src/amount.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/amount.cc') diff --git a/src/amount.cc b/src/amount.cc index da8cd6fc..22282150 100644 --- a/src/amount.cc +++ b/src/amount.cc @@ -1013,7 +1013,8 @@ namespace { std::isdigit(c) || c == '.' || c == ','); string::size_type len = std::strlen(buf); - while (len > 0 && ! std::isdigit(buf[len - 1])) { + while (len > 0 && + ! std::isdigit(static_cast(buf[len - 1]))) { buf[--len] = '\0'; in.unget(); } @@ -1048,7 +1049,7 @@ bool amount_t::parse(std::istream& in, const parse_flags_t& flags) parse_quantity(in, quant); if (! in.eof() && ((n = static_cast(in.peek())) != '\n')) { - if (std::isspace(n)) + if (std::isspace(static_cast(n))) comm_flags |= COMMODITY_STYLE_SEPARATED; commodity_t::parse_symbol(in, symbol); @@ -1064,7 +1065,7 @@ bool amount_t::parse(std::istream& in, const parse_flags_t& flags) commodity_t::parse_symbol(in, symbol); if (! in.eof() && ((n = static_cast(in.peek())) != '\n')) { - if (std::isspace(static_cast(in.peek()))) + if (std::isspace(in.peek())) comm_flags |= COMMODITY_STYLE_SEPARATED; parse_quantity(in, quant); -- cgit v1.2.3