Author: akhaldi Date: Sat Dec 19 10:55:49 2015 New Revision: 70401
URL: http://svn.reactos.org/svn/reactos?rev=70401&view=rev Log: [0.4.0] * Merge the default user locale fixes by Eric Kohl in revisions 70389, 70398 and 70400. CORE-5989
Modified: branches/ros-branch-0_4_0/ (props changed) branches/ros-branch-0_4_0/reactos/ (props changed) branches/ros-branch-0_4_0/reactos/base/setup/usetup/settings.c branches/ros-branch-0_4_0/reactos/boot/bootdata/hivedef.inf branches/ros-branch-0_4_0/reactos/dll/win32/syssetup/install.c
Propchange: branches/ros-branch-0_4_0/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Dec 19 10:55:49 2015 @@ -1 +1 @@ -/trunk:70000-70321,70323-70324,70328-70337,70339-70340,70347,70349,70354-70358,70360,70363,70369,70373,70375-70378,70381,70384-70385,70387-70388 +/trunk:70000-70321,70323-70324,70328-70337,70339-70340,70347,70349,70354-70358,70360,70363,70369,70373,70375-70378,70381,70384-70385,70387-70389,70398,70400
Propchange: branches/ros-branch-0_4_0/reactos/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Dec 19 10:55:49 2015 @@ -20,4 +20,4 @@ /branches/usb-bringup:51335,51337,51341-51343,51348,51350,51353,51355,51365-51369,51372,51384-54388,54396-54398,54736-54737,54752-54754,54756-54760,54762,54764-54765,54767-54768,54772,54774-54777,54781,54787,54790-54792,54797-54798,54806,54808,54834-54838,54843,54850,54852,54856,54858-54859 /branches/usb-bringup-trunk:55019-55543,55548-55554,55556-55567 /branches/wlan-bringup:54809-54998 -/trunk/reactos:70000-70321,70323-70324,70328-70337,70339-70340,70347,70349,70354-70358,70360,70363,70369,70373,70375-70378,70381,70384-70385,70387-70388 +/trunk/reactos:70000-70321,70323-70324,70328-70337,70339-70340,70347,70349,70354-70358,70360,70363,70369,70373,70375-70378,70381,70384-70385,70387-70389,70398,70400
Modified: branches/ros-branch-0_4_0/reactos/base/setup/usetup/settings.c URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_0/reactos/base/se... ============================================================================== --- branches/ros-branch-0_4_0/reactos/base/setup/usetup/settings.c [iso-8859-1] (original) +++ branches/ros-branch-0_4_0/reactos/base/setup/usetup/settings.c [iso-8859-1] Sat Dec 19 10:55:49 2015 @@ -811,6 +811,43 @@ if (LanguageId == NULL) return FALSE;
+ DPRINT("LanguageId: %S\n", LanguageId); + + /* Open the default users locale key */ + RtlInitUnicodeString(&KeyName, + L"\Registry\User\.DEFAULT\Control Panel\International"); + + InitializeObjectAttributes(&ObjectAttributes, + &KeyName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + + Status = NtOpenKey(&KeyHandle, + KEY_SET_VALUE, + &ObjectAttributes); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtOpenKey() failed (Status %lx)\n", Status); + return FALSE; + } + + /* Set default user locale */ + RtlInitUnicodeString(&ValueName, + L"Locale"); + Status = NtSetValueKey(KeyHandle, + &ValueName, + 0, + REG_SZ, + (PVOID)LanguageId, + (wcslen(LanguageId) + 1) * sizeof(WCHAR)); + NtClose(KeyHandle); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status); + return FALSE; + } + /* Skip first 4 zeroes */ if (wcslen(LanguageId) >= 4) LanguageId += 4;
Modified: branches/ros-branch-0_4_0/reactos/boot/bootdata/hivedef.inf URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_0/reactos/boot/bo... ============================================================================== --- branches/ros-branch-0_4_0/reactos/boot/bootdata/hivedef.inf [iso-8859-1] (original) +++ branches/ros-branch-0_4_0/reactos/boot/bootdata/hivedef.inf [iso-8859-1] Sat Dec 19 10:55:49 2015 @@ -152,44 +152,7 @@
; International keys HKCU,"Control Panel\International",,0x00000012 -HKCU,"Control Panel\International","Locale",0x00000000,"0409" -HKCU,"Control Panel\International","iCalenderType",2,"1" -HKCU,"Control Panel\International","iCountry",2,"1" -HKCU,"Control Panel\International","iCurrDigits",2,"2" -HKCU,"Control Panel\International","iCurrency",2,"0" -HKCU,"Control Panel\International","iDate",2,"0" -HKCU,"Control Panel\International","iDigits",2,"2" -HKCU,"Control Panel\International","iFirstDayOfWeek",2,"6" -HKCU,"Control Panel\International","iFirstDayOfYear",2,"0" -HKCU,"Control Panel\International","iLZero",2,"1" -HKCU,"Control Panel\International","iMeasure",2,"1" -HKCU,"Control Panel\International","iNegCurr",2,"0" -HKCU,"Control Panel\International","iNegNumber",2,"1" -HKCU,"Control Panel\International","iTime",2,"0" -HKCU,"Control Panel\International","iTimePrefix",2,"0" -HKCU,"Control Panel\International","iTLZero",2,"0" -HKCU,"Control Panel\International","NumShape",2,"1" -HKCU,"Control Panel\International","s1159",2,"AM" -HKCU,"Control Panel\International","s2359",2,"PM" -HKCU,"Control Panel\International","sCountry",2,"United States" -HKCU,"Control Panel\International","sCurrency",2,"$" -HKCU,"Control Panel\International","sDate",2,"/" -HKCU,"Control Panel\International","sDecimal",2,"." -HKCU,"Control Panel\International","sGrouping",2,"3;0" -HKCU,"Control Panel\International","sLanguage",2,"ENU" -HKCU,"Control Panel\International","sList",2,"," -HKCU,"Control Panel\International","sLongDate",2,"dddd, MMMM dd, yyyy" -HKCU,"Control Panel\International","sMonDecimalSep",2,"." -HKCU,"Control Panel\International","sMonGrouping",2,"3;0" -HKCU,"Control Panel\International","sMonThousandSep",2,"," -HKCU,"Control Panel\International","sNativeDigits",2,"0123456789" -HKCU,"Control Panel\International","sNegativeSign",2,"-" -HKCU,"Control Panel\International","sPositiveSign",2,"" -HKCU,"Control Panel\International","sShortDate",2,"M/d/yyyy" -HKCU,"Control Panel\International","sThousand",2,"," -HKCU,"Control Panel\International","sTime",2,":" -HKCU,"Control Panel\International","sTimeFormat",2,"h:mm:ss tt" -HKCU,"Control Panel\International\Geo","Nation",0x00000000,"1" +HKCU,"Control Panel\International\Geo",,0x00000012
; Cursors Schemes HKCU,"Control Panel\Cursors",,,"ReactOS Default"
Modified: branches/ros-branch-0_4_0/reactos/dll/win32/syssetup/install.c URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_0/reactos/dll/win... ============================================================================== --- branches/ros-branch-0_4_0/reactos/dll/win32/syssetup/install.c [iso-8859-1] (original) +++ branches/ros-branch-0_4_0/reactos/dll/win32/syssetup/install.c [iso-8859-1] Sat Dec 19 10:55:49 2015 @@ -30,6 +30,7 @@
#include <tchar.h> #include <wincon.h> +#include <winnls.h> #include <winsvc.h> #include <userenv.h> #include <shlobj.h> @@ -974,7 +975,117 @@ return 0; }
-DWORD WINAPI + +static +VOID +InitializeDefaultUserLocale(VOID) +{ + WCHAR szBuffer[80]; + PWSTR ptr; + HKEY hLocaleKey; + DWORD ret; + DWORD dwSize; + LCID lcid; + INT i; + + struct {LCTYPE LCType; PWSTR pValue;} LocaleData[] = { + /* Number */ + {LOCALE_SDECIMAL, L"sDecimal"}, + {LOCALE_STHOUSAND, L"sThousand"}, + {LOCALE_SNEGATIVESIGN, L"sNegativeSign"}, + {LOCALE_SPOSITIVESIGN, L"sPositiveSign"}, + {LOCALE_SGROUPING, L"sGrouping"}, + {LOCALE_SLIST, L"sList"}, + {LOCALE_SNATIVEDIGITS, L"sNativeDigits"}, + {LOCALE_INEGNUMBER, L"iNegNumber"}, + {LOCALE_IDIGITS, L"iDigits"}, + {LOCALE_ILZERO, L"iLZero"}, + {LOCALE_IMEASURE, L"iMeasure"}, + {LOCALE_IDIGITSUBSTITUTION, L"NumShape"}, + + /* Currency */ + {LOCALE_SCURRENCY, L"sCurrency"}, + {LOCALE_SMONDECIMALSEP, L"sMonDecimalSep"}, + {LOCALE_SMONTHOUSANDSEP, L"sMonThousandSep"}, + {LOCALE_SMONGROUPING, L"sMonGrouping"}, + {LOCALE_ICURRENCY, L"iCurrency"}, + {LOCALE_INEGCURR, L"iNegCurr"}, + {LOCALE_ICURRDIGITS, L"iCurrDigits"}, + + /* Time */ + {LOCALE_STIMEFORMAT, L"sTimeFormat"}, + {LOCALE_STIME, L"sTime"}, + {LOCALE_S1159, L"s1159"}, + {LOCALE_S2359, L"s2359"}, + {LOCALE_ITIME, L"iTime"}, + {LOCALE_ITIMEMARKPOSN, L"iTimePrefix"}, + {LOCALE_ITLZERO, L"iTLZero"}, + + /* Date */ + {LOCALE_SLONGDATE, L"sLongDate"}, + {LOCALE_SSHORTDATE, L"sShortDate"}, + {LOCALE_SDATE, L"sDate"}, + {LOCALE_IFIRSTDAYOFWEEK, L"iFirstDayOfWeek"}, + {LOCALE_IFIRSTWEEKOFYEAR, L"iFirstWeekOfYear"}, + {LOCALE_IDATE, L"iDate"}, + {LOCALE_ICALENDARTYPE, L"iCalendarType"}, + + /* Misc */ + {LOCALE_SCOUNTRY, L"sCountry"}, + {LOCALE_SLANGUAGE, L"sLanguage"}, + {LOCALE_ICOUNTRY, L"iCountry"}, + {0, NULL}}; + + ret = RegOpenKeyExW(HKEY_USERS, + L".DEFAULT\Control Panel\International", + 0, + KEY_READ | KEY_WRITE, + &hLocaleKey); + if (ret != ERROR_SUCCESS) + { + return; + } + + dwSize = 9 * sizeof(WCHAR); + ret = RegQueryValueExW(hLocaleKey, + L"Locale", + NULL, + NULL, + (PBYTE)szBuffer, + &dwSize); + if (ret != ERROR_SUCCESS) + goto done; + + lcid = (LCID)wcstoul(szBuffer, &ptr, 16); + if (lcid == 0) + goto done; + + i = 0; + while (LocaleData[i].pValue != NULL) + { + if (GetLocaleInfo(lcid, + LocaleData[i].LCType | LOCALE_NOUSEROVERRIDE, + szBuffer, + sizeof(szBuffer) / sizeof(WCHAR))) + { + RegSetValueExW(hLocaleKey, + LocaleData[i].pValue, + 0, + REG_SZ, + (PBYTE)szBuffer, + (wcslen(szBuffer) + 1) * sizeof(WCHAR)); + } + + i++; + } + +done: + RegCloseKey(hLocaleKey); +} + + +DWORD +WINAPI InstallReactOS(HINSTANCE hInstance) { TCHAR szBuffer[MAX_PATH]; @@ -996,6 +1107,8 @@
CreateTempDir(L"TEMP"); CreateTempDir(L"TMP"); + + InitializeDefaultUserLocale();
if (GetWindowsDirectory(szBuffer, sizeof(szBuffer) / sizeof(TCHAR))) {