
Module: ppl/ppl Branch: master Commit: c5fabffdb88abe18d5df5e2cdf5360361f61858b URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=c5fabffdb88ab...
Author: Abramo Bagnara abramo.bagnara@gmail.com Date: Thu Feb 23 15:35:54 2012 +0100
Improved strcaseeq implementation.
---
src/ppl-config.cc.in | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/ppl-config.cc.in b/src/ppl-config.cc.in index 167d515..448f354 100644 --- a/src/ppl-config.cc.in +++ b/src/ppl-config.cc.in @@ -164,16 +164,19 @@ void internal_error() { fatal("internal error: please submit a bug report to ppl-devel@cs.unipr.it"); }
+inline char to_lower(char c) { + return static_cast<char>(tolower(static_cast<int>(static_cast<unsigned char>(c)))); +} + bool strcaseeq(const char* s1, const char* s2) { - while (*s1 != 0 && *s2 != 0 - && tolower(static_cast<unsigned char>(*s1)) - == tolower(static_cast<unsigned char>(*s2))) { + while (*s1 != 0) { + if (*s2 == 0 || to_lower(*s1) != to_lower(*s2)) + return false; ++s1; ++s2; } - return tolower(static_cast<unsigned char>(*s1)) - == tolower(static_cast<unsigned char>(*s2)); + return *s2 == 0; }
void