diff --git a/lib/str.h b/lib/str.h index a2f552c4e..f39234f1e 100644 --- a/lib/str.h +++ b/lib/str.h @@ -263,21 +263,10 @@ INLINE int str_memcmp(const str *s, void *m) { return memcmp(s->s, m, s->len); } INLINE int str_str(const str *s, const char *sub) { - int len = strlen(sub); - void *p, *e; - - p = s->s; - e = p + (s->len - len); - while (p < e) { - p = memchr(p, sub[0], e - p); - if (!p) - return -1; - if (!memcmp(p, sub, len)) - return p - (void *) s->s; - p++; - } - - return -1; + void *p = memmem(s->s, s->len, sub, strlen(sub)); + if (!p) + return -1; + return p - (void *) s->s; } INLINE void str_swap(str *a, str *b) { str t;