From f61761f46610cf4ddc48129710e2e4976a08f0c3 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Fri, 25 Sep 2015 21:51:24 +0100 Subject: [PATCH] Better implementation of CompareCaseInsensitive. --- src/XPMPMultiplayer.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/XPMPMultiplayer.cpp b/src/XPMPMultiplayer.cpp index 948499831..714a06ff0 100644 --- a/src/XPMPMultiplayer.cpp +++ b/src/XPMPMultiplayer.cpp @@ -348,12 +348,9 @@ XPMPPlaneID XPMPCreatePlane( return plane; } -bool CompareCaseInsensitive(string strFirst, string strSecond) +bool CompareCaseInsensitive(const string &a, const string &b) { - // Convert both strings to upper case by transfrom() before compare. - transform(strFirst.begin(), strFirst.end(), strFirst.begin(), static_cast(std::toupper)); - transform(strSecond.begin(), strSecond.end(), strSecond.begin(), static_cast(std::toupper)); - return strFirst == strSecond; + return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin(), [](char aa, char bb) { return toupper(aa) == toupper(bb); }); } XPMPPlaneID XPMPCreatePlaneWithModelName(const char *inModelName, const char *inICAOCode, const char *inAirline, const char *inLivery, XPMPPlaneData_f inDataFunc, void *inRefcon)