Reactos
at master 55 lines 1.8 kB view raw
1// 2// locale_update.cpp 3// 4// Copyright (c) Microsoft Corporation. All rights reserved. 5// 6// Encapsulated implementation details of _LocaleUpdate that cannot be defined 7// in the header because they refer to data not exported from the AppCRT DLL. 8// 9#include <corecrt_internal.h> 10 11extern "C" void __acrt_update_locale_info( 12 __acrt_ptd* const ptd, 13 __crt_locale_data** const locale_info 14 ) 15{ 16 if (*locale_info != __acrt_current_locale_data.value() && __acrt_should_sync_with_global_locale(ptd)) 17 { 18 *locale_info = __acrt_update_thread_locale_data(); 19 } 20} 21 22extern "C" void __acrt_update_multibyte_info( 23 __acrt_ptd* const ptd, 24 __crt_multibyte_data** const multibyte_info 25 ) 26{ 27 if (*multibyte_info != __acrt_current_multibyte_data.value() && __acrt_should_sync_with_global_locale(ptd)) 28 { 29 *multibyte_info = __acrt_update_thread_multibyte_data(); 30 } 31} 32 33extern "C" void __acrt_update_locale_info_explicit( 34 __acrt_ptd* const ptd, 35 __crt_locale_data** const locale_info, 36 size_t const current_global_state_index 37 ) 38{ 39 if (*locale_info != __acrt_current_locale_data.value_explicit(current_global_state_index) && __acrt_should_sync_with_global_locale(ptd)) 40 { 41 *locale_info = __acrt_update_thread_locale_data(); 42 } 43} 44 45extern "C" void __acrt_update_multibyte_info_explicit( 46 __acrt_ptd* const ptd, 47 __crt_multibyte_data** const multibyte_info, 48 size_t const current_global_state_index 49 ) 50{ 51 if (*multibyte_info != __acrt_current_multibyte_data.value_explicit(current_global_state_index) && __acrt_should_sync_with_global_locale(ptd)) 52 { 53 *multibyte_info = __acrt_update_thread_multibyte_data(); 54 } 55}