|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  |  | 
|  | #include <windows.h> | 
|  | #include <locale.h> | 
|  | #include <msvcrt.h> | 
|  |  | 
|  | static _locale_t __cdecl init_func(int category, const char *locale); | 
|  | _locale_t (__cdecl *__MINGW_IMP_SYMBOL(_create_locale))(int, const char *) = init_func; | 
|  |  | 
|  | static _locale_t __cdecl null_func(int category, const char *locale) | 
|  | { | 
|  | (void)category; | 
|  | (void)locale; | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | static _locale_t __cdecl init_func(int category, const char *locale) | 
|  | { | 
|  | HMODULE msvcrt = __mingw_get_msvcrt_handle(); | 
|  | _locale_t (__cdecl *func)(int, const char *) = NULL; | 
|  |  | 
|  | if (msvcrt) | 
|  | func = (void*)GetProcAddress(msvcrt, "_create_locale"); | 
|  |  | 
|  | if (!func) | 
|  | func = null_func; | 
|  |  | 
|  | return (__MINGW_IMP_SYMBOL(_create_locale) = func)(category, locale); | 
|  | } |