X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fcompat_win32.c;h=25c13f07f5266b0d59278e4bbd9a2431d4809c8b;hb=dac71de305ea729c539a007931878e4fd1a26e73;hp=6802730b0e41b1079d73cddd73d34b9dfa04f7a0;hpb=61b6a9e383b03956684d02be90e363874af9939d;p=fdkaac.git diff --git a/src/compat_win32.c b/src/compat_win32.c index 6802730..25c13f0 100644 --- a/src/compat_win32.c +++ b/src/compat_win32.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -92,6 +93,20 @@ char *aacenc_to_utf8(const char *s) return _strdup(s); } +#if defined(__MINGW32__) && !defined(HAVE__VSCPRINTF) +int _vscprintf(const char *fmt, va_list ap) +{ + static int (*fp_vscprintf)(const char *, va_list) = 0; + if (!fp_vscprintf) { + HANDLE h = GetModuleHandleA("msvcrt.dll"); + FARPROC fp = GetProcAddress(h, "_vscprintf"); + InterlockedCompareExchangePointer(&fp_vscprintf, fp, 0); + } + assert(fp_vscprintf); + return fp_vscprintf(fmt, ap); +} +#endif + int aacenc_fprintf(FILE *fp, const char *fmt, ...) { va_list ap;