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
4b5c67ee
Commit
4b5c67ee
authored
Jan 23, 2020
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
unicode: Remove case mappings that don't round-trip.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
bd9d83b7
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
64 additions
and
76 deletions
+64
-76
locale.c
dlls/kernel32/tests/locale.c
+9
-11
rtlstr.c
dlls/ntdll/tests/rtlstr.c
+0
-2
casemap.c
libs/port/casemap.c
+40
-63
l_intl.nls
loader/l_intl.nls
+0
-0
make_unicode
tools/make_unicode
+15
-0
No files found.
dlls/kernel32/tests/locale.c
View file @
4b5c67ee
...
...
@@ -6090,7 +6090,6 @@ static void test_SpecialCasing(void)
WCHAR
exp
;
/* 0 if self */
WCHAR
exp_ling
;
/* 0 if exp */
BOOL
todo
;
BOOL
todo_ling
;
}
tests
[]
=
{
{
deDEW
,
LCMAP_UPPERCASE
,
0x00DF
},
/* LATIN SMALL LETTER SHARP S */
...
...
@@ -6199,17 +6198,17 @@ static void test_SpecialCasing(void)
{
enUSW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
},
/* LATIN SMALL LETTER I */
{
ltLTW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
},
/* LATIN SMALL LETTER I */
{
trTRW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
FALSE
,
TRUE
},
/* LATIN SMALL LETTER I */
{
TRTRW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
FALSE
,
TRUE
},
/* LATIN SMALL LETTER I */
{
azCyrlazW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
FALSE
,
TRUE
},
/* LATIN SMALL LETTER I */
{
azLatnazW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
FALSE
,
TRUE
},
/* LATIN SMALL LETTER I */
{
trTRW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
TRUE
},
/* LATIN SMALL LETTER I */
{
TRTRW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
TRUE
},
/* LATIN SMALL LETTER I */
{
azCyrlazW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
TRUE
},
/* LATIN SMALL LETTER I */
{
azLatnazW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
TRUE
},
/* LATIN SMALL LETTER I */
{
enUSW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
},
/* LATIN CAPITAL LETTER I */
{
ltLTW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
},
/* LATIN CAPITAL LETTER I */
{
trTRW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
FALSE
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
TRTRW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
FALSE
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
azCyrlazW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
FALSE
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
azLatnazW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
FALSE
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
trTRW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
TRTRW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
azCyrlazW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
azLatnazW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
TRUE
},
/* LATIN CAPITAL LETTER I */
{
enUSW
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
,
TRUE
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
trTRW
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
,
TRUE
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
...
...
@@ -6237,7 +6236,6 @@ static void test_SpecialCasing(void)
ok
(
ret
==
1
,
"expected 1, got %d for %04x for %s
\n
"
,
ret
,
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
exp
=
tests
[
i
].
exp
?
tests
[
i
].
exp
:
tests
[
i
].
ch
;
todo_wine_if
(
tests
[
i
].
todo
)
ok
(
buffer
[
0
]
==
exp
||
broken
(
buffer
[
0
]
!=
exp
),
"expected %04x, got %04x for %04x for %s
\n
"
,
exp
,
buffer
[
0
],
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
...
...
@@ -6248,7 +6246,7 @@ static void test_SpecialCasing(void)
ok
(
ret
==
1
,
"expected 1, got %d for %04x for %s
\n
"
,
ret
,
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
exp
=
tests
[
i
].
exp_ling
?
tests
[
i
].
exp_ling
:
exp
;
todo_wine_if
(
tests
[
i
].
todo
_ling
)
todo_wine_if
(
tests
[
i
].
todo
)
ok
(
buffer
[
0
]
==
exp
||
broken
(
buffer
[
0
]
!=
exp
),
"expected %04x, got %04x for %04x for %s
\n
"
,
exp
,
buffer
[
0
],
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
...
...
dlls/ntdll/tests/rtlstr.c
View file @
4b5c67ee
...
...
@@ -597,7 +597,6 @@ static void test_RtlUpcaseUnicodeChar(void)
}
else
{
expected_upper_ch
=
ch
;
}
todo_wine_if
(
ch
==
0xb5
)
ok
(
upper_ch
==
expected_upper_ch
,
"RtlUpcaseUnicodeChar('%c'[=0x%x]) has result '%c'[=0x%x], expected: '%c'[=0x%x]
\n
"
,
ch
,
ch
,
upper_ch
,
upper_ch
,
expected_upper_ch
,
expected_upper_ch
);
...
...
@@ -647,7 +646,6 @@ static void test_RtlUpcaseUnicodeString(void)
pRtlUpcaseUnicodeString
(
&
result_str
,
&
ascii_str
,
0
);
for
(
i
=
0
;
i
<=
255
;
i
++
)
{
todo_wine_if
(
ascii_str
.
Buffer
[
i
]
==
0xb5
)
ok
(
result_str
.
Buffer
[
i
]
==
upper_str
.
Buffer
[
i
],
"RtlUpcaseUnicodeString works wrong: '%c'[=0x%x] is converted to '%c'[=0x%x], expected: '%c'[=0x%x]
\n
"
,
ascii_str
.
Buffer
[
i
],
ascii_str
.
Buffer
[
i
],
...
...
libs/port/casemap.c
View file @
4b5c67ee
...
...
@@ -104,7 +104,7 @@ const WCHAR wine_casemap_lower[4259] =
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x
ff39
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x
0000
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
...
...
@@ -122,13 +122,13 @@ const WCHAR wine_casemap_lower[4259] =
0x0000
,
0x00da
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0x00da
,
0x0001
,
0x0000
,
0x00d9
,
0x00d9
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x00db
,
0x0001
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x000
1
,
0x0000
,
0x0002
,
0x000
1
,
0x0000
,
0x0002
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x000
0
,
0x0000
,
0x0002
,
0x000
0
,
0x0000
,
0x0002
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0002
,
0x000
1
,
0x0000
,
0x0001
,
0x0000
,
0xff9f
,
0xffc8
,
0x0000
,
0x0002
,
0x000
0
,
0x0000
,
0x0001
,
0x0000
,
0xff9f
,
0xffc8
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
/* 0x0200 .. 0x02ff */
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
...
...
@@ -180,7 +180,7 @@ const WCHAR wine_casemap_lower[4259] =
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
ffc4
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0x0000
,
0x0000
,
0x0001
,
0x0000
,
0xfff9
,
0x0001
,
0x0000
,
0x0000
,
0xff7e
,
0xff7e
,
0xff7e
,
/* 0x0400 .. 0x04ff */
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
0x0050
,
...
...
@@ -340,7 +340,7 @@ const WCHAR wine_casemap_lower[4259] =
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
e241
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
0x0001
,
0x0000
,
...
...
@@ -391,8 +391,8 @@ const WCHAR wine_casemap_lower[4259] =
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
e2a3
,
0x0000
,
0x0000
,
0x0000
,
0xdf41
,
0x
dfba
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x001c
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x001c
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
...
...
@@ -562,15 +562,15 @@ const WCHAR wine_casemap_lower[4259] =
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
};
const
WCHAR
wine_casemap_upper
[
4
838
]
=
const
WCHAR
wine_casemap_upper
[
4
673
]
=
{
/* index */
0x019f
,
0x029f
,
0x039f
,
0x04
5a
,
0x0556
,
0x0656
,
0x0100
,
0x0100
,
0x019f
,
0x029f
,
0x039f
,
0x04
3e
,
0x053a
,
0x063a
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x06
dd
,
0x0100
,
0x0100
,
0x07dd
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0
8db
,
0x0964
,
0x0a63
,
0x0b63
,
0x0100
,
0x0
c57
,
0x0100
,
0x0100
,
0x0cdc
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0d
c6
,
0x0ec6
,
0x0100
,
0x0100
,
0x06
c1
,
0x0100
,
0x0100
,
0x07c1
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0
100
,
0x08bf
,
0x09be
,
0x0abe
,
0x0100
,
0x0
bb2
,
0x0100
,
0x0100
,
0x0c37
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0d
21
,
0x0e21
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
...
...
@@ -585,8 +585,8 @@ const WCHAR wine_casemap_upper[4838] =
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0
f85
,
0x1062
,
0x0100
,
0x0100
,
0x0100
,
0x1
126
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0
ee0
,
0x0fbd
,
0x0100
,
0x0100
,
0x0100
,
0x1
081
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
...
...
@@ -596,7 +596,7 @@ const WCHAR wine_casemap_upper[4838] =
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x11
e6
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x0100
,
0x11
41
,
/* defaults */
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
...
...
@@ -641,7 +641,7 @@ const WCHAR wine_casemap_upper[4838] =
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0
2e7
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0
000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
...
...
@@ -658,7 +658,7 @@ const WCHAR wine_casemap_upper[4838] =
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x
ff18
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x
0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
...
...
@@ -667,7 +667,7 @@ const WCHAR wine_casemap_upper[4838] =
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x
fed4
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x
0000
,
0x00c3
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0061
,
0x0000
,
0x0000
,
...
...
@@ -676,13 +676,13 @@ const WCHAR wine_casemap_upper[4838] =
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0038
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
ffff
,
0xfffe
,
0x0000
,
0x
ffff
,
0xfffe
,
0x0000
,
0xffff
,
0xfffe
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0xfffe
,
0x0000
,
0x
0000
,
0xfffe
,
0x0000
,
0x0000
,
0xfffe
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0xffb1
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x
ffff
,
0xfffe
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0xfffe
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
/* 0x0200 .. 0x02ff */
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
...
...
@@ -717,31 +717,27 @@ const WCHAR wine_casemap_upper[4838] =
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
/* 0x0345 .. 0x03ff */
0x0054
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
/* 0x0361 .. 0x03ff */
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0082
,
0x0082
,
0x0082
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0082
,
0x0082
,
0x0082
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffda
,
0xffdb
,
0xffdb
,
0xffdb
,
0x0000
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0x0000
,
0x0000
,
0x0000
,
0xffda
,
0xffdb
,
0xffdb
,
0xffdb
,
0x0000
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe
1
,
0xffe0
,
0xffe0
,
0xffe0
,
0x
ffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffc
0
,
0xff
c1
,
0xffc1
,
0x0000
,
0xffc2
,
0xffc7
,
0x0000
,
0x0000
,
0x0000
,
0x
ffd1
,
0xffca
,
0xfff8
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe
0
,
0xffe0
,
0xffe0
,
0xffe0
,
0x
0000
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe0
,
0xffe
0
,
0xff
e0
,
0xffe0
,
0xffe0
,
0xffc0
,
0xffc1
,
0xffc1
,
0x0000
,
0x0000
,
0x
0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xfff8
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x
ffaa
,
0xffb0
,
0x0007
,
0xff8c
,
0x0000
,
0x
ffa0
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x
0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x
0000
,
0x0007
,
0xff8c
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x
ffff
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
/* 0x0404 .. 0x04ff */
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
...
...
@@ -859,8 +855,7 @@ const WCHAR wine_casemap_upper[4838] =
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xfff8
,
0xfff8
,
0xfff8
,
0xfff8
,
0xfff8
,
0xfff8
,
0x0000
,
0x0000
,
/* 0x1c02 .. 0x1cff */
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
/* 0x1d02 .. 0x1dff */
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
...
...
@@ -875,9 +870,10 @@ const WCHAR wine_casemap_upper[4838] =
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
e792
,
0xe793
,
0x
e79c
,
0xe79e
,
0xe79e
,
0xe79d
,
0xe7a4
,
0xe7db
,
0x89c2
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0x8a04
,
0x
0000
,
0x0000
,
0x0000
,
0x0ee6
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x8a38
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
...
...
@@ -892,25 +888,6 @@ const WCHAR wine_casemap_upper[4838] =
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
/* 0x1d77 .. 0x1dff */
0x0000
,
0x0000
,
0x8a04
,
0x0000
,
0x0000
,
0x0000
,
0x0ee6
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x8a38
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
/* 0x1e01 .. 0x1eff */
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
...
...
@@ -931,7 +908,7 @@ const WCHAR wine_casemap_upper[4838] =
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
ffc5
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
0xffff
,
0x0000
,
...
...
@@ -968,7 +945,7 @@ const WCHAR wine_casemap_upper[4838] =
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0008
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0008
,
0x0008
,
0x0000
,
0x0009
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
e3db
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x
0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0009
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0008
,
0x0008
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
...
...
loader/l_intl.nls
View file @
4b5c67ee
No preview for this file type
tools/make_unicode
View file @
4b5c67ee
...
...
@@ -622,6 +622,21 @@ sub READ_DEFAULTS($)
my
$flag
=
$ctype
{
$cat
};
foreach
my
$i
(
@
{
$special_categories
{
$cat
}})
{
$category_table
[
$i
]
|=
$flag
;
}
}
# remove case mappings that don't round-trip
for
(
my
$i
=
0
;
$i
<
@toupper_table
;
$i
++
)
{
next
unless
defined
$toupper_table
[
$i
];
my
$ch
=
$toupper_table
[
$i
];
$toupper_table
[
$i
]
=
undef
unless
defined
$tolower_table
[
$ch
]
&&
$tolower_table
[
$ch
]
==
$i
;
}
for
(
my
$i
=
0
;
$i
<
@tolower_table
;
$i
++
)
{
next
unless
defined
$tolower_table
[
$i
];
my
$ch
=
$tolower_table
[
$i
];
$tolower_table
[
$i
]
=
undef
unless
defined
$toupper_table
[
$ch
]
&&
$toupper_table
[
$ch
]
==
$i
;
}
}
...
...
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