[libcxx-commits] [PATCH] D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small
Tom Anderson via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Mar 26 12:46:50 PDT 2019
thomasanderson updated this revision to Diff 192329.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59727/new/
https://reviews.llvm.org/D59727
Files:
src/support/win32/locale_win32.cpp
Index: src/support/win32/locale_win32.cpp
===================================================================
--- src/support/win32/locale_win32.cpp
+++ src/support/win32/locale_win32.cpp
@@ -87,14 +87,15 @@
int snprintf_l(char *ret, size_t n, locale_t loc, const char *format, ...)
{
-#if !defined(_LIBCPP_MSVCRT)
- __libcpp_locale_guard __current(loc);
-#endif
va_list ap;
va_start( ap, format );
#if defined(_LIBCPP_MSVCRT)
- int result = _vsnprintf_l( ret, n, format, loc, ap );
+ // FIXME: Remove usage of internal CRT function and globals.
+ int result = __stdio_common_vsprintf(
+ _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR,
+ ret, n, format, loc, ap);
#else
+ __libcpp_locale_guard __current(loc);
int result = vsnprintf( ret, n, format, ap );
#endif
va_end(ap);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59727.192329.patch
Type: text/x-patch
Size: 869 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190326/91afb702/attachment-0001.bin>
More information about the libcxx-commits
mailing list