_WCRTLINK CHAR_TYPE *__F_NAME(strncat,wcsncat) ( CHAR_TYPE *dst, const CHAR_TYPE *t, size_t n ) { #if defined( _M_I86 ) && !defined(__WIDECHAR__) if( n ) { return( _fast_strncat( dst, t, n ) ); } return( dst ); #else CHAR_TYPE *s; #ifdef __WIDECHAR__ s = dst + wcslen( dst ); #else s = memchr( dst, NULLCHAR, ~0u ); #endif while( n != 0 ) { *s = *t; if( *s == NULLCHAR ) break; ++s; ++t; --n; } *s = NULLCHAR; return( dst ); #endif }
_WCRTLINK char _WCFAR *_fstrncat( char _WCFAR *dst, const char _WCFAR *t, size_t n ) { #ifdef M_I86 if( n ) { return( _fast_strncat( dst, t, n ) ); } return( dst ); #else char _WCFAR *s; s = _fmemchr( dst, '\0', ~0 ); while( n != 0 ) { *s = *t; if( *s == '\0' ) break; ++s; ++t; --n; } *s = '\0'; return( dst ); #endif }