Blame port/snprintf.c

Packit 7838c8
/**
Packit 7838c8
 * Workaround for lack of snprintf(3) in Visual Studio.  See
Packit 7838c8
 * http://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010/8712996#8712996
Packit 7838c8
 * It's a trivial wrapper around the builtin _vsnprintf_s and
Packit 7838c8
 * _vscprintf functions.
Packit 7838c8
 */
Packit 7838c8
Packit 7838c8
#ifdef _MSC_VER
Packit 7838c8
Packit 7838c8
#include <stdio.h>
Packit 7838c8
#include <stdarg.h>
Packit 7838c8
#include "libport.h"
Packit 7838c8
Packit 7838c8
int _TIFF_vsnprintf_f(char* str, size_t size, const char* format, va_list ap)
Packit 7838c8
{
Packit 7838c8
  int count = -1;
Packit 7838c8
Packit 7838c8
  if (size != 0)
Packit 7838c8
    count = _vsnprintf_s(str, size, _TRUNCATE, format, ap);
Packit 7838c8
  if (count == -1)
Packit 7838c8
    count = _vscprintf(format, ap);
Packit 7838c8
Packit 7838c8
  return count;
Packit 7838c8
}
Packit 7838c8
Packit 7838c8
int _TIFF_snprintf_f(char* str, size_t size, const char* format, ...)
Packit 7838c8
{
Packit 7838c8
  int count;
Packit 7838c8
  va_list ap;
Packit 7838c8
Packit 7838c8
  va_start(ap, format);
Packit 7838c8
  count = vsnprintf(str, size, format, ap);
Packit 7838c8
  va_end(ap);
Packit 7838c8
Packit 7838c8
  return count;
Packit 7838c8
}
Packit 7838c8
Packit 7838c8
#endif // _MSC_VER