aboutsummaryrefslogtreecommitdiff
path: root/findutils/find.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2014-02-26 15:27:10 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2014-02-26 15:27:10 +0100
commit6885e49ba596239a0b0d3631fd72fc2692fbb65c (patch)
treeb48310d6f49b1d3c78cfafda5450b65455fbe355 /findutils/find.c
parentc472898eaa0ccc1d4d787ae1917a8f40d18889cb (diff)
downloadbusybox-6885e49ba596239a0b0d3631fd72fc2692fbb65c.tar.gz
find: code shrink
function old new delta func_exec 306 285 -21 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'findutils/find.c')
-rw-r--r--findutils/find.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/findutils/find.c b/findutils/find.c
index 5d5e24bfb..044f010b0 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -420,12 +420,10 @@ static char* subst(const char *src, unsigned count, const char* filename)
size_t flen = strlen(filename);
/* we replace each '{}' with filename: growth by strlen-2 */
buf = dst = xmalloc(strlen(src) + count*(flen-2) + 1);
- while ((end = strstr(src, "{}"))) {
- memcpy(dst, src, end - src);
- dst += end - src;
+ while ((end = strstr(src, "{}")) != NULL) {
+ dst = mempcpy(dst, src, end - src);
+ dst = mempcpy(dst, filename, flen);
src = end + 2;
- memcpy(dst, filename, flen);
- dst += flen;
}
strcpy(dst, src);
return buf;