Merge pull request #518 from alliedmodders/UTIL_ReplaceAll-fix
Fix UTIL_ReplaceAll not properly tracking length (bug 6472)
This commit is contained in:
commit
4d8e76202d
@ -83,11 +83,13 @@ unsigned int UTIL_ReplaceAll(char *subject, size_t maxlength, const char *search
|
|||||||
size_t searchLen = strlen(search);
|
size_t searchLen = strlen(search);
|
||||||
size_t replaceLen = strlen(replace);
|
size_t replaceLen = strlen(replace);
|
||||||
|
|
||||||
char *ptr = subject;
|
char *newptr, *ptr = subject;
|
||||||
unsigned int total = 0;
|
unsigned int total = 0;
|
||||||
while ((ptr = UTIL_ReplaceEx(ptr, maxlength, search, searchLen, replace, replaceLen, caseSensitive)) != NULL)
|
while ((newptr = UTIL_ReplaceEx(ptr, maxlength, search, searchLen, replace, replaceLen, caseSensitive)) != NULL)
|
||||||
{
|
{
|
||||||
total++;
|
total++;
|
||||||
|
maxlength -= newptr - ptr;
|
||||||
|
ptr = newptr;
|
||||||
if (*ptr == '\0')
|
if (*ptr == '\0')
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user