static int match_stext(fz_context *ctx, fz_stext_page *page, const char *s, int n) { int orig = n; int c; while (*s) { s += fz_chartorune(&c, (char *)s); if (iswhite(c) && iswhite(charat(ctx, page, n))) { const char *s_next; /* Skip over whitespace in the document */ do n++; while (iswhite(charat(ctx, page, n))); /* Skip over multiple whitespace in the search string */ while (s_next = s + fz_chartorune(&c, (char *)s), iswhite(c)) s = s_next; } else { if (fz_tolower(c) != fz_tolower(charat(ctx, page, n))) return 0; n++; } } return n - orig; }
static inline int fz_strcasecmp(char *a, char *b) { while (fz_tolower(*a) == fz_tolower(*b)) { if (*a++ == 0) return 0; b++; } return fz_tolower(*a) - fz_tolower(*b); }
int fz_strcasecmp(const char *a, const char *b) { while (fz_tolower(*a) == fz_tolower(*b)) { if (*a++ == 0) return 0; b++; } return fz_tolower(*a) - fz_tolower(*b); }
static int match(fz_text_page *page, const char *s, int n) { int orig = n; int c; while (*s) { s += fz_chartorune(&c, (char *)s); if (c == ' ' && charat(page, n) == ' ') { while (charat(page, n) == ' ') n++; } else { if (fz_tolower(c) != fz_tolower(charat(page, n))) return 0; n++; } } return n - orig; }