Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
d04c895b
Commit
d04c895b
authored
Sep 24, 2015
by
Piotr Caban
Committed by
Alexandre Julliard
Sep 25, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcrt: Pass pthreadlocinfo to update_threadlocinfo_category helper function.
Signed-off-by:
Piotr Caban
<
piotr@codeweavers.com
>
parent
6d9cf491
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
24 deletions
+24
-24
locale.c
dlls/msvcrt/locale.c
+24
-24
No files found.
dlls/msvcrt/locale.c
View file @
d04c895b
...
...
@@ -310,7 +310,7 @@ LCID MSVCRT_locale_to_LCID(const char *locale, unsigned short *codepage)
/* INTERNAL: Set lc_handle, lc_id and lc_category in threadlocinfo struct */
static
BOOL
update_threadlocinfo_category
(
LCID
lcid
,
unsigned
short
cp
,
MSVCRT_
_locale_t
loc
,
int
category
)
MSVCRT_
pthreadlocinfo
locinfo
,
int
category
)
{
char
buf
[
256
],
*
p
;
int
len
;
...
...
@@ -318,25 +318,25 @@ static BOOL update_threadlocinfo_category(LCID lcid, unsigned short cp,
if
(
GetLocaleInfoA
(
lcid
,
LOCALE_ILANGUAGE
|
LOCALE_NOUSEROVERRIDE
,
buf
,
256
))
{
p
=
buf
;
loc
->
loc
info
->
lc_id
[
category
].
wLanguage
=
0
;
locinfo
->
lc_id
[
category
].
wLanguage
=
0
;
while
(
*
p
)
{
loc
->
loc
info
->
lc_id
[
category
].
wLanguage
*=
16
;
locinfo
->
lc_id
[
category
].
wLanguage
*=
16
;
if
(
*
p
<=
'9'
)
loc
->
loc
info
->
lc_id
[
category
].
wLanguage
+=
*
p
-
'0'
;
locinfo
->
lc_id
[
category
].
wLanguage
+=
*
p
-
'0'
;
else
loc
->
loc
info
->
lc_id
[
category
].
wLanguage
+=
*
p
-
'a'
+
10
;
locinfo
->
lc_id
[
category
].
wLanguage
+=
*
p
-
'a'
+
10
;
p
++
;
}
loc
->
loc
info
->
lc_id
[
category
].
wCountry
=
loc
->
loc
info
->
lc_id
[
category
].
wLanguage
;
locinfo
->
lc_id
[
category
].
wCountry
=
locinfo
->
lc_id
[
category
].
wLanguage
;
}
loc
->
loc
info
->
lc_id
[
category
].
wCodePage
=
cp
;
locinfo
->
lc_id
[
category
].
wCodePage
=
cp
;
loc
->
loc
info
->
lc_handle
[
category
]
=
lcid
;
locinfo
->
lc_handle
[
category
]
=
lcid
;
len
=
0
;
len
+=
GetLocaleInfoA
(
lcid
,
LOCALE_SENGLANGUAGE
...
...
@@ -348,18 +348,18 @@ static BOOL update_threadlocinfo_category(LCID lcid, unsigned short cp,
sprintf
(
buf
+
len
,
"%d"
,
cp
);
len
+=
strlen
(
buf
+
len
)
+
1
;
loc
->
loc
info
->
lc_category
[
category
].
locale
=
MSVCRT_malloc
(
len
);
loc
->
loc
info
->
lc_category
[
category
].
refcount
=
MSVCRT_malloc
(
sizeof
(
int
));
if
(
!
loc
->
loc
info
->
lc_category
[
category
].
locale
||
!
loc
->
loc
info
->
lc_category
[
category
].
refcount
)
{
MSVCRT_free
(
loc
->
loc
info
->
lc_category
[
category
].
locale
);
MSVCRT_free
(
loc
->
loc
info
->
lc_category
[
category
].
refcount
);
loc
->
loc
info
->
lc_category
[
category
].
locale
=
NULL
;
loc
->
loc
info
->
lc_category
[
category
].
refcount
=
NULL
;
locinfo
->
lc_category
[
category
].
locale
=
MSVCRT_malloc
(
len
);
locinfo
->
lc_category
[
category
].
refcount
=
MSVCRT_malloc
(
sizeof
(
int
));
if
(
!
locinfo
->
lc_category
[
category
].
locale
||
!
locinfo
->
lc_category
[
category
].
refcount
)
{
MSVCRT_free
(
locinfo
->
lc_category
[
category
].
locale
);
MSVCRT_free
(
locinfo
->
lc_category
[
category
].
refcount
);
locinfo
->
lc_category
[
category
].
locale
=
NULL
;
locinfo
->
lc_category
[
category
].
refcount
=
NULL
;
return
TRUE
;
}
memcpy
(
loc
->
loc
info
->
lc_category
[
category
].
locale
,
buf
,
len
);
*
loc
->
loc
info
->
lc_category
[
category
].
refcount
=
1
;
memcpy
(
locinfo
->
lc_category
[
category
].
locale
,
buf
,
len
);
*
locinfo
->
lc_category
[
category
].
refcount
=
1
;
return
FALSE
;
}
...
...
@@ -1006,7 +1006,7 @@ MSVCRT__locale_t CDECL MSVCRT__create_locale(int category, const char *locale)
}
if
(
lcid
[
MSVCRT_LC_COLLATE
]
&&
(
category
==
MSVCRT_LC_ALL
||
category
==
MSVCRT_LC_COLLATE
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_COLLATE
],
cp
[
MSVCRT_LC_COLLATE
],
loc
,
MSVCRT_LC_COLLATE
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_COLLATE
],
cp
[
MSVCRT_LC_COLLATE
],
loc
->
locinfo
,
MSVCRT_LC_COLLATE
))
{
MSVCRT__free_locale
(
loc
);
return
NULL
;
}
...
...
@@ -1024,7 +1024,7 @@ MSVCRT__locale_t CDECL MSVCRT__create_locale(int category, const char *locale)
CPINFO
cp_info
;
int
j
;
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_CTYPE
],
cp
[
MSVCRT_LC_CTYPE
],
loc
,
MSVCRT_LC_CTYPE
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_CTYPE
],
cp
[
MSVCRT_LC_CTYPE
],
loc
->
locinfo
,
MSVCRT_LC_CTYPE
))
{
MSVCRT__free_locale
(
loc
);
return
NULL
;
}
...
...
@@ -1097,7 +1097,7 @@ MSVCRT__locale_t CDECL MSVCRT__create_locale(int category, const char *locale)
_setmbcp_l
(
loc
->
locinfo
->
lc_id
[
MSVCRT_LC_CTYPE
].
wCodePage
,
lcid
[
MSVCRT_LC_CTYPE
],
loc
->
mbcinfo
);
if
(
lcid
[
MSVCRT_LC_MONETARY
]
&&
(
category
==
MSVCRT_LC_ALL
||
category
==
MSVCRT_LC_MONETARY
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_MONETARY
],
cp
[
MSVCRT_LC_MONETARY
],
loc
,
MSVCRT_LC_MONETARY
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_MONETARY
],
cp
[
MSVCRT_LC_MONETARY
],
loc
->
locinfo
,
MSVCRT_LC_MONETARY
))
{
MSVCRT__free_locale
(
loc
);
return
NULL
;
}
...
...
@@ -1365,7 +1365,7 @@ MSVCRT__locale_t CDECL MSVCRT__create_locale(int category, const char *locale)
}
if
(
lcid
[
MSVCRT_LC_NUMERIC
]
&&
(
category
==
MSVCRT_LC_ALL
||
category
==
MSVCRT_LC_NUMERIC
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_NUMERIC
],
cp
[
MSVCRT_LC_NUMERIC
],
loc
,
MSVCRT_LC_NUMERIC
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_NUMERIC
],
cp
[
MSVCRT_LC_NUMERIC
],
loc
->
locinfo
,
MSVCRT_LC_NUMERIC
))
{
MSVCRT__free_locale
(
loc
);
return
NULL
;
}
...
...
@@ -1471,7 +1471,7 @@ MSVCRT__locale_t CDECL MSVCRT__create_locale(int category, const char *locale)
}
if
(
lcid
[
MSVCRT_LC_TIME
]
&&
(
category
==
MSVCRT_LC_ALL
||
category
==
MSVCRT_LC_TIME
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_TIME
],
cp
[
MSVCRT_LC_TIME
],
loc
,
MSVCRT_LC_TIME
))
{
if
(
update_threadlocinfo_category
(
lcid
[
MSVCRT_LC_TIME
],
cp
[
MSVCRT_LC_TIME
],
loc
->
locinfo
,
MSVCRT_LC_TIME
))
{
MSVCRT__free_locale
(
loc
);
return
NULL
;
}
...
...
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