[llvm-commits] [llvm] r65236 - /llvm/trunk/include/llvm/ADT/StringExtras.h
Ted Kremenek
kremenek at apple.com
Sat Feb 21 10:25:31 PST 2009
Author: kremenek
Date: Sat Feb 21 12:25:30 2009
New Revision: 65236
URL: http://llvm.org/viewvc/llvm-project?rev=65236&view=rev
Log:
Add version of StringsEqualNoCase that takes two null-terminated C-strings and compares up to 'len' characters. I tend to screw up string comparison functions, so anyone who is interested please review this\!
Modified:
llvm/trunk/include/llvm/ADT/StringExtras.h
Modified: llvm/trunk/include/llvm/ADT/StringExtras.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringExtras.h?rev=65236&r1=65235&r2=65236&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/StringExtras.h (original)
+++ llvm/trunk/include/llvm/ADT/StringExtras.h Sat Feb 21 12:25:30 2009
@@ -159,6 +159,25 @@
}
return RHS[LHS.size()] == 0; // Not too long?
}
+
+/// StringsEqualNoCase - Return true if the two null-terminated C strings are
+/// equal, ignoring
+
+static inline bool StringsEqualNoCase(const char *LHS, const char *RHS,
+ unsigned len) {
+
+ for (unsigned i = 0; i < len; ++i) {
+ if (tolower(LHS[i]) != tolower(RHS[i]))
+ return false;
+
+ // If RHS[i] == 0 then LHS[i] == 0 or otherwise we would have returned
+ // at the previous branch as tolower('\0') == '\0'.
+ if (RHS[i] == 0)
+ return true;
+ }
+
+ return true;
+}
/// CStrInCStrNoCase - Portable version of strcasestr. Locates the first
/// occurance of c-string 's2' in string 's1', ignoring case. Returns
More information about the llvm-commits
mailing list