[PPL-devel] [GIT] ppl/ppl(master): Improved strcaseeq implementation.
Abramo Bagnara
abramo.bagnara at gmail.com
Thu Feb 23 15:35:59 CET 2012
Module: ppl/ppl
Branch: master
Commit: c5fabffdb88abe18d5df5e2cdf5360361f61858b
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=c5fabffdb88abe18d5df5e2cdf5360361f61858b
Author: Abramo Bagnara <abramo.bagnara at 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 at 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
More information about the PPL-devel
mailing list