Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
81b22375
Commit
81b22375
authored
Jul 30, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added support for getting and setting the UI language.
parent
a370fa83
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
61 additions
and
9 deletions
+61
-9
locale.c
dlls/kernel/locale.c
+16
-8
ntdll.spec
dlls/ntdll/ntdll.spec
+6
-0
resource.c
dlls/ntdll/resource.c
+36
-1
winternl.h
include/winternl.h
+3
-0
No files found.
dlls/kernel/locale.c
View file @
81b22375
...
...
@@ -503,9 +503,9 @@ static int charset_cmp( const void *name, const void *entry )
}
/***********************************************************************
*
init_default
_lcid
*
get_env
_lcid
*/
static
LCID
init_default
_lcid
(
UINT
*
unix_cp
,
const
char
*
env_str
)
static
LCID
get_env
_lcid
(
UINT
*
unix_cp
,
const
char
*
env_str
)
{
char
*
buf
,
*
lang
,
*
country
,
*
charset
,
*
dialect
,
*
next
;
LCID
ret
=
0
;
...
...
@@ -527,7 +527,7 @@ static LCID init_default_lcid( UINT *unix_cp, const char *env_str )
country
=
strchr
(
lang
,
'_'
);
if
(
country
)
*
country
++=
'\0'
;
ret
=
get_language_id
(
lang
,
country
,
charset
,
dialect
);
if
(
ret
&&
charset
)
if
(
ret
&&
charset
&&
unix_cp
)
{
const
struct
charset_entry
*
entry
;
char
charset_name
[
16
];
...
...
@@ -593,7 +593,7 @@ LANGID WINAPI GetUserDefaultLangID(void)
*/
LANGID
WINAPI
GetSystemDefaultLangID
(
void
)
{
return
GetUserDefaultLangID
(
);
return
LANGIDFROMLCID
(
GetSystemDefaultLCID
()
);
}
...
...
@@ -648,7 +648,9 @@ LCID WINAPI GetSystemDefaultLCID(void)
*/
LANGID
WINAPI
GetUserDefaultUILanguage
(
void
)
{
return
GetUserDefaultLangID
();
LANGID
lang
;
NtQueryDefaultUILanguage
(
&
lang
);
return
lang
;
}
...
...
@@ -666,7 +668,9 @@ LANGID WINAPI GetUserDefaultUILanguage(void)
*/
LANGID
WINAPI
GetSystemDefaultUILanguage
(
void
)
{
return
GetSystemDefaultLangID
();
LANGID
lang
;
NtQueryInstallUILanguage
(
&
lang
);
return
lang
;
}
...
...
@@ -2483,11 +2487,15 @@ void LOCALE_Init(void)
const
union
cptable
*
unix_cp
);
UINT
ansi_cp
=
1252
,
oem_cp
=
437
,
mac_cp
=
10000
,
unix_cp
=
~
0U
;
LCID
lcid
=
init_default_lcid
(
&
unix_cp
,
NULL
)
;
LCID
lcid
;
lcid
=
get_env_lcid
(
NULL
,
NULL
);
NtSetDefaultLocale
(
TRUE
,
lcid
);
lcid
=
init_default_lcid
(
&
unix_cp
,
"LC_CTYPE"
);
lcid
=
get_env_lcid
(
NULL
,
"LC_MESSAGES"
);
NtSetDefaultUILanguage
(
LANGIDFROMLCID
(
lcid
)
);
lcid
=
get_env_lcid
(
&
unix_cp
,
"LC_CTYPE"
);
NtSetDefaultLocale
(
FALSE
,
lcid
);
ansi_cp
=
get_lcid_codepage
(
lcid
);
...
...
dlls/ntdll/ntdll.spec
View file @
81b22375
...
...
@@ -161,6 +161,7 @@
@ stdcall NtPulseEvent(long ptr)
@ stdcall NtQueryAttributesFile(ptr ptr)
@ stdcall NtQueryDefaultLocale(long ptr)
@ stdcall NtQueryDefaultUILanguage(ptr)
@ stdcall NtQueryDirectoryFile(long long ptr ptr ptr ptr long long long ptr long)
@ stdcall NtQueryDirectoryObject(long ptr long long long ptr ptr)
@ stub NtQueryEaFile
...
...
@@ -171,6 +172,7 @@
@ stdcall NtQueryInformationProcess(long long ptr long ptr)
@ stdcall NtQueryInformationThread(long long ptr long ptr)
@ stdcall NtQueryInformationToken(long long ptr long ptr)
@ stdcall NtQueryInstallUILanguage(ptr)
@ stub NtQueryIntervalProfile
@ stub NtQueryIoCompletion
@ stdcall NtQueryKey (long long ptr long ptr)
...
...
@@ -217,6 +219,7 @@
@ stdcall NtSetContextThread(long ptr)
@ stub NtSetDefaultHardErrorPort
@ stdcall NtSetDefaultLocale(long long)
@ stdcall NtSetDefaultUILanguage(long)
@ stub NtSetEaFile
@ stdcall NtSetEvent(long long)
@ stub NtSetHighEventPair
...
...
@@ -740,6 +743,7 @@
@ stdcall ZwPulseEvent(long ptr) NtPulseEvent
@ stdcall ZwQueryAttributesFile(ptr ptr) NtQueryAttributesFile
@ stdcall ZwQueryDefaultLocale(long ptr) NtQueryDefaultLocale
@ stdcall ZwQueryDefaultUILanguage(ptr) NtQueryDefaultUILanguage
@ stdcall ZwQueryDirectoryFile(long long ptr ptr ptr ptr long long long ptr long)NtQueryDirectoryFile
@ stdcall ZwQueryDirectoryObject(long ptr long long long ptr ptr) NtQueryDirectoryObject
@ stub ZwQueryEaFile
...
...
@@ -749,6 +753,7 @@
@ stdcall ZwQueryInformationProcess(long long ptr long ptr) NtQueryInformationProcess
@ stdcall ZwQueryInformationThread(long long ptr long ptr) NtQueryInformationThread
@ stdcall ZwQueryInformationToken(long long ptr long ptr) NtQueryInformationToken
@ stdcall ZwQueryInstallUILanguage(ptr) NtQueryInstallUILanguage
@ stub ZwQueryIntervalProfile
@ stub ZwQueryIoCompletion
@ stdcall ZwQueryKey(long long ptr long ptr) NtQueryKey
...
...
@@ -792,6 +797,7 @@
@ stdcall ZwSetContextThread(long ptr) NtSetContextThread
@ stub ZwSetDefaultHardErrorPort
@ stdcall ZwSetDefaultLocale(long long) NtSetDefaultLocale
@ stdcall ZwSetDefaultUILanguage(long) NtSetDefaultUILanguage
@ stub ZwSetEaFile
@ stdcall ZwSetEvent(long long) NtSetEvent
@ stub ZwSetHighEventPair
...
...
dlls/ntdll/resource.c
View file @
81b22375
...
...
@@ -51,6 +51,7 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
resource
);
static
LCID
user_lcid
,
system_lcid
;
static
LANGID
user_ui_language
,
system_ui_language
;
static
WINE_EXCEPTION_FILTER
(
page_fault
)
{
...
...
@@ -444,6 +445,40 @@ NTSTATUS WINAPI NtQueryDefaultLocale( BOOLEAN user, LCID *lcid )
NTSTATUS
WINAPI
NtSetDefaultLocale
(
BOOLEAN
user
,
LCID
lcid
)
{
if
(
user
)
user_lcid
=
lcid
;
else
system_lcid
=
lcid
;
else
{
system_lcid
=
lcid
;
system_ui_language
=
LANGIDFROMLCID
(
lcid
);
/* there is no separate call to set it */
}
return
STATUS_SUCCESS
;
}
/**********************************************************************
* NtQueryDefaultUILanguage (NTDLL.@)
*/
NTSTATUS
WINAPI
NtQueryDefaultUILanguage
(
LANGID
*
lang
)
{
*
lang
=
user_ui_language
;
return
STATUS_SUCCESS
;
}
/**********************************************************************
* NtSetDefaultUILanguage (NTDLL.@)
*/
NTSTATUS
WINAPI
NtSetDefaultUILanguage
(
LANGID
lang
)
{
user_ui_language
=
lang
;
return
STATUS_SUCCESS
;
}
/**********************************************************************
* NtQueryInstallUILanguage (NTDLL.@)
*/
NTSTATUS
WINAPI
NtQueryInstallUILanguage
(
LANGID
*
lang
)
{
*
lang
=
system_ui_language
;
return
STATUS_SUCCESS
;
}
include/winternl.h
View file @
81b22375
...
...
@@ -1267,12 +1267,14 @@ NTSTATUS WINAPI NtPulseEvent(HANDLE,PULONG);
NTSTATUS
WINAPI
NtQueueApcThread
(
HANDLE
,
PNTAPCFUNC
,
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
);
NTSTATUS
WINAPI
NtQueryAttributesFile
(
const
OBJECT_ATTRIBUTES
*
,
FILE_BASIC_INFORMATION
*
);
NTSTATUS
WINAPI
NtQueryDefaultLocale
(
BOOLEAN
,
LCID
*
);
NTSTATUS
WINAPI
NtQueryDefaultUILanguage
(
LANGID
*
);
NTSTATUS
WINAPI
NtQueryDirectoryFile
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
PVOID
,
ULONG
,
FILE_INFORMATION_CLASS
,
BOOLEAN
,
PUNICODE_STRING
,
BOOLEAN
);
NTSTATUS
WINAPI
NtQueryFullAttributesFile
(
const
OBJECT_ATTRIBUTES
*
,
FILE_NETWORK_OPEN_INFORMATION
*
);
NTSTATUS
WINAPI
NtQueryInformationFile
(
HANDLE
,
PIO_STATUS_BLOCK
,
PVOID
,
LONG
,
FILE_INFORMATION_CLASS
);
NTSTATUS
WINAPI
NtQueryInformationProcess
(
HANDLE
,
PROCESSINFOCLASS
,
PVOID
,
ULONG
,
PULONG
);
NTSTATUS
WINAPI
NtQueryInformationThread
(
HANDLE
,
THREADINFOCLASS
,
PVOID
,
ULONG
,
PULONG
);
NTSTATUS
WINAPI
NtQueryInformationToken
(
HANDLE
,
DWORD
,
LPVOID
,
DWORD
,
LPDWORD
);
NTSTATUS
WINAPI
NtQueryInstallUILanguage
(
LANGID
*
);
NTSTATUS
WINAPI
NtQueryKey
(
HKEY
,
KEY_INFORMATION_CLASS
,
void
*
,
DWORD
,
DWORD
*
);
NTSTATUS
WINAPI
NtQueryMultipleValueKey
(
HKEY
,
PVALENTW
,
ULONG
,
PVOID
,
ULONG
,
PULONG
);
NTSTATUS
WINAPI
NtQueryObject
(
HANDLE
,
OBJECT_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
...
...
@@ -1293,6 +1295,7 @@ NTSTATUS WINAPI NtResumeThread(HANDLE,PULONG);
NTSTATUS
WINAPI
NtSaveKey
(
HKEY
,
HANDLE
);
NTSTATUS
WINAPI
NtSetContextThread
(
HANDLE
,
const
CONTEXT
*
);
NTSTATUS
WINAPI
NtSetDefaultLocale
(
BOOLEAN
,
LCID
);
NTSTATUS
WINAPI
NtSetDefaultUILanguage
(
LANGID
);
NTSTATUS
WINAPI
NtSetEvent
(
HANDLE
,
PULONG
);
NTSTATUS
WINAPI
NtSetInformationFile
(
HANDLE
,
PIO_STATUS_BLOCK
,
PVOID
,
ULONG
,
FILE_INFORMATION_CLASS
);
NTSTATUS
WINAPI
NtSetInformationKey
(
HKEY
,
const
int
,
PVOID
,
ULONG
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment