Exemplo n.º 1
0
inline bool strEqual(bool case_sensitive,
                     const StringData* sd1, const StringData* sd2) {
  if (sd1 == sd2) return true;
  if (sd1->size() != sd2->size()) return false;
  return case_sensitive ?
      (0 == memcmp(sd1->data(), sd2->data(), sd1->size())) :
      bstrcaseeq(sd1->data(), sd2->data(), sd1->size());
}
Exemplo n.º 2
0
char* bstrrcasestr(const char* haystack, size_t haystackSize,
                   const char* needle, size_t needleSize) {
  if (needleSize > haystackSize) {
    return nullptr;
  }
  const char* haystackPtr = haystack + (haystackSize - needleSize);
  for (;;) {
    if (bstrcaseeq(haystackPtr, needle, needleSize)) {
      return (char*)haystackPtr;
    }
    if (haystackPtr == haystack) return nullptr;
    --haystackPtr;
  }
}