Mercurial > sdl-ios-xcode
changeset 4758:e2f4e31b41fc
Added SDL_wcslcpy and SDL_wcslcat.
author | dewyatt |
---|---|
date | Tue, 03 Aug 2010 16:52:10 -0400 |
parents | 140be6839185 |
children | 863ba7d1f029 |
files | include/SDL_stdinc.h src/stdlib/SDL_string.c |
diffstat | 2 files changed, 40 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/include/SDL_stdinc.h Sun Jul 25 13:17:31 2010 -0400 +++ b/include/SDL_stdinc.h Tue Aug 03 16:52:10 2010 -0400 @@ -470,6 +470,19 @@ extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t * string); #endif +#ifdef HAVE_WCSLCPY +#define SDL_wcslcpy wcslcpy +#else +extern DECLSPEC size_t SDLCALL SDL_wcslcpy(wchar_t *dst, const wchar_t *src, size_t maxlen); +#endif + +#ifdef HAVE_WCSLCAT +#define SDL_wcslcat wcslcat +#else +extern DECLSPEC size_t SDLCALL SDL_wcslcat(wchar_t *dst, const wchar_t *src, size_t maxlen); +#endif + + #ifdef HAVE_STRLCPY #define SDL_strlcpy strlcpy #else
--- a/src/stdlib/SDL_string.c Sun Jul 25 13:17:31 2010 -0400 +++ b/src/stdlib/SDL_string.c Tue Aug 03 16:52:10 2010 -0400 @@ -363,6 +363,33 @@ } #endif +#ifndef HAVE_WCSLCPY +size_t +SDL_wcslcpy(wchar_t *dst, const wchar_t *src, size_t maxlen) +{ + size_t srclen = SDL_wcslen(src); + if (maxlen > 0) { + size_t len = SDL_min(srclen, maxlen - 1); + SDL_memcpy(dst, src, len * sizeof(wchar_t)); + dst[len] = '\0'; + } + return srclen; +} +#endif + +#ifndef HAVE_WCSLCAT +size_t +SDL_wcslcat(wchar_t *dst, const wchar_t *src, size_t maxlen) +{ + size_t dstlen = SDL_wcslen(dst); + size_t srclen = SDL_wcslen(src); + if (dstlen < maxlen) { + SDL_wcslcpy(dst + dstlen, src, maxlen - dstlen); + } + return dstlen + srclen; +} +#endif + #ifndef HAVE_STRLCPY size_t SDL_strlcpy(char *dst, const char *src, size_t maxlen)