mirror of
https://github.com/reactos/reactos.git
synced 2025-05-23 11:04:52 +00:00

Imported from https://www.nuget.org/packages/Microsoft.Windows.SDK.CRTSource/10.0.22621.3 License: MIT
39 lines
998 B
C++
39 lines
998 B
C++
//
|
|
// wcsncat.cpp
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// Defines wcsncat(), which appends n characters of the source string onto the
|
|
// end of the destination string. The destination string is always null
|
|
// terminated. Unlike wcsncpy, this function does not pad out to 'count'
|
|
// characters.
|
|
//
|
|
#include <string.h>
|
|
|
|
|
|
#pragma warning(disable:__WARNING_POTENTIAL_BUFFER_OVERFLOW_NULLTERMINATED) // 26018
|
|
|
|
extern "C" wchar_t* __cdecl wcsncat(
|
|
wchar_t* const destination,
|
|
wchar_t const* const source,
|
|
size_t const count
|
|
)
|
|
{
|
|
wchar_t* destination_it = destination;
|
|
|
|
// Find the end of the destination string:
|
|
while (*destination_it)
|
|
++destination_it;
|
|
|
|
// Append the source string:
|
|
wchar_t const* source_it = source;
|
|
for (size_t i = 0; i != count; ++i)
|
|
{
|
|
if ((*destination_it++ = *source_it++) == 0)
|
|
return destination;
|
|
}
|
|
|
|
*destination_it = 0;
|
|
|
|
return destination;
|
|
}
|