Skip to content

Commit 26cff11

Browse files
committed
MSVC fixes
1 parent 736a069 commit 26cff11

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

c89stringutils/c89stringutils_string_extras.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,18 @@ extern void *mock_realloc(void *ptr, size_t size);
2222
extern int mock_vsnprintf(char *str, size_t size, const char *format,
2323
va_list ap);
2424
extern char *mock_strerror(int errnum);
25+
#ifdef _MSC_VER
26+
extern int mock_strerror_s(char *buffer, size_t sizeInBytes, int errnum);
27+
#endif
2528
#define malloc mock_malloc
2629
#define realloc mock_realloc
2730
#define wtf_vsnprintf mock_vsnprintf
2831
#undef vsnprintf
2932
#define vsnprintf mock_vsnprintf
3033
#define strerror mock_strerror
34+
#ifdef _MSC_VER
35+
#define strerror_s mock_strerror_s
36+
#endif
3137
#endif
3238

3339
#if defined(__GNUC__) && __GNUC__ >= 7 && !defined(__clang__)

c89stringutils/tests/test.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@ char *mock_strerror(int errnum) {
5252
return strerror(errnum);
5353
}
5454

55+
#ifdef _MSC_VER
56+
int mock_strerror_s(char *buffer, size_t sizeInBytes, int errnum) {
57+
if (g_mock_strerror_null)
58+
return 22; /* EINVAL */
59+
return strerror_s(buffer, sizeInBytes, errnum);
60+
}
61+
#endif
62+
5563
/* Add definitions that need to be in the test runner's main file. */
5664
GREATEST_MAIN_DEFS();
5765

0 commit comments

Comments
 (0)