tron@1317: #include "stdafx.h" tron@1317: #include "string.h" tron@1317: tron@1317: void ttd_strlcat(char *dst, const char *src, size_t size) tron@1317: { tron@1317: assert(size > 0); tron@1317: for (; size > 0 && *dst != '\0'; --size, ++dst) {} tron@1317: assert(size > 0); tron@1317: while (--size > 0 && *src != '\0') *dst++ = *src++; tron@1317: *dst = '\0'; tron@1317: } tron@1317: tron@1317: tron@1317: void ttd_strlcpy(char *dst, const char *src, size_t size) tron@1317: { tron@1317: assert(size > 0); tron@1317: while (--size > 0 && *src != '\0') *dst++ = *src++; tron@1317: *dst = '\0'; tron@1317: } tron@1317: tron@1317: tron@1317: char* strecat(char* dst, const char* src, const char* last) tron@1317: { tron@1317: assert(last == NULL || dst <= last); tron@1317: for (; *dst != '\0'; ++dst) tron@1317: if (dst == last) return dst; tron@1317: for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src; tron@1317: *dst = '\0'; tron@1317: return strecpy(dst, src, last); tron@1317: } tron@1317: tron@1317: tron@1317: char* strecpy(char* dst, const char* src, const char* last) tron@1317: { tron@1317: assert(last == NULL || dst <= last); tron@1317: for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src; tron@1317: *dst = '\0'; tron@1317: return dst; tron@1317: }