From a36b2f010ee5371840eccab3ed1fba37e6a212af Mon Sep 17 00:00:00 2001 From: Kamil Hornicek Date: Mon, 16 Sep 2013 11:55:50 +0000 Subject: [PATCH] [CRT] Check global_locale directly in setmbcp_l to prevent an endless recursion (__get_MSVCRT_locale -> __init_global_locale -> MSVCRT__create_locale -> _setmbcp_l -> __get_MSVCRT_locale...) when global_locale is NULL. [NLS] Add c_20127.nls generated using Wine's CP tables. svn path=/trunk/; revision=60158 --- reactos/boot/bootdata/hivesys.inf | 1 + reactos/lib/sdk/crt/mbstring/_setmbcp.c | 2 +- reactos/media/nls/CMakeLists.txt | 1 + reactos/media/nls/c_20127.nls | Bin 0 -> 66082 bytes 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 reactos/media/nls/c_20127.nls diff --git a/reactos/boot/bootdata/hivesys.inf b/reactos/boot/bootdata/hivesys.inf index 47a7c8c76f7..13c645a6ba9 100644 --- a/reactos/boot/bootdata/hivesys.inf +++ b/reactos/boot/bootdata/hivesys.inf @@ -830,6 +830,7 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10007",0x00000000,"c_10007 HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10029",0x00000000,"c_10029.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10079",0x00000000,"c_10079.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10081",0x00000000,"c_10081.nls" +HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","20127",0x00000000,"c_20127.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","20866",0x00000000,"c_20866.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","21866",0x00000000,"c_21866.nls" HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28591",0x00000000,"c_28591.nls" diff --git a/reactos/lib/sdk/crt/mbstring/_setmbcp.c b/reactos/lib/sdk/crt/mbstring/_setmbcp.c index c91e7f9ae3d..bae42acd028 100644 --- a/reactos/lib/sdk/crt/mbstring/_setmbcp.c +++ b/reactos/lib/sdk/crt/mbstring/_setmbcp.c @@ -206,7 +206,7 @@ int _setmbcp_l(int cp, LCID lcid, MSVCRT_pthreadmbcinfo mbcinfo) } mbcinfo->mbcodepage = newcp; - if(MSVCRT_locale && mbcinfo == MSVCRT_locale->mbcinfo) + if(global_locale && mbcinfo == MSVCRT_locale->mbcinfo) memcpy(_mbctype, MSVCRT_locale->mbcinfo->mbctype, sizeof(_mbctype)); return 0; diff --git a/reactos/media/nls/CMakeLists.txt b/reactos/media/nls/CMakeLists.txt index f13629633dd..b8400fb266c 100644 --- a/reactos/media/nls/CMakeLists.txt +++ b/reactos/media/nls/CMakeLists.txt @@ -44,6 +44,7 @@ list(APPEND NLS_FILES c_10029.nls c_10079.nls c_10081.nls + c_20127.nls c_20866.nls c_21866.nls c_28591.nls diff --git a/reactos/media/nls/c_20127.nls b/reactos/media/nls/c_20127.nls new file mode 100644 index 0000000000000000000000000000000000000000..10febdb976391ce5281ce8471b673cceb05f4d70 GIT binary patch literal 66082 zcmeI&30E4)76BC`1I~jxj6(3T_xt6hq8MnXfvxx@km= z^UQgi^JeD#Zymd9$$+gI>M>=LA2&=i+10hjO&F5_LihxhRTKEy}(7@y!% zT)}7f9ADr|e1)&^4Zg*9_#QvtNBo4J@e6*%Z}=To(E$&x;W}>MCcNlG7rN1dURdZu zKL&6Mw{Zt|aS!+L01xp9gBXGj!|>~h9wUGej3S5-#xRaBB6xxcL@|jN;+VoyOk)PK zn8Q34u!sbf@C?g%jwDh@BZC!WkwYGuhkV0+c^nuS4Ti?X!;vQw(aBhR>gn{% z?A-jqVq)pp^7CXWomt7|@~dlw;`+ws)^=&<#cp|TzjAO`J$hMtb^KcXLtO31MkP@b zPd4KdYu6IFeaE{m(tE4qH$wwXjD|EK8o^lH#9@3+BO#J;BAeGJYUH*{CZx2lQI%>S zW6EgODZyMY7s|V3e9bB0Lbwnqx<%y4`oxArH%$@U$F@z;wZuzKncg*JrtFm2JyYiP zPs+kUqMBGbGNruY-ha@kgvM4)B_g78>y+`5+1artGCQZYu5n~<&88;O(KrZXBE@*= zrP3Q&Lo6rcbFC}0Z& zG&d6riJR**$(iZdxrL0LT*>8iyCxf3ViI;cdzzc6*n_0FyI-$4#~0sbB`2#o>6y^X zoW@BK@Jxq`Hv}>xE2fNQP43evZvHcrA6p$?Gucn4m>l86hAB?+GrBpsWr~vkjcvOb z!l|999VZ8Rk_9#S#MVscd}Y3}aNw53!^Oiy)k%vM_7192Hh1A;U3#r=eT>M`$WAoHT_k!_4=*X zYaMI%H;wh=V<@B}nmRSF%`|IPFfrxvq}?uYvsO(+UOfr>l;%P${Yj<0y=jlfNqhFW zgS5L2@`#zm=hwuuCQdc_?d=;k+P@`=BF_5*J=Sn%*Y-f;eFFPfGWpV>6wIpvJ7xPZ z&uWUjWs3G5j+*K8lU`H6LLm~-q<&0fN?&A{o_4OZq`M`V&^I0O`Ouh5ns2!1eKaDN z%NI>z{S9Frka^Rt8Qkb-aMBF3e;sI6dNZ5bGN+oum-JUGP3qgg%_r=-<9(+2zinuK zZp~-fzuaA4wV|)s%P}uFG-A-M9hrP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1^$r&;nF{H*<3UQC_n)UP=Epypa2CZKmiI+fC3bt00k&O z0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3btz`s?X=iho`ye|s0LBP^TrBc1p zCqskMVRd%Bd?j-2W_OR}^AF4N^&5}daFzB?(c!sv{l-miXIFPmuhrK-aO?J+yZ7!t zc=%{=$T#el$AOX2U}$VS9C