diff --git a/caca/figfont.c b/caca/figfont.c index caa44d5..815c5c4 100644 --- a/caca/figfont.c +++ b/caca/figfont.c @@ -30,8 +30,12 @@ #include "caca_internals.h" #if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3 +# if !HAVE_SPRINTF_S int sprintf_s(char *s, size_t n, const char *fmt, ...) CACA_WEAK; +# endif +# if !HAVE_VSNPRINTF int vsnprintf(char *s, size_t n, const char *fmt, va_list ap) CACA_WEAK; +# endif #endif struct caca_charfont @@ -637,6 +641,7 @@ static uint32_t hsmush(uint32_t ch1, uint32_t ch2, int rule) */ #if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3 +# if !HAVE_SPRINTF_S int sprintf_s(char *s, size_t n, const char *fmt, ...) { va_list args; @@ -646,11 +651,14 @@ int sprintf_s(char *s, size_t n, const char *fmt, ...) va_end(args); return ret; } +# endif +# if !HAVE_VSNPRINTF int vsnprintf(char *s, size_t n, const char *fmt, va_list ap) { return 0; } +# endif #endif /* diff --git a/caca/string.c b/caca/string.c index 22e0af2..963e349 100644 --- a/caca/string.c +++ b/caca/string.c @@ -37,9 +37,13 @@ #include "caca_internals.h" #if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3 +# if !HAVE_VSNPRINTF_S int vsnprintf_s(char *s, size_t n, size_t c, const char *fmt, va_list ap) CACA_WEAK; +# endif +# if !HAVE_VSNPRINTF int vsnprintf(char *s, size_t n, const char *fmt, va_list ap) CACA_WEAK; +# endif #endif /** \brief Set cursor position. @@ -611,15 +615,19 @@ int caca_set_canvas_boundaries(caca_canvas_t *cv, int x, int y, int w, int h) */ #if defined _WIN32 && defined __GNUC__ && __GNUC__ >= 3 +# if !HAVE_VSNPRINTF_S int vsnprintf_s(char *s, size_t n, size_t c, const char *fmt, va_list ap) { return vsnprintf(s, n, fmt, ap); } +# endif +# if !HAVE_VSNPRINTF int vsnprintf(char *s, size_t n, const char *fmt, va_list ap) { return 0; } +# endif #endif /*