diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-23 21:46:02 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-23 21:46:34 +0200 |
commit | 5ace96a71304c2d5d3b8b864df9b4b8ca40f417c (patch) | |
tree | d773109b464a971aaac671548250140607d3523c | |
parent | e4f6bfd6fec87e8eb77f1a9fe34b8b7884ef9748 (diff) | |
download | busybox-w32-5ace96a71304c2d5d3b8b864df9b4b8ca40f417c.tar.gz busybox-w32-5ace96a71304c2d5d3b8b864df9b4b8ca40f417c.tar.bz2 busybox-w32-5ace96a71304c2d5d3b8b864df9b4b8ca40f417c.zip |
ash: use mempcpy() in more places
Most changes are taken from dash.
function old new delta
single_quote 127 129 +2
stack_nputstr 28 29 +1
path_advance 209 202 -7
rmescapes 346 308 -38
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/2 up/down: 3/-45) Total: -42 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | shell/ash.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/shell/ash.c b/shell/ash.c index c8b2adf4e..fa03f8a4e 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -1658,7 +1658,7 @@ static char * | |||
1658 | stack_nputstr(const char *s, size_t n, char *p) | 1658 | stack_nputstr(const char *s, size_t n, char *p) |
1659 | { | 1659 | { |
1660 | p = makestrspace(n, p); | 1660 | p = makestrspace(n, p); |
1661 | p = (char *)memcpy(p, s, n) + n; | 1661 | p = (char *)mempcpy(p, s, n); |
1662 | return p; | 1662 | return p; |
1663 | } | 1663 | } |
1664 | 1664 | ||
@@ -1761,7 +1761,7 @@ single_quote(const char *s) | |||
1761 | q = p = makestrspace(len + 3, p); | 1761 | q = p = makestrspace(len + 3, p); |
1762 | 1762 | ||
1763 | *q++ = '\''; | 1763 | *q++ = '\''; |
1764 | q = (char *)memcpy(q, s, len) + len; | 1764 | q = (char *)mempcpy(q, s, len) + len; |
1765 | *q++ = '\''; | 1765 | *q++ = '\''; |
1766 | s += len; | 1766 | s += len; |
1767 | 1767 | ||
@@ -1775,7 +1775,7 @@ single_quote(const char *s) | |||
1775 | q = p = makestrspace(len + 3, p); | 1775 | q = p = makestrspace(len + 3, p); |
1776 | 1776 | ||
1777 | *q++ = '"'; | 1777 | *q++ = '"'; |
1778 | q = (char *)memcpy(q, s - len, len) + len; | 1778 | q = (char *)mempcpy(q, s - len, len); |
1779 | *q++ = '"'; | 1779 | *q++ = '"'; |
1780 | 1780 | ||
1781 | STADJUST(q - p, p); | 1781 | STADJUST(q - p, p); |
@@ -2453,8 +2453,7 @@ path_advance(const char **path, const char *name) | |||
2453 | growstackblock(); | 2453 | growstackblock(); |
2454 | q = stackblock(); | 2454 | q = stackblock(); |
2455 | if (p != start) { | 2455 | if (p != start) { |
2456 | memcpy(q, start, p - start); | 2456 | q = mempcpy(q, start, p - start); |
2457 | q += p - start; | ||
2458 | *q++ = '/'; | 2457 | *q++ = '/'; |
2459 | } | 2458 | } |
2460 | strcpy(q, name); | 2459 | strcpy(q, name); |
@@ -5949,7 +5948,7 @@ rmescapes(char *str, int flag) | |||
5949 | } | 5948 | } |
5950 | q = r; | 5949 | q = r; |
5951 | if (len > 0) { | 5950 | if (len > 0) { |
5952 | q = (char *)memcpy(q, str, len) + len; | 5951 | q = (char *)mempcpy(q, str, len); |
5953 | } | 5952 | } |
5954 | } | 5953 | } |
5955 | 5954 | ||