From 73fb6be8290a20dbccc40de328e7860f721966c6 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 10 Apr 2015 14:54:13 -0700 Subject: Merge to XFA: Better fix for snprintf non-termination on windows. TBR=brucedawson@chromium.org Review URL: https://codereview.chromium.org/1073313003 --- core/src/fxcrt/fx_basic_util.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'core/src/fxcrt/fx_basic_util.cpp') diff --git a/core/src/fxcrt/fx_basic_util.cpp b/core/src/fxcrt/fx_basic_util.cpp index 5a40c2b4be..c3df07fef5 100644 --- a/core/src/fxcrt/fx_basic_util.cpp +++ b/core/src/fxcrt/fx_basic_util.cpp @@ -169,6 +169,24 @@ FX_FLOAT FX_atof(FX_BSTR strc) } return bNegative ? -value : value; } + +#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ && _MSC_VER < 1900 +void FXSYS_snprintf(char *str, size_t size, _Printf_format_string_ const char* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + FXSYS_vsnprintf(str, size, fmt, ap); + va_end(ap); +} +void FXSYS_vsnprintf(char *str, size_t size, const char* fmt, va_list ap) +{ + (void) _vsnprintf(str, size, fmt, ap); + if (size) { + str[size - 1] = 0; + } +} +#endif // _FXM_PLATFORM_WINDOWS_ && _MSC_VER < 1900 + static FX_BOOL FX_IsDigit(FX_BYTE ch) { return (ch >= '0' && ch <= '9') ? TRUE : FALSE; -- cgit v1.2.3