mirror of
https://github.com/reactos/reactos.git
synced 2025-06-20 06:55:26 +00:00
[UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3
Imported from https://www.nuget.org/packages/Microsoft.Windows.SDK.CRTSource/10.0.22621.3 License: MIT
This commit is contained in:
parent
f1b60c66f0
commit
04e0dc4a7a
568 changed files with 115483 additions and 0 deletions
45
sdk/lib/ucrt/string/wcsncpy.cpp
Normal file
45
sdk/lib/ucrt/string/wcsncpy.cpp
Normal file
|
@ -0,0 +1,45 @@
|
|||
//
|
||||
// wcsncpy.cpp
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// Defines wcsncpy(), which copies a string from one buffer to another. This
|
||||
// function copies at most 'count' characters. If fewer than 'count' characters
|
||||
// are copied, the rest of the buffer is padded with null characters.
|
||||
//
|
||||
#include <string.h>
|
||||
|
||||
#pragma warning(disable:__WARNING_POSTCONDITION_NULLTERMINATION_VIOLATION) // 26036
|
||||
|
||||
|
||||
#ifdef _M_ARM
|
||||
#pragma function(wcsncpy)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
extern "C" wchar_t * __cdecl wcsncpy(
|
||||
wchar_t* const destination,
|
||||
wchar_t const* const source,
|
||||
size_t const count
|
||||
)
|
||||
{
|
||||
size_t remaining = count;
|
||||
|
||||
wchar_t* destination_it = destination;
|
||||
wchar_t const* source_it = source;
|
||||
while (remaining != 0 && (*destination_it++ = *source_it++) != 0)
|
||||
{
|
||||
--remaining;
|
||||
}
|
||||
|
||||
if (remaining != 0)
|
||||
{
|
||||
while (--remaining != 0)
|
||||
{
|
||||
*destination_it++ = L'\0';
|
||||
}
|
||||
}
|
||||
|
||||
return destination;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue