Browse Source

TT#45472 use memmem() for str_str()

also fixes an off-by-one bug of the original str_str()

Change-Id: Ic781f963eea90e3d29ed856c8b00f150eedb139b
changes/89/25389/3
Richard Fuchs 7 years ago
parent
commit
01c5e5075d
1 changed files with 4 additions and 15 deletions
  1. +4
    -15
      lib/str.h

+ 4
- 15
lib/str.h View File

@ -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;


Loading…
Cancel
Save