diff --git a/src/stralloc.c b/src/stralloc.c index 8c3d1317c5df0d1302e72159c702f1eeea999775..6e5847e8916b0b010b97a9c9ce8165a15a5215e1 100644 --- a/src/stralloc.c +++ b/src/stralloc.c @@ -362,12 +362,15 @@ struct lpc_string *string_replace(struct lpc_string *str, struct lpc_string *ret; INT32 delimeters; char *s,*tmp,*r,*end; + struct mem_searcher searcher; s=str->str; end=s+str->len; delimeters=0; - while((s=MEMMEM(del->str,del->len,s,end-s))) + init_memsearch(&searcher, del->str, del->len, str->len * 2); + + while((s=memory_search(&searcher,s,end-s))) { delimeters++; s+=del->len; @@ -383,7 +386,7 @@ struct lpc_string *string_replace(struct lpc_string *str, s=str->str; r=ret->str; - while((tmp=MEMMEM(del->str,del->len,s,end-s))) + while((tmp=memory_search(&searcher,s,end-s))) { MEMCPY(r,s,tmp-s); r+=tmp-s;