diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2012-09-24 18:44:20 -0400 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2012-09-25 18:14:14 -0400 |
commit | 5ae9fa13f5ac640bec113120d540f70971aa635d (patch) | |
tree | 859f54e978977b136151ebac1733c18f1d4de175 /compat/msvcrt | |
parent | de73ae6b1a3ff0398988dc683f94ea07e3bb1372 (diff) | |
download | ffmpeg-5ae9fa13f5ac640bec113120d540f70971aa635d.tar.gz |
MinGW: Use our snprintf/vsnprintf when MinGW's is broken
All versions of MinGW-w64 prior to version 3, as well as
all versions of MinGW32 have broken implementations of
vsnprintf.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'compat/msvcrt')
-rw-r--r-- | compat/msvcrt/snprintf.c | 4 | ||||
-rw-r--r-- | compat/msvcrt/snprintf.h | 38 |
2 files changed, 42 insertions, 0 deletions
diff --git a/compat/msvcrt/snprintf.c b/compat/msvcrt/snprintf.c index 6787aad1c6..c64653fe82 100644 --- a/compat/msvcrt/snprintf.c +++ b/compat/msvcrt/snprintf.c @@ -27,6 +27,10 @@ #include "compat/va_copy.h" #include "libavutil/error.h" +#if defined(__MINGW32__) +#define EOVERFLOW EFBIG +#endif + int avpriv_snprintf(char *s, size_t n, const char *fmt, ...) { va_list ap; diff --git a/compat/msvcrt/snprintf.h b/compat/msvcrt/snprintf.h new file mode 100644 index 0000000000..f02113c5a2 --- /dev/null +++ b/compat/msvcrt/snprintf.h @@ -0,0 +1,38 @@ +/* + * C99-compatible snprintf() and vsnprintf() implementations + * Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef COMPAT_SNPRINTF_H +#define COMPAT_SNPRINTF_H + +#include <stdarg.h> +#include <stdio.h> + +int avpriv_snprintf(char *s, size_t n, const char *fmt, ...); +int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap); + +#undef snprintf +#undef _snprintf +#undef vsnprintf +#define snprintf avpriv_snprintf +#define _snprintf avpriv_snprintf +#define vsnprintf avpriv_vsnprintf + +#endif /* COMPAT_SNPRINTF_H */ |