1 /**
2 * Workaround for lack of snprintf(3) in Visual Studio. See
3 * http://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010/8712996#8712996
4 * It's a trivial wrapper around the builtin _vsnprintf_s and
5 * _vscprintf functions.
6 */
7
8 #ifdef _MSC_VER
9
10 #include <stdio.h>
11 #include <stdarg.h>
12 #include "libport.h"
13
_TIFF_vsnprintf_f(char * str,size_t size,const char * format,va_list ap)14 int _TIFF_vsnprintf_f(char* str, size_t size, const char* format, va_list ap)
15 {
16 int count = -1;
17
18 if (size != 0)
19 count = _vsnprintf_s(str, size, _TRUNCATE, format, ap);
20 if (count == -1)
21 count = _vscprintf(format, ap);
22
23 return count;
24 }
25
_TIFF_snprintf_f(char * str,size_t size,const char * format,...)26 int _TIFF_snprintf_f(char* str, size_t size, const char* format, ...)
27 {
28 int count;
29 va_list ap;
30
31 va_start(ap, format);
32 count = vsnprintf(str, size, format, ap);
33 va_end(ap);
34
35 return count;
36 }
37
38 #endif // _MSC_VER
39