mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
VS2022 version 17.2 and later (`_MSC_VER >= 1932`) added new intrinsic functions (`strncmp`, `strncpy`, `wcsncmp`, and `wcsncpy`). As we implement these ourselves, we have to avoid compiler error C2169. This problem surfaced with a recent GitHub Actions update: https://github.com/actions/runner-images/issues/14017 Use `#pragma function(...)` to disable new intrinsic functions.
24 lines
394 B
C
24 lines
394 B
C
|
|
#include <stddef.h>
|
|
#include <tchar.h>
|
|
|
|
#if defined(_MSC_VER) && (defined(_M_ARM) || _MSC_VER >= 1932) // VS2022 version 17.2 and later
|
|
#pragma function(_tcsncmp)
|
|
#endif /* _MSC_VER */
|
|
|
|
int _tcsncmp(const _TCHAR * s1, const _TCHAR * s2, size_t n)
|
|
{
|
|
if(n == 0) return 0;
|
|
|
|
do
|
|
{
|
|
if(*s1 != *s2 ++) return *s1 - *-- s2;
|
|
if(*s1 ++ == 0) break;
|
|
}
|
|
while (-- n != 0);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* EOF */
|