Commit 22a1485c authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

oleaut32: Use C locale in VARIANT_BstrFromReal.

parent f5ca0601
......@@ -29,6 +29,8 @@
#include "variant.h"
#include "resource.h"
#include "locale.h"
WINE_DEFAULT_DEBUG_CHANNEL(variant);
extern HMODULE hProxyDll DECLSPEC_HIDDEN;
......@@ -6501,12 +6503,15 @@ static BSTR VARIANT_BstrReplaceDecimal(const WCHAR * buff, LCID lcid, ULONG dwFl
static HRESULT VARIANT_BstrFromReal(DOUBLE dblIn, LCID lcid, ULONG dwFlags,
BSTR* pbstrOut, LPCWSTR lpszFormat)
{
_locale_t locale;
WCHAR buff[256];
if (!pbstrOut)
return E_INVALIDARG;
swprintf( buff, ARRAY_SIZE(buff), lpszFormat, dblIn );
if (!(locale = _create_locale(LC_ALL, "C"))) return E_OUTOFMEMORY;
_swprintf_l(buff, ARRAY_SIZE(buff), lpszFormat, locale, dblIn);
_free_locale(locale);
/* Negative zeroes are disallowed (some applications depend on this).
If buff starts with a minus, and then nothing follows but zeroes
......
......@@ -181,6 +181,17 @@ static inline int WINAPIV swprintf_s(wchar_t *buffer, size_t size, const wchar_t
return ret;
}
static inline int WINAPIV _swprintf_l(wchar_t *buffer, size_t size, const wchar_t* format, _locale_t locale, ...)
{
int ret;
__ms_va_list args;
__ms_va_start(args, locale);
ret = __stdio_common_vswprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, buffer, size, format, locale, args);
__ms_va_end(args);
return ret;
}
static inline int __cdecl _vscwprintf(const wchar_t *format, __ms_va_list args)
{
int ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment