Better implementation of CompareCaseInsensitive.

This commit is contained in:
Mathew Sutcliffe
2015-09-25 21:51:24 +01:00
parent ed98dcedc6
commit 88f2ea232a

View File

@@ -348,12 +348,9 @@ XPMPPlaneID XPMPCreatePlane(
return plane; 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. return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin(), [](char aa, char bb) { return toupper(aa) == toupper(bb); });
transform(strFirst.begin(), strFirst.end(), strFirst.begin(), static_cast<int (*)(int)>(std::toupper));
transform(strSecond.begin(), strSecond.end(), strSecond.begin(), static_cast<int (*)(int)>(std::toupper));
return strFirst == strSecond;
} }
XPMPPlaneID XPMPCreatePlaneWithModelName(const char *inModelName, const char *inICAOCode, const char *inAirline, const char *inLivery, XPMPPlaneData_f inDataFunc, void *inRefcon) XPMPPlaneID XPMPCreatePlaneWithModelName(const char *inModelName, const char *inICAOCode, const char *inAirline, const char *inLivery, XPMPPlaneData_f inDataFunc, void *inRefcon)