Ejemplo n.º 1
0
int bstrcasecmp(const char* left, size_t leftSize,
                const char* right, size_t rightSize) {
  size_t minSize = leftSize < rightSize ? leftSize : rightSize;
  for (size_t i = 0; i < minSize; ++i) {
    ssize_t ret = chrcasecmp(left[i], right[i]);
    if (ret) return ret;
  }
  return (leftSize > rightSize) - (leftSize < rightSize);
}
Ejemplo n.º 2
0
bool match_regex_at_place(Regex regex, char* text, bool case_insensitive)
{
    if (*regex == NULL)
        return true;
    if (text[0] != '\0'){
        if (regex[0]->type == brackets) {
            if(text[0] >= regex[0]->from && text[0] <= regex[0]->to )
                return true;
        }
        if (regex[0]->type == parenthesis) {
            if (match_regex_at_place(regex[0]->optionA, text, case_insensitive))
                return true;
            else if(match_regex_at_place(regex[0]->optionB, text, case_insensitive))
                return true;
            else return false;
        }
        else if(regex[0]->type == dot || text[0] == regex[0]->single_char ||
                (case_insensitive && chrcasecmp(text[0], regex[0]->single_char)))
            return match_regex_at_place(&regex[1], ++text, case_insensitive);
    }
    return false;
}