FCT_ASSERT( num > 0 );
#if defined(WIN32) && _MSC_VER >= 1400
strncpy_s(dst, num, src, _TRUNCATE);
+ dst[num - 1] = '\0';
#else
- strncpy(dst, src, num - 1);
+ {
+ size_t i;
+
+ for (i = 0; (i < num - 1) && src[i] != '\0'; ++i) {
+ dst[i] = src[i];
+ }
+
+ dst[i] = '\0';
+ }
#endif
- dst[num-1] = '\0';
}
/* Isolate the vsnprintf implementation */
}
FST_TEARDOWN_END()
+ FST_TEST_BEGIN(test_fctstr_safe_cpy)
+ {
+ char *dst;
+ const char *src = "1234567890";
+
+ dst = fctstr_clone(src);
+ fst_check_string_equals(dst, src);
+ free(dst);
+ }
+ FST_TEST_END()
+
FST_TEST_BEGIN(test_switch_rand)
{
int i, c = 0;