diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-18 22:32:45 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-18 22:32:45 +0000 |
commit | 7cfecc4b36c5bd6e1e85fe8851ebd90fe1edb8f4 (patch) | |
tree | 2d03681bc35891414026aa56eeed0fbc29530124 | |
parent | c8e6e35ba4095846121d5b5a3eee57caa5e8e0fb (diff) | |
download | busybox-w32-7cfecc4b36c5bd6e1e85fe8851ebd90fe1edb8f4.tar.gz busybox-w32-7cfecc4b36c5bd6e1e85fe8851ebd90fe1edb8f4.tar.bz2 busybox-w32-7cfecc4b36c5bd6e1e85fe8851ebd90fe1edb8f4.zip |
xfuncs.c: dietlibc actually HAS fdprintf!
platform.h: define strchrnul for dietlibc
ash: stop using few non-standard functions
-rw-r--r-- | include/platform.h | 13 | ||||
-rw-r--r-- | libbb/xfuncs.c | 4 | ||||
-rw-r--r-- | shell/ash.c | 20 |
3 files changed, 24 insertions, 13 deletions
diff --git a/include/platform.h b/include/platform.h index 860143f7f..1cc978288 100644 --- a/include/platform.h +++ b/include/platform.h | |||
@@ -193,9 +193,18 @@ typedef unsigned long long int uintmax_t; | |||
193 | /* Platforms that haven't got dprintf need to implement fdprintf() in | 193 | /* Platforms that haven't got dprintf need to implement fdprintf() in |
194 | * libbb. This would require a platform.c. It's not going to be cleaned | 194 | * libbb. This would require a platform.c. It's not going to be cleaned |
195 | * out of the tree, so stop saying it should be. */ | 195 | * out of the tree, so stop saying it should be. */ |
196 | #if !defined(__dietlibc__) | ||
197 | /* Needed for: glibc */ | ||
198 | /* Not needed for: dietlibc */ | ||
199 | /* Others: ?? (add as needed) */ | ||
196 | #define fdprintf dprintf | 200 | #define fdprintf dprintf |
197 | #ifdef __dietlibc__ | 201 | #endif |
198 | int dprintf(int fd, const char *format, ...); | 202 | |
203 | #if defined(__dietlibc__) | ||
204 | static ATTRIBUTE_ALWAYS_INLINE char* strchrnul(const char *s, char c) { | ||
205 | while (*s && *s != c) ++s; | ||
206 | return (char*)s; | ||
207 | } | ||
199 | #endif | 208 | #endif |
200 | 209 | ||
201 | /* Don't use lchown with glibc older than 2.1.x ... uC-libc lacks it */ | 210 | /* Don't use lchown with glibc older than 2.1.x ... uC-libc lacks it */ |
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 4790aa140..9efccc542 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c | |||
@@ -411,8 +411,8 @@ char *xasprintf(const char *format, ...) | |||
411 | return string_ptr; | 411 | return string_ptr; |
412 | } | 412 | } |
413 | 413 | ||
414 | #ifdef __dietlibc__ | 414 | #if 0 /* If we will ever meet a libc which hasn't [f]dprintf... */ |
415 | int dprintf(int fd, const char *format, ...) | 415 | int fdprintf(int fd, const char *format, ...) |
416 | { | 416 | { |
417 | va_list p; | 417 | va_list p; |
418 | int r; | 418 | int r; |
diff --git a/shell/ash.c b/shell/ash.c index 2f7cc868a..ae5182ad1 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -5851,7 +5851,7 @@ _rmescapes(char *str, int flag) | |||
5851 | } | 5851 | } |
5852 | q = r; | 5852 | q = r; |
5853 | if (len > 0) { | 5853 | if (len > 0) { |
5854 | q = mempcpy(q, str, len); | 5854 | q = memcpy(q, str, len) + len; |
5855 | } | 5855 | } |
5856 | } | 5856 | } |
5857 | inquotes = (flag & RMESCAPE_QUOTED) ^ RMESCAPE_QUOTED; | 5857 | inquotes = (flag & RMESCAPE_QUOTED) ^ RMESCAPE_QUOTED; |
@@ -8433,7 +8433,7 @@ char * | |||
8433 | stnputs(const char *s, size_t n, char *p) | 8433 | stnputs(const char *s, size_t n, char *p) |
8434 | { | 8434 | { |
8435 | p = makestrspace(n, p); | 8435 | p = makestrspace(n, p); |
8436 | p = mempcpy(p, s, n); | 8436 | p = memcpy(p, s, n) + n; |
8437 | return p; | 8437 | return p; |
8438 | } | 8438 | } |
8439 | 8439 | ||
@@ -8517,7 +8517,7 @@ single_quote(const char *s) { | |||
8517 | q = p = makestrspace(len + 3, p); | 8517 | q = p = makestrspace(len + 3, p); |
8518 | 8518 | ||
8519 | *q++ = '\''; | 8519 | *q++ = '\''; |
8520 | q = mempcpy(q, s, len); | 8520 | q = memcpy(q, s, len) + len; |
8521 | *q++ = '\''; | 8521 | *q++ = '\''; |
8522 | s += len; | 8522 | s += len; |
8523 | 8523 | ||
@@ -8530,7 +8530,7 @@ single_quote(const char *s) { | |||
8530 | q = p = makestrspace(len + 3, p); | 8530 | q = p = makestrspace(len + 3, p); |
8531 | 8531 | ||
8532 | *q++ = '"'; | 8532 | *q++ = '"'; |
8533 | q = mempcpy(q, s, len); | 8533 | q = memcpy(q, s, len) + len; |
8534 | *q++ = '"'; | 8534 | *q++ = '"'; |
8535 | s += len; | 8535 | s += len; |
8536 | 8536 | ||
@@ -8754,11 +8754,12 @@ copynodelist(struct nodelist *lp) | |||
8754 | 8754 | ||
8755 | 8755 | ||
8756 | static char * | 8756 | static char * |
8757 | nodesavestr(char *s) | 8757 | nodesavestr(char *s) |
8758 | { | 8758 | { |
8759 | char *rtn = funcstring; | 8759 | char *rtn = funcstring; |
8760 | 8760 | ||
8761 | funcstring = stpcpy(funcstring, s) + 1; | 8761 | strcpy(funcstring, s); |
8762 | funcstring += strlen(s) + 1; | ||
8762 | return rtn; | 8763 | return rtn; |
8763 | } | 8764 | } |
8764 | 8765 | ||
@@ -12013,10 +12014,11 @@ setvar(const char *name, const char *val, int flags) | |||
12013 | vallen = strlen(val); | 12014 | vallen = strlen(val); |
12014 | } | 12015 | } |
12015 | INTOFF; | 12016 | INTOFF; |
12016 | p = mempcpy(nameeq = ckmalloc(namelen + vallen + 2), name, namelen); | 12017 | nameeq = ckmalloc(namelen + vallen + 2) |
12018 | p = memcpy(nameeq, name, namelen) + namelen; | ||
12017 | if (val) { | 12019 | if (val) { |
12018 | *p++ = '='; | 12020 | *p++ = '='; |
12019 | p = mempcpy(p, val, vallen); | 12021 | p = memcpy(p, val, vallen) + vallen; |
12020 | } | 12022 | } |
12021 | *p = '\0'; | 12023 | *p = '\0'; |
12022 | setvareq(nameeq, flags | VNOSAVE); | 12024 | setvareq(nameeq, flags | VNOSAVE); |