From: Bastian Dehn Date: Thu, 12 Mar 2026 18:53:10 +0000 (+0100) Subject: change copy without single char copy X-Git-Tag: 1.1.9^2~3 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=d5b37716c19a7c6dc0fb65d3a7657c5876121ba4;p=mv_none_space.git change copy without single char copy --- diff --git a/src/rename.c b/src/rename.c index fcb2365..da3b2b5 100644 --- a/src/rename.c +++ b/src/rename.c @@ -39,16 +39,19 @@ char* replace(char** src, const char* pattern, const char* replace_str) return NULL; memset(output, 0, outlen); - uint32_t outi = 0; + uint32_t inpos = 0; + uint32_t outpos = 0; for (uint32_t i = 0; i < len; i++) { if (strncmp(*src + i, pattern, plen) == 0) { - memcpy(&output[outi], replace_str, rlen); + memcpy(&output[outpos], *src + inpos, i - inpos); + outpos += i - inpos; + memcpy(&output[outpos], replace_str, rlen); + inpos = i + plen; i += plen - 1; - outi += rlen; - } else { - output[outi++] = (*src)[i]; + outpos += rlen; } } + memcpy(&output[outpos], *src + inpos, len - inpos + 1); free(*src); *src = NULL;