Module: wine Branch: master Commit: 59c2201a9cd128eeaf3c93ba2d8f9e6e0ced3679 URL: http://source.winehq.org/git/wine.git/?a=commit;h=59c2201a9cd128eeaf3c93ba2d...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Apr 15 14:25:34 2010 +0200
msvcrt: Add helper function that returns current locale.
---
dlls/msvcrt/locale.c | 10 ++++++++++ dlls/msvcrt/main.c | 1 + dlls/msvcrt/msvcrt.h | 2 ++ 3 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c index c30b907..45547ae 100644 --- a/dlls/msvcrt/locale.c +++ b/dlls/msvcrt/locale.c @@ -317,6 +317,16 @@ static inline void swap_pointers(void **p1, void **p2) { *p2 = hlp; }
+/* INTERNAL: returns _locale_t struct for current locale */ +MSVCRT__locale_t get_locale(void) { + thread_data_t *data = msvcrt_get_thread_data(); + + if(!data || !data->locale) + return MSVCRT_locale; + + return data->locale; +} +
/********************************************************************* * wsetlocale (MSVCRT.@) diff --git a/dlls/msvcrt/main.c b/dlls/msvcrt/main.c index a8b77e1..e2184b3 100644 --- a/dlls/msvcrt/main.c +++ b/dlls/msvcrt/main.c @@ -69,6 +69,7 @@ static inline void msvcrt_free_tls_mem(void) HeapFree(GetProcessHeap(),0,tls->asctime_buffer); HeapFree(GetProcessHeap(),0,tls->wasctime_buffer); HeapFree(GetProcessHeap(),0,tls->strerror_buffer); + _free_locale(tls->locale); } HeapFree(GetProcessHeap(), 0, tls); } diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 34d1c9e..9b99cd7 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -115,6 +115,7 @@ struct __thread_data { MSVCRT_unexpected_function unexpected_handler; MSVCRT__se_translator_function se_translator; EXCEPTION_RECORD *exc_record; + struct MSVCRT_localeinfo_struct *locale; };
typedef struct __thread_data thread_data_t; @@ -791,6 +792,7 @@ typedef struct MSVCRT_localeinfo_struct } MSVCRT__locale_tstruct, *MSVCRT__locale_t;
extern MSVCRT__locale_t MSVCRT_locale; +MSVCRT__locale_t get_locale(void); void __cdecl _free_locale(MSVCRT__locale_t);
#ifndef __WINE_MSVCRT_TEST