17efc2e3aSOliver Tappe /* 27efc2e3aSOliver Tappe ** Copyright 2011, Oliver Tappe, zooey@hirschkaefer.de. All rights reserved. 3*47a21c5cSAugustin Cavalier ** Distributed under the terms of the MIT License. 47efc2e3aSOliver Tappe */ 57efc2e3aSOliver Tappe 67efc2e3aSOliver Tappe #include <wchar_private.h> 77efc2e3aSOliver Tappe 87efc2e3aSOliver Tappe 97efc2e3aSOliver Tappe wchar_t* __wcsncpy(wchar_t * destIn,const wchar_t * src,size_t n)107efc2e3aSOliver Tappe__wcsncpy(wchar_t* destIn, const wchar_t* src, size_t n) 117efc2e3aSOliver Tappe { 127efc2e3aSOliver Tappe wchar_t* dest = destIn; 137efc2e3aSOliver Tappe const wchar_t* srcEnd = src + n; 147efc2e3aSOliver Tappe const wchar_t* destEnd = dest + n; 157efc2e3aSOliver Tappe 167efc2e3aSOliver Tappe while (src < srcEnd && *src != L'\0') 177efc2e3aSOliver Tappe *dest++ = *src++; 187efc2e3aSOliver Tappe while (dest < destEnd) 197efc2e3aSOliver Tappe *dest++ = L'\0'; 207efc2e3aSOliver Tappe 217efc2e3aSOliver Tappe return destIn; 227efc2e3aSOliver Tappe } 237efc2e3aSOliver Tappe 247efc2e3aSOliver Tappe 257efc2e3aSOliver Tappe B_DEFINE_WEAK_ALIAS(__wcsncpy, wcsncpy); 26