diff options
author | skidd13 <skidd13@openttd.org> | 2008-10-29 16:30:41 +0000 |
---|---|---|
committer | skidd13 <skidd13@openttd.org> | 2008-10-29 16:30:41 +0000 |
commit | 38efdc82226fe0c357b3b861d223a7c04e7a7dce (patch) | |
tree | 53300892f4d842ebceb70601ea6a66ea93dd3509 /src/string.cpp | |
parent | a6df995fbb4cbcb379eca903ca2758bfc1ddde6e (diff) | |
download | openttd-38efdc82226fe0c357b3b861d223a7c04e7a7dce.tar.xz |
(svn r14546) -Codechange: Unify string(cpy|cat) functions
-Doc: string(cpy|cat) functions
Diffstat (limited to 'src/string.cpp')
-rw-r--r-- | src/string.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/string.cpp b/src/string.cpp index d0b19f00b..23cd97b92 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -34,17 +34,21 @@ static int CDECL vseprintf(char *str, const char *last, const char *format, va_l void ttd_strlcat(char *dst, const char *src, size_t size) { assert(size > 0); - for (; size > 0 && *dst != '\0'; --size, ++dst) {} - assert(size > 0); - while (--size > 0 && *src != '\0') *dst++ = *src++; - *dst = '\0'; + while (size > 0 && *dst != '\0') { + size--; + dst++; + } + + ttd_strlcpy(dst, src, size); } void ttd_strlcpy(char *dst, const char *src, size_t size) { assert(size > 0); - while (--size > 0 && *src != '\0') *dst++ = *src++; + while (--size > 0 && *src != '\0') { + *dst++ = *src++; + } *dst = '\0'; } @@ -52,10 +56,11 @@ void ttd_strlcpy(char *dst, const char *src, size_t size) char* strecat(char* dst, const char* src, const char* last) { assert(dst <= last); - for (; *dst != '\0'; ++dst) + while (*dst != '\0') { if (dst == last) return dst; - for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src; - *dst = '\0'; + dst++; + } + return strecpy(dst, src, last); } @@ -63,8 +68,11 @@ char* strecat(char* dst, const char* src, const char* last) char* strecpy(char* dst, const char* src, const char* last) { assert(dst <= last); - for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src; + while (dst != last && *src != '\0') { + *dst++ = *src++; + } *dst = '\0'; + if (dst == last && *src != '\0') { #ifdef STRGEN error("String too long for destination buffer"); |