From 21fe64b59cd30ae4e3263a2c7731b39b15703c5f Mon Sep 17 00:00:00 2001 From: tastytea Date: Thu, 25 Jul 2019 02:57:10 +0200 Subject: [PATCH] Fixed to_lowercase(). Converting some text to lowercase caused range errors. I don't really know what I'm doing here, so I replaced the code with this answer from StackOverflow: . It works now, let's hope it stays that way. --- src/search.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index a067427..4c0c8a7 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -62,12 +62,12 @@ const vector> parse_expression(string expression) const string to_lowercase(const string &str) { - std::wstring_convert> converter; - std::wstring in = converter.from_bytes(str); - std::wstring out; - - std::transform(in.begin(), in.end(), std::back_inserter(out), ::towlower); - return converter.to_bytes(out); + string out; + std::locale loc(""); + const std::ctype& ct = std::use_facet>(loc); + std::transform(str.begin(), str.end(), std::back_inserter(out), + std::bind1st(std::mem_fun(&std::ctype::tolower), &ct)); + return out; } const vector