From 88f2ea232a0dceb0241a55d2ff9e30ba30b4d60d 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/xbus/libxplanemp/src/XPMPMultiplayer.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/xbus/libxplanemp/src/XPMPMultiplayer.cpp b/src/xbus/libxplanemp/src/XPMPMultiplayer.cpp index c78f8f23a..e8d525b15 100644 --- a/src/xbus/libxplanemp/src/XPMPMultiplayer.cpp +++ b/src/xbus/libxplanemp/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)