equal
deleted
inserted
replaced
1 /* $Id$ */ |
1 /* $Id$ */ |
2 |
2 |
3 #include "stdafx.h" |
3 #include "stdafx.h" |
4 #include "string.h" |
4 #include "string.h" |
|
5 |
|
6 #include <stdarg.h> |
5 |
7 |
6 void ttd_strlcat(char *dst, const char *src, size_t size) |
8 void ttd_strlcat(char *dst, const char *src, size_t size) |
7 { |
9 { |
8 assert(size > 0); |
10 assert(size > 0); |
9 for (; size > 0 && *dst != '\0'; --size, ++dst) {} |
11 for (; size > 0 && *dst != '\0'; --size, ++dst) {} |
37 assert(last == NULL || dst <= last); |
39 assert(last == NULL || dst <= last); |
38 for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src; |
40 for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src; |
39 *dst = '\0'; |
41 *dst = '\0'; |
40 return dst; |
42 return dst; |
41 } |
43 } |
|
44 |
|
45 |
|
46 char* CDECL str_fmt(const char* str, ...) |
|
47 { |
|
48 char buf[4096]; |
|
49 va_list va; |
|
50 int len; |
|
51 char* p; |
|
52 |
|
53 va_start(va, str); |
|
54 len = vsprintf(buf, str, va); |
|
55 va_end(va); |
|
56 p = malloc(len + 1); |
|
57 if (p != NULL) memcpy(p, buf, len + 1); |
|
58 return p; |
|
59 } |