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
d2c22552
Commit
d2c22552
authored
Jun 06, 2022
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kernel32/tests: Add tests for high Unicode planes.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
91cd0731
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
342 additions
and
289 deletions
+342
-289
locale.c
dlls/kernel32/tests/locale.c
+342
-289
No files found.
dlls/kernel32/tests/locale.c
View file @
d2c22552
...
@@ -220,6 +220,33 @@ static void expect_werr_(int line, int ret, const WCHAR *str, DWORD err, const c
...
@@ -220,6 +220,33 @@ static void expect_werr_(int line, int ret, const WCHAR *str, DWORD err, const c
ok_
(
__FILE__
,
line
)(
wcscmp
(
str
,
L"pristine"
)
==
0
,
"Expected a pristine buffer, got %s
\n
"
,
wine_dbgstr_w
(
str
));
ok_
(
__FILE__
,
line
)(
wcscmp
(
str
,
L"pristine"
)
==
0
,
"Expected a pristine buffer, got %s
\n
"
,
wine_dbgstr_w
(
str
));
}
}
static
int
get_utf16
(
const
WCHAR
*
src
,
unsigned
int
srclen
,
unsigned
int
*
ch
)
{
if
(
IS_HIGH_SURROGATE
(
src
[
0
]
))
{
if
(
srclen
<=
1
)
return
0
;
if
(
!
IS_LOW_SURROGATE
(
src
[
1
]
))
return
0
;
*
ch
=
0x10000
+
((
src
[
0
]
&
0x3ff
)
<<
10
)
+
(
src
[
1
]
&
0x3ff
);
return
2
;
}
if
(
IS_LOW_SURROGATE
(
src
[
0
]
))
return
0
;
*
ch
=
src
[
0
];
return
1
;
}
static
int
put_utf16
(
WCHAR
*
str
,
unsigned
int
c
)
{
if
(
c
<
0x10000
)
{
*
str
=
c
;
return
1
;
}
c
-=
0x10000
;
str
[
0
]
=
0xd800
|
(
c
>>
10
);
str
[
1
]
=
0xdc00
|
(
c
&
0x3ff
);
return
2
;
}
#define NUO LOCALE_NOUSEROVERRIDE
#define NUO LOCALE_NOUSEROVERRIDE
static
void
test_GetLocaleInfoA
(
void
)
static
void
test_GetLocaleInfoA
(
void
)
...
@@ -2414,6 +2441,25 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
...
@@ -2414,6 +2441,25 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
0xff70
,
0xff73
,
0xff9e
,
0xff6b
,
0xff89
,
0x91ce
,
0x539f
,
0xff8a
,
0xff70
,
0xff73
,
0xff9e
,
0xff6b
,
0xff89
,
0x91ce
,
0x539f
,
0xff8a
,
0x5e83
,
0xff72
,
0xff9d
,
0xff80
,
0xff9e
,
0xff96
,
0xff61
,
0
0x5e83
,
0xff72
,
0xff9d
,
0xff80
,
0xff9e
,
0xff96
,
0xff61
,
0
};
};
const
static
WCHAR
math_text
[]
=
{
0xd835
,
0xdc00
,
0xd835
,
0xdc01
,
0xd835
,
0xdc02
,
0xd835
,
0xdc03
,
0xd835
,
0xdd52
,
0xd835
,
0xdd53
,
0xd835
,
0xdd54
,
0xd835
,
0xdd55
,
0
};
const
static
WCHAR
math_result
[]
=
L"ABCDabcd"
;
const
static
WCHAR
math_arabic_text
[]
=
{
0xd83b
,
0xde00
,
0xd83b
,
0xde01
,
0xd83b
,
0xde02
,
0xd83b
,
0xde03
,
0xd83b
,
0xde10
,
0xd83b
,
0xde11
,
0xd83b
,
0xde12
,
0xd83b
,
0xde13
,
0
};
const
static
WCHAR
math_arabic_result
[]
=
{
0x0627
,
0x0628
,
0x062c
,
0x062f
,
0x0641
,
0x0635
,
0x0642
,
0x0631
,
0
};
const
static
WCHAR
cjk_compat_text
[]
=
{
0xd87e
,
0xdc20
,
0xd87e
,
0xdc21
,
0xd87e
,
0xdc22
,
0xd87e
,
0xdc23
,
0xd87e
,
0xdc24
,
0xd87e
,
0xdc25
,
0xd87e
,
0xdc26
,
0xd87e
,
0xdc27
,
0
};
const
static
WCHAR
cjk_compat_result
[]
=
{
0x523b
,
0x5246
,
0x5272
,
0x5277
,
0x3515
,
0x52c7
,
0x52c9
,
0x52e4
,
0
};
int
ret
,
ret2
,
i
;
int
ret
,
ret2
,
i
;
WCHAR
buf
[
256
],
buf2
[
256
];
WCHAR
buf
[
256
],
buf2
[
256
];
char
*
p_buf
=
(
char
*
)
buf
,
*
p_buf2
=
(
char
*
)
buf2
;
char
*
p_buf
=
(
char
*
)
buf
,
*
p_buf2
=
(
char
*
)
buf2
;
...
@@ -2480,6 +2526,23 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
...
@@ -2480,6 +2526,23 @@ static void test_lcmapstring_unicode(lcmapstring_wrapper func_ptr, const char *f
ret2
=
func_ptr
(
LCMAP_FULLWIDTH
,
halfwidth_text
,
-
1
,
NULL
,
0
);
ret2
=
func_ptr
(
LCMAP_FULLWIDTH
,
halfwidth_text
,
-
1
,
NULL
,
0
);
ok
(
ret
==
ret2
,
"%s ret %d, expected value %d
\n
"
,
func_name
,
ret2
,
ret
);
ok
(
ret
==
ret2
,
"%s ret %d, expected value %d
\n
"
,
func_name
,
ret2
,
ret
);
ret
=
func_ptr
(
LCMAP_FULLWIDTH
,
math_text
,
-
1
,
buf
,
ARRAY_SIZE
(
buf
));
ok
(
ret
==
lstrlenW
(
buf
)
+
1
,
"%s ret %d, error %ld, expected value %d
\n
"
,
func_name
,
ret
,
GetLastError
(),
lstrlenW
(
buf
)
+
1
);
ok
(
!
lstrcmpW
(
buf
,
math_result
),
"%s string compare mismatch %s
\n
"
,
func_name
,
debugstr_w
(
buf
));
ret
=
func_ptr
(
LCMAP_FULLWIDTH
,
math_arabic_text
,
-
1
,
buf
,
ARRAY_SIZE
(
buf
));
ok
(
ret
==
lstrlenW
(
buf
)
+
1
,
"%s ret %d, error %ld, expected value %d
\n
"
,
func_name
,
ret
,
GetLastError
(),
lstrlenW
(
buf
)
+
1
);
ok
(
!
lstrcmpW
(
buf
,
math_arabic_result
)
||
broken
(
!
lstrcmpW
(
buf
,
math_arabic_text
)),
/* win7 */
"%s string compare mismatch %s
\n
"
,
func_name
,
debugstr_w
(
buf
));
ret
=
func_ptr
(
LCMAP_FULLWIDTH
,
cjk_compat_text
,
-
1
,
buf
,
ARRAY_SIZE
(
buf
));
ok
(
ret
==
lstrlenW
(
buf
)
+
1
,
"%s ret %d, error %ld, expected value %d
\n
"
,
func_name
,
ret
,
GetLastError
(),
lstrlenW
(
buf
)
+
1
);
ok
(
!
lstrcmpW
(
buf
,
cjk_compat_result
),
"%s string compare mismatch %s
\n
"
,
func_name
,
debugstr_w
(
buf
));
/* test LCMAP_FULLWIDTH | LCMAP_HIRAGANA
/* test LCMAP_FULLWIDTH | LCMAP_HIRAGANA
(half-width katakana is converted into full-width hiragana) */
(half-width katakana is converted into full-width hiragana) */
ret
=
func_ptr
(
LCMAP_FULLWIDTH
|
LCMAP_HIRAGANA
,
halfwidth_text
,
-
1
,
buf
,
ARRAY_SIZE
(
buf
));
ret
=
func_ptr
(
LCMAP_FULLWIDTH
|
LCMAP_HIRAGANA
,
halfwidth_text
,
-
1
,
buf
,
ARRAY_SIZE
(
buf
));
...
@@ -3882,8 +3945,9 @@ static void test_FoldStringW(void)
...
@@ -3882,8 +3945,9 @@ static void test_FoldStringW(void)
{
{
int
ret
;
int
ret
;
WORD
type
;
WORD
type
;
unsigned
int
i
,
j
;
unsigned
int
i
,
j
,
len
;
WCHAR
src
[
256
],
dst
[
256
],
ch
,
prev_ch
=
1
;
WCHAR
src
[
256
],
dst
[
256
];
UINT
ch
,
prev_ch
=
1
;
static
const
DWORD
badFlags
[]
=
static
const
DWORD
badFlags
[]
=
{
{
0
,
0
,
...
@@ -3892,93 +3956,104 @@ static void test_FoldStringW(void)
...
@@ -3892,93 +3956,104 @@ static void test_FoldStringW(void)
MAP_COMPOSITE
|
MAP_EXPAND_LIGATURES
MAP_COMPOSITE
|
MAP_EXPAND_LIGATURES
};
};
/* Ranges of digits 0-9 : Must be sorted! */
/* Ranges of digits 0-9 : Must be sorted! */
static
const
WCHAR
digitRanges
[]
=
static
const
struct
{
UINT
ch
,
first
,
last
;
int
broken
;
}
digitRanges
[]
=
{
{
0x0030
,
/* '0'-'9' */
{
0x0030
,
0
,
9
},
/* '0'-'9' */
0x0660
,
/* Eastern Arabic */
{
0x00b2
,
2
,
3
},
/* Superscript 2, 3 */
0x06F0
,
/* Arabic - Hindu */
{
0x00b9
,
1
,
1
},
/* Superscript 1 */
0x07C0
,
/* Nko */
{
0x0660
,
0
,
9
},
/* Eastern Arabic */
0x0966
,
/* Devengari */
{
0x06f0
,
0
,
9
},
/* Arabic - Hindu */
0x09E6
,
/* Bengalii */
{
0x07c0
,
0
,
9
},
/* Nko */
0x0A66
,
/* Gurmukhi */
{
0x0966
,
0
,
9
},
/* Devengari */
0x0AE6
,
/* Gujarati */
{
0x09e6
,
0
,
9
},
/* Bengalii */
0x0B66
,
/* Oriya */
{
0x0a66
,
0
,
9
},
/* Gurmukhi */
0x0BE6
,
/* Tamil - No 0 */
{
0x0ae6
,
0
,
9
},
/* Gujarati */
0x0C66
,
/* Telugu */
{
0x0b66
,
0
,
9
},
/* Oriya */
0x0CE6
,
/* Kannada */
{
0x0be6
,
0
,
9
},
/* Tamil */
0x0D66
,
/* Maylayalam */
{
0x0c66
,
0
,
9
},
/* Telugu */
0x0DE6
,
/* Sinhala Lith */
{
0x0c78
,
0
,
3
,
TRUE
/*win7*/
},
/* Telugu Fraction */
0x0E50
,
/* Thai */
{
0x0c7c
,
1
,
3
,
TRUE
/*win7*/
},
/* Telugu Fraction */
0x0ED0
,
/* Laos */
{
0x0ce6
,
0
,
9
},
/* Kannada */
0x0F20
,
/* Tibet */
{
0x0d66
,
0
,
9
},
/* Maylayalam */
0x0F29
,
/* Tibet half - 0 is out of sequence */
{
0x0de6
,
0
,
9
,
TRUE
/*win10*/
},
/* Sinhala Lith */
0x1040
,
/* Myanmar */
{
0x0e50
,
0
,
9
},
/* Thai */
0x1090
,
/* Myanmar Shan */
{
0x0ed0
,
0
,
9
},
/* Laos */
0x1368
,
/* Ethiopic - no 0 */
{
0x0f20
,
0
,
9
},
/* Tibet */
0x17E0
,
/* Khmer */
{
0x1040
,
0
,
9
},
/* Myanmar */
0x1810
,
/* Mongolian */
{
0x1090
,
0
,
9
},
/* Myanmar Shan */
0x1946
,
/* Limbu */
{
0x1369
,
1
,
9
},
/* Ethiopic */
0x19D0
,
/* New Tai Lue */
{
0x17e0
,
0
,
9
},
/* Khmer */
0x1A80
,
/* Tai Tham Hora */
{
0x1810
,
0
,
9
},
/* Mongolian */
0x1A90
,
/* Tai Tham Tham */
{
0x1946
,
0
,
9
},
/* Limbu */
0x1B50
,
/* Balinese */
{
0x19d0
,
0
,
9
},
/* New Tai Lue */
0x1BB0
,
/* Sundanese */
{
0x19da
,
1
,
1
,
TRUE
/*win7*/
},
/* New Tai Lue Tham 1 */
0x1C40
,
/* Lepcha */
{
0x1a80
,
0
,
9
,
TRUE
/*win7*/
},
/* Tai Tham Hora */
0x1C50
,
/* Ol Chiki */
{
0x1a90
,
0
,
9
,
TRUE
/*win7*/
},
/* Tai Tham Tham */
0x2070
,
/* Superscript - 1, 2, 3 are out of sequence */
{
0x1b50
,
0
,
9
},
/* Balinese */
0x2080
,
/* Subscript */
{
0x1bb0
,
0
,
9
},
/* Sundanese */
0x245F
,
/* Circled - 0 is out of sequence */
{
0x1c40
,
0
,
9
},
/* Lepcha */
0x2473
,
/* Bracketed */
{
0x1c50
,
0
,
9
},
/* Ol Chiki */
0x2487
,
/* Full stop */
{
0x2070
,
0
,
0
},
/* Superscript 0 */
0x24F4
,
/* Double Circled */
{
0x2074
,
4
,
9
},
/* Superscript 4-9 */
0x2775
,
/* Inverted circled - No 0 */
{
0x2080
,
0
,
9
},
/* Subscript */
0x277F
,
/* Patterned circled - No 0 */
{
0x2460
,
1
,
9
},
/* Circled */
0x2789
,
/* Inverted Patterned circled - No 0 */
{
0x2474
,
1
,
9
},
/* Bracketed */
0x3020
,
/* Hangzhou */
{
0x2488
,
1
,
9
},
/* Full stop */
0xA620
,
/* Vai */
{
0x24ea
,
0
,
0
},
/* Circled 0 */
0xA8D0
,
/* Saurashtra */
{
0x24f5
,
1
,
9
},
/* Double Circled */
0xA900
,
/* Kayah Li */
{
0x24ff
,
0
,
0
},
/* Negative Circled 0 */
0xA9D0
,
/* Javanese */
{
0x2776
,
1
,
9
},
/* Inverted Circled */
0xA9F0
,
/* Myanmar Tai Laing */
{
0x2780
,
1
,
9
},
/* Patterned Circled */
0xAA50
,
/* Cham */
{
0x278a
,
1
,
9
},
/* Inverted Patterned Circled */
0xABF0
,
/* Meetei Mayek */
{
0x3007
,
0
,
0
},
/* Ideographic Number 0 */
0xff10
,
/* Pliene chasse (?) */
{
0x3021
,
1
,
9
},
/* Hangzhou */
0xffff
/* Terminator */
{
0xa620
,
0
,
9
},
/* Vai */
};
{
0xa8d0
,
0
,
9
},
/* Saurashtra */
/* Digits which are represented, but out of sequence */
{
0xa8e0
,
0
,
9
,
TRUE
/*win7*/
},
/* Combining Devanagari */
static
const
WCHAR
outOfSequenceDigits
[]
=
{
0xa900
,
0
,
9
},
/* Kayah Li */
{
{
0xa9d0
,
0
,
9
,
TRUE
/*win7*/
},
/* Javanese */
0xB9
,
/* Superscript 1 */
{
0xa9f0
,
0
,
9
,
TRUE
/*win10*/
},
/* Myanmar Tai Laing */
0xB2
,
/* Superscript 2 */
{
0xaa50
,
0
,
9
},
/* Cham */
0xB3
,
/* Superscript 3 */
{
0xabf0
,
0
,
9
,
TRUE
/*win7*/
},
/* Meetei Mayek */
0x0C78
,
/* Telugu Fraction 0 */
{
0xff10
,
0
,
9
},
/* Full Width */
0x0C79
,
/* Telugu Fraction 1 */
{
0x10107
,
1
,
9
},
/* Aegean */
0x0C7A
,
/* Telugu Fraction 2 */
{
0x10320
,
1
,
1
},
/* Old Italic Numeral 1 */
0x0C7B
,
/* Telugu Fraction 3 */
{
0x10321
,
5
,
5
},
/* Old Italic Numeral 5 */
0x0C7C
,
/* Telugu Fraction 1 */
{
0x104a0
,
0
,
9
},
/* Osmanya */
0x0C7D
,
/* Telugu Fraction 2 */
{
0x10a40
,
1
,
4
,
TRUE
/*win10*/
},
/* Kharoshthi */
0x0C7E
,
/* Telugu Fraction 3 */
{
0x10d30
,
0
,
9
,
TRUE
/*win10*/
},
/* Hanifi Rohingya */
0x0F33
,
/* Tibetan half zero */
{
0x10e60
,
1
,
9
,
TRUE
/*win10*/
},
/* Rumi */
0x19DA
,
/* New Tai Lue Tham 1 */
{
0x11052
,
1
,
9
,
TRUE
/*win10*/
},
/* Brahmi Number */
0x24EA
,
/* Circled 0 */
{
0x11066
,
0
,
9
,
TRUE
/*win10*/
},
/* Brahmi Digit */
0x24FF
,
/* Negative Circled 0 */
{
0x110f0
,
0
,
9
,
TRUE
/*win10*/
},
/* Sora Sompeng */
0x3007
,
/* Ideographic number zero */
{
0x11136
,
0
,
9
,
TRUE
/*win10*/
},
/* Chakma */
'\0'
/* Terminator */
{
0x111d0
,
0
,
9
,
TRUE
/*win10*/
},
/* Sharada */
};
{
0x112f0
,
0
,
9
,
TRUE
/*win10*/
},
/* Khudawadi */
/* Digits in digitRanges for which no representation is available */
{
0x11450
,
0
,
9
,
TRUE
/*win10*/
},
/* Newa */
static
const
WCHAR
noDigitAvailable
[]
=
{
0x114d0
,
0
,
9
,
TRUE
/*win10*/
},
/* Tirhuta */
{
{
0x11650
,
0
,
9
,
TRUE
/*win10*/
},
/* Modi */
0x0BE6
,
/* No Tamil 0 */
{
0x116c0
,
0
,
9
,
TRUE
/*win10*/
},
/* Takri */
0x0F29
,
/* No Tibetan half zero (out of sequence) */
{
0x11730
,
0
,
9
,
TRUE
/*win10*/
},
/* Ahom */
0x1368
,
/* No Ethiopic 0 */
{
0x118e0
,
0
,
9
,
TRUE
/*win10*/
},
/* Warang */
0x2473
,
/* No Bracketed 0 */
{
0x11950
,
0
,
9
,
TRUE
/*win10*/
},
/* Dives Akuru */
0x2487
,
/* No 0 Full stop */
{
0x11c50
,
0
,
9
,
TRUE
/*win10*/
},
/* Bhaiksuki */
0x24F4
,
/* No double circled 0 */
{
0x11d50
,
0
,
9
,
TRUE
/*win10*/
},
/* Masaram Gondi */
0x2775
,
/* No inverted circled 0 */
{
0x11da0
,
0
,
9
,
TRUE
/*win10*/
},
/* Gunjala Gondi */
0x277F
,
/* No patterned circled */
{
0x16a60
,
0
,
9
,
TRUE
/*win10*/
},
/* Mro */
0x2789
,
/* No inverted Patterned circled */
{
0x16ac0
,
0
,
9
,
TRUE
/*win10*/
},
/* Tangsa */
0x3020
,
/* No Hangzhou 0 */
{
0x16b50
,
0
,
9
,
TRUE
/*win10*/
},
/* Pahawh Hmong */
'\0'
/* Terminator */
{
0x1d7ce
,
0
,
9
},
/* Mathematical Bold */
{
0x1d7d8
,
0
,
9
},
/* Mathematical Double Struck */
{
0x1d7e2
,
0
,
9
},
/* Mathematical Sans Serif */
{
0x1d7ec
,
0
,
9
},
/* Mathematical Sans Serif Bold */
{
0x1d7f6
,
0
,
9
},
/* Mathematical Monospace */
{
0x1e140
,
0
,
9
,
TRUE
/*win10*/
},
/* Nyiakeng Puachue Hmong */
{
0x1e2f0
,
0
,
9
,
TRUE
/*win10*/
},
/* Wancho */
{
0x1e950
,
0
,
9
,
TRUE
/*win10*/
},
/* Adlam */
{
0x1f100
,
0
,
0
,
TRUE
/*win10*/
},
/* Full Stop */
{
0x1f101
,
0
,
9
,
TRUE
/*win10*/
},
/* Comma */
{
0x1fbf0
,
0
,
9
,
TRUE
/*win10*/
},
/* Segmented */
{
0x10ffff
}
/* Terminator */
};
};
static
const
WCHAR
foldczone_src
[]
=
static
const
WCHAR
foldczone_src
[]
=
{
{
...
@@ -4073,49 +4148,41 @@ static void test_FoldStringW(void)
...
@@ -4073,49 +4148,41 @@ static void test_FoldStringW(void)
for
(
j
=
0
;
j
<
ARRAY_SIZE
(
digitRanges
);
j
++
)
for
(
j
=
0
;
j
<
ARRAY_SIZE
(
digitRanges
);
j
++
)
{
{
/* Check everything before this range */
/* Check everything before this range */
for
(
ch
=
prev_ch
;
ch
<
digitRanges
[
j
];
ch
++
)
for
(
ch
=
prev_ch
;
ch
<
digitRanges
[
j
]
.
ch
;
ch
++
)
{
{
len
=
put_utf16
(
src
,
ch
);
src
[
len
]
=
0
;
SetLastError
(
0xdeadbeef
);
SetLastError
(
0xdeadbeef
);
src
[
0
]
=
ch
;
src
[
1
]
=
dst
[
0
]
=
'\0'
;
ret
=
FoldStringW
(
MAP_FOLDDIGITS
,
src
,
-
1
,
dst
,
256
);
ret
=
FoldStringW
(
MAP_FOLDDIGITS
,
src
,
-
1
,
dst
,
256
);
if
(
ret
==
3
)
{
ok
(
!
wcscmp
(
src
,
dst
),
"%s changed to %s
\n
"
,
debugstr_w
(
src
),
debugstr_w
(
dst
)
);
continue
;
}
ok
(
ret
==
2
,
"Expected ret == 2, got %d, error %ld
\n
"
,
ret
,
GetLastError
());
ok
(
ret
==
2
,
"Expected ret == 2, got %d, error %ld
\n
"
,
ret
,
GetLastError
());
ok
(
dst
[
0
]
==
ch
,
"MAP_FOLDDIGITS: ch 0x%04x Expected unchanged got %04x
\n
"
,
ch
,
dst
[
0
]);
ok
(
dst
[
0
]
==
ch
||
wcschr
(
outOfSequenceDigits
,
ch
)
||
if
(
ch
<
0x10000
)
(
ch
>=
0xa8e0
&&
ch
<=
0xa8e9
),
/* combining Devanagari on Win8 */
{
"MAP_FOLDDIGITS: ch 0x%04x Expected unchanged got %04x
\n
"
,
ch
,
dst
[
0
]);
WCHAR
wch
=
ch
;
GetStringTypeW
(
CT_CTYPE1
,
&
ch
,
1
,
&
type
);
GetStringTypeW
(
CT_CTYPE1
,
&
wch
,
1
,
&
type
);
ok
(
!
(
type
&
C1_DIGIT
)
||
wcschr
(
outOfSequenceDigits
,
ch
)
||
ok
(
!
(
type
&
C1_DIGIT
),
"char %04x should not be a digit
\n
"
,
wch
);
broken
(
ch
>=
0xbf0
&&
ch
<=
0xbf2
),
/* win2k */
"char %04x should not be a digit
\n
"
,
ch
);
}
}
}
if
(
digitRanges
[
j
]
==
0x
ffff
)
if
(
digitRanges
[
j
]
.
ch
==
0x10
ffff
)
break
;
/* Finished the whole code point space */
break
;
/* Finished the whole code point space */
for
(
ch
=
digitRanges
[
j
]
;
ch
<
digitRanges
[
j
]
+
10
;
ch
++
)
for
(
ch
=
digitRanges
[
j
]
.
ch
;
ch
<=
digitRanges
[
j
].
ch
+
digitRanges
[
j
].
last
-
digitRanges
[
j
].
first
;
ch
++
)
{
{
WCHAR
c
;
UINT
exp
=
'0'
+
digitRanges
[
j
].
first
+
ch
-
digitRanges
[
j
].
ch
;
/* Map out of sequence characters */
if
(
ch
==
0x2071
)
c
=
0x00B9
;
/* Superscript 1 */
else
if
(
ch
==
0x2072
)
c
=
0x00B2
;
/* Superscript 2 */
else
if
(
ch
==
0x2073
)
c
=
0x00B3
;
/* Superscript 3 */
else
if
(
ch
==
0x245F
)
c
=
0x24EA
;
/* Circled 0 */
else
c
=
ch
;
SetLastError
(
0xdeadbeef
);
SetLastError
(
0xdeadbeef
);
src
[
0
]
=
c
;
len
=
put_utf16
(
src
,
ch
)
;
src
[
1
]
=
dst
[
0
]
=
'\0'
;
src
[
len
]
=
0
;
ret
=
FoldStringW
(
MAP_FOLDDIGITS
,
src
,
-
1
,
dst
,
256
);
ret
=
FoldStringW
(
MAP_FOLDDIGITS
,
src
,
-
1
,
dst
,
256
);
ok
(
ret
==
2
,
"Expected ret == 2, got %d, error %ld
\n
"
,
ret
,
GetLastError
());
ok
(
ret
==
2
||
broken
(
digitRanges
[
j
].
broken
&&
ch
>=
0x10000
),
"%04x: Expected ret == 2, got %d, error %ld
\n
"
,
ch
,
ret
,
GetLastError
());
ok
((
dst
[
0
]
==
'0'
+
ch
-
digitRanges
[
j
]
&&
dst
[
1
]
==
'\0'
)
||
ok
((
dst
[
0
]
==
exp
&&
dst
[
1
]
==
'\0'
)
||
broken
(
digitRanges
[
j
].
broken
),
broken
(
dst
[
0
]
==
ch
)
||
/* old Windows versions don't have all mappings */
"MAP_FOLDDIGITS: ch %04x Expected %04x got %04x
\n
"
,
ch
,
exp
,
dst
[
0
]);
(
digitRanges
[
j
]
==
0x3020
&&
dst
[
0
]
==
ch
)
||
/* Hangzhou not present in all Windows versions */
(
digitRanges
[
j
]
==
0x0F29
&&
dst
[
0
]
==
ch
)
||
/* Tibetan not present in all Windows versions */
wcschr
(
noDigitAvailable
,
c
),
"MAP_FOLDDIGITS: ch %04x Expected %04x got %04x
\n
"
,
ch
,
'0'
+
digitRanges
[
j
]
-
ch
,
dst
[
0
]);
}
}
prev_ch
=
ch
;
prev_ch
=
ch
;
}
}
...
@@ -6761,19 +6828,6 @@ static void test_SetThreadUILanguage(void)
...
@@ -6761,19 +6828,6 @@ static void test_SetThreadUILanguage(void)
"expected %d got %d
\n
"
,
MAKELANGID
(
LANG_DUTCH
,
SUBLANG_DUTCH_BELGIAN
),
res
);
"expected %d got %d
\n
"
,
MAKELANGID
(
LANG_DUTCH
,
SUBLANG_DUTCH_BELGIAN
),
res
);
}
}
static
int
put_utf16
(
WCHAR
*
str
,
unsigned
int
c
)
{
if
(
c
<
0x10000
)
{
*
str
=
c
;
return
1
;
}
c
-=
0x10000
;
str
[
0
]
=
0xd800
|
(
c
>>
10
);
str
[
1
]
=
0xdc00
|
(
c
&
0x3ff
);
return
2
;
}
/* read a Unicode string from NormalizationTest.txt format; helper for test_NormalizeString */
/* read a Unicode string from NormalizationTest.txt format; helper for test_NormalizeString */
static
int
read_str
(
char
*
str
,
WCHAR
res
[
32
]
)
static
int
read_str
(
char
*
str
,
WCHAR
res
[
32
]
)
{
{
...
@@ -7300,154 +7354,150 @@ static void test_NormalizeString(void)
...
@@ -7300,154 +7354,150 @@ static void test_NormalizeString(void)
static
void
test_SpecialCasing
(
void
)
static
void
test_SpecialCasing
(
void
)
{
{
int
ret
,
i
;
int
ret
,
i
,
len
;
WCHAR
exp
,
buffer
[
8
];
UINT
val
=
0
,
exp
;
static
const
WCHAR
azCyrlazW
[]
=
{
'a'
,
'z'
,
'-'
,
'C'
,
'y'
,
'r'
,
'l'
,
'-'
,
'a'
,
'z'
,
0
};
WCHAR
src
[
8
],
buffer
[
8
];
static
const
WCHAR
azLatnazW
[]
=
{
'a'
,
'z'
,
'-'
,
'L'
,
'a'
,
't'
,
'n'
,
'-'
,
'a'
,
'z'
,
0
};
static
const
WCHAR
deDEW
[]
=
{
'd'
,
'e'
,
'-'
,
'D'
,
'E'
,
0
};
static
const
WCHAR
elGRW
[]
=
{
'e'
,
'l'
,
'-'
,
'G'
,
'R'
,
0
};
static
const
WCHAR
enUSW
[]
=
{
'e'
,
'n'
,
'-'
,
'U'
,
'S'
,
0
};
static
const
WCHAR
hyAMW
[]
=
{
'h'
,
'y'
,
'-'
,
'A'
,
'M'
,
0
};
static
const
WCHAR
ltLTW
[]
=
{
'l'
,
't'
,
'-'
,
'L'
,
'T'
,
0
};
static
const
WCHAR
trTRW
[]
=
{
't'
,
'r'
,
'-'
,
'T'
,
'R'
,
0
};
static
const
WCHAR
TRTRW
[]
=
{
'T'
,
'R'
,
'-'
,
'T'
,
'R'
,
0
};
static
const
struct
test
{
static
const
struct
test
{
const
WCHAR
*
lang
;
const
WCHAR
*
lang
;
DWORD
flags
;
DWORD
flags
;
WCHAR
ch
;
UINT
ch
;
WCHAR
exp
;
/* 0 if self */
UINT
exp
;
/* 0 if self */
WCHAR
exp_ling
;
/* 0 if exp */
UINT
exp_ling
;
/* 0 if exp */
BOOL
broken
;
}
tests
[]
=
{
}
tests
[]
=
{
{
deDEW
,
LCMAP_UPPERCASE
,
0x00DF
},
/* LATIN SMALL LETTER SHARP S */
{
L"de-DE"
,
LCMAP_UPPERCASE
,
0x00DF
},
/* LATIN SMALL LETTER SHARP S */
{
enUSW
,
LCMAP_UPPERCASE
,
0xFB00
},
/* LATIN SMALL LIGATURE FF */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0xFB00
},
/* LATIN SMALL LIGATURE FF */
{
enUSW
,
LCMAP_UPPERCASE
,
0xFB01
},
/* LATIN SMALL LIGATURE FI */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0xFB01
},
/* LATIN SMALL LIGATURE FI */
{
enUSW
,
LCMAP_UPPERCASE
,
0xFB02
},
/* LATIN SMALL LIGATURE FL */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0xFB02
},
/* LATIN SMALL LIGATURE FL */
{
enUSW
,
LCMAP_UPPERCASE
,
0xFB03
},
/* LATIN SMALL LIGATURE FFI */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0xFB03
},
/* LATIN SMALL LIGATURE FFI */
{
enUSW
,
LCMAP_UPPERCASE
,
0xFB04
},
/* LATIN SMALL LIGATURE FFL */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0xFB04
},
/* LATIN SMALL LIGATURE FFL */
{
enUSW
,
LCMAP_UPPERCASE
,
0xFB05
},
/* LATIN SMALL LIGATURE LONG S T */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0xFB05
},
/* LATIN SMALL LIGATURE LONG S T */
{
enUSW
,
LCMAP_UPPERCASE
,
0xFB06
},
/* LATIN SMALL LIGATURE ST */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0xFB06
},
/* LATIN SMALL LIGATURE ST */
{
hyAMW
,
LCMAP_UPPERCASE
,
0x0587
},
/* ARMENIAN SMALL LIGATURE ECH YIWN */
{
L"hy-AM"
,
LCMAP_UPPERCASE
,
0x0587
},
/* ARMENIAN SMALL LIGATURE ECH YIWN */
{
hyAMW
,
LCMAP_UPPERCASE
,
0xFB13
},
/* ARMENIAN SMALL LIGATURE MEN NOW */
{
L"hy-AM"
,
LCMAP_UPPERCASE
,
0xFB13
},
/* ARMENIAN SMALL LIGATURE MEN NOW */
{
hyAMW
,
LCMAP_UPPERCASE
,
0xFB14
},
/* ARMENIAN SMALL LIGATURE MEN ECH */
{
L"hy-AM"
,
LCMAP_UPPERCASE
,
0xFB14
},
/* ARMENIAN SMALL LIGATURE MEN ECH */
{
hyAMW
,
LCMAP_UPPERCASE
,
0xFB15
},
/* ARMENIAN SMALL LIGATURE MEN INI */
{
L"hy-AM"
,
LCMAP_UPPERCASE
,
0xFB15
},
/* ARMENIAN SMALL LIGATURE MEN INI */
{
hyAMW
,
LCMAP_UPPERCASE
,
0xFB16
},
/* ARMENIAN SMALL LIGATURE VEW NOW */
{
L"hy-AM"
,
LCMAP_UPPERCASE
,
0xFB16
},
/* ARMENIAN SMALL LIGATURE VEW NOW */
{
hyAMW
,
LCMAP_UPPERCASE
,
0xFB17
},
/* ARMENIAN SMALL LIGATURE MEN XEH */
{
L"hy-AM"
,
LCMAP_UPPERCASE
,
0xFB17
},
/* ARMENIAN SMALL LIGATURE MEN XEH */
{
enUSW
,
LCMAP_UPPERCASE
,
0x0149
},
/* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x0149
},
/* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
{
elGRW
,
LCMAP_UPPERCASE
,
0x0390
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x0390
,
0
,
0
,
TRUE
/*win7*/
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
{
elGRW
,
LCMAP_UPPERCASE
,
0x03B0
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x03B0
,
0
,
0
,
TRUE
/*win7*/
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
{
enUSW
,
LCMAP_UPPERCASE
,
0x01F0
},
/* LATIN SMALL LETTER J WITH CARON */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x01F0
},
/* LATIN SMALL LETTER J WITH CARON */
{
enUSW
,
LCMAP_UPPERCASE
,
0x1E96
},
/* LATIN SMALL LETTER H WITH LINE BELOW */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x1E96
},
/* LATIN SMALL LETTER H WITH LINE BELOW */
{
enUSW
,
LCMAP_UPPERCASE
,
0x1E97
},
/* LATIN SMALL LETTER T WITH DIAERESIS */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x1E97
},
/* LATIN SMALL LETTER T WITH DIAERESIS */
{
enUSW
,
LCMAP_UPPERCASE
,
0x1E98
},
/* LATIN SMALL LETTER W WITH RING ABOVE */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x1E98
},
/* LATIN SMALL LETTER W WITH RING ABOVE */
{
enUSW
,
LCMAP_UPPERCASE
,
0x1E99
},
/* LATIN SMALL LETTER Y WITH RING ABOVE */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x1E99
},
/* LATIN SMALL LETTER Y WITH RING ABOVE */
{
enUSW
,
LCMAP_UPPERCASE
,
0x1E9A
},
/* LATIN SMALL LETTER A WITH RIGHT HALF RING */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x1E9A
},
/* LATIN SMALL LETTER A WITH RIGHT HALF RING */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F50
},
/* GREEK SMALL LETTER UPSILON WITH PSILI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F50
},
/* GREEK SMALL LETTER UPSILON WITH PSILI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F52
},
/* GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F52
},
/* GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F54
},
/* GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F54
},
/* GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F56
},
/* GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F56
},
/* GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FB6
},
/* GREEK SMALL LETTER ALPHA WITH PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FB6
},
/* GREEK SMALL LETTER ALPHA WITH PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FC6
},
/* GREEK SMALL LETTER ETA WITH PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FC6
},
/* GREEK SMALL LETTER ETA WITH PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FD2
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FD2
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FD3
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FD3
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FD6
},
/* GREEK SMALL LETTER IOTA WITH PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FD6
},
/* GREEK SMALL LETTER IOTA WITH PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FD7
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FD7
},
/* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FE2
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FE2
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FE3
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FE3
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FE4
},
/* GREEK SMALL LETTER RHO WITH PSILI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FE4
},
/* GREEK SMALL LETTER RHO WITH PSILI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FE6
},
/* GREEK SMALL LETTER UPSILON WITH PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FE6
},
/* GREEK SMALL LETTER UPSILON WITH PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FE7
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FE7
},
/* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FF6
},
/* GREEK SMALL LETTER OMEGA WITH PERISPOMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FF6
},
/* GREEK SMALL LETTER OMEGA WITH PERISPOMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F80
,
0x1F88
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F80
,
0x1F88
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F81
,
0x1F89
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F81
,
0x1F89
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F82
,
0x1F8A
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F82
,
0x1F8A
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F83
,
0x1F8B
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F83
,
0x1F8B
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F84
,
0x1F8C
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F84
,
0x1F8C
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F85
,
0x1F8D
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F85
,
0x1F8D
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F86
,
0x1F8E
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F86
,
0x1F8E
},
/* GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F87
,
0x1F8F
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F87
,
0x1F8F
},
/* GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F88
,
0x1F80
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F88
,
0x1F80
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F89
,
0x1F81
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F89
,
0x1F81
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F8A
,
0x1F82
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F8A
,
0x1F82
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F8B
,
0x1F83
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F8B
,
0x1F83
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F8C
,
0x1F84
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F8C
,
0x1F84
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F8D
,
0x1F85
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F8D
,
0x1F85
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F8E
,
0x1F86
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F8E
,
0x1F86
},
/* GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1F8F
,
0x1F87
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1F8F
,
0x1F87
},
/* GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F90
,
0x1F98
},
/* GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F90
,
0x1F98
},
/* GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F91
,
0x1F99
},
/* GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F91
,
0x1F99
},
/* GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F92
,
0x1F9A
},
/* GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F92
,
0x1F9A
},
/* GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F93
,
0x1F9B
},
/* GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F93
,
0x1F9B
},
/* GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F94
,
0x1F9C
},
/* GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F94
,
0x1F9C
},
/* GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F95
,
0x1F9D
},
/* GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F95
,
0x1F9D
},
/* GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F96
,
0x1F9E
},
/* GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F96
,
0x1F9E
},
/* GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1F97
,
0x1F9F
},
/* GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1F97
,
0x1F9F
},
/* GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FA8
,
0x1FA0
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FA8
,
0x1FA0
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FA9
,
0x1FA1
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FA9
,
0x1FA1
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FAA
,
0x1FA2
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FAA
,
0x1FA2
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FAB
,
0x1FA3
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FAB
,
0x1FA3
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FAC
,
0x1FA4
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FAC
,
0x1FA4
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FAD
,
0x1FA5
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FAD
,
0x1FA5
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FAE
,
0x1FA6
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FAE
,
0x1FA6
},
/* GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FAF
,
0x1FA7
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FAF
,
0x1FA7
},
/* GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FB3
,
0x1FBC
},
/* GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FB3
,
0x1FBC
},
/* GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FBC
,
0x1FB3
},
/* GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FBC
,
0x1FB3
},
/* GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FC3
,
0x1FCC
},
/* GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FC3
,
0x1FCC
},
/* GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FCC
,
0x1FC3
},
/* GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FCC
,
0x1FC3
},
/* GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FF3
,
0x1FFC
},
/* GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FF3
,
0x1FFC
},
/* GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x1FFC
,
0x1FF3
},
/* GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x1FFC
,
0x1FF3
},
/* GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FB2
},
/* GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FB2
},
/* GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FB4
},
/* GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FB4
},
/* GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FC2
},
/* GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FC2
},
/* GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FC4
},
/* GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FC4
},
/* GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FF2
},
/* GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FF2
},
/* GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FF4
},
/* GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FF4
},
/* GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FB7
},
/* GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FB7
},
/* GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FC7
},
/* GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FC7
},
/* GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_UPPERCASE
,
0x1FF7
},
/* GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */
{
L"el-GR"
,
LCMAP_UPPERCASE
,
0x1FF7
},
/* GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */
{
elGRW
,
LCMAP_LOWERCASE
,
0x03A3
,
0x03C3
},
/* GREEK CAPITAL LETTER SIGMA */
{
L"el-GR"
,
LCMAP_LOWERCASE
,
0x03A3
,
0x03C3
},
/* GREEK CAPITAL LETTER SIGMA */
{
ltLTW
,
LCMAP_LOWERCASE
,
'J'
,
'j'
},
/* LATIN CAPITAL LETTER J */
{
L"lt-LT"
,
LCMAP_LOWERCASE
,
'J'
,
'j'
},
/* LATIN CAPITAL LETTER J */
{
ltLTW
,
LCMAP_LOWERCASE
,
0x012E
,
0x012F
},
/* LATIN CAPITAL LETTER I WITH OGONEK */
{
L"lt-LT"
,
LCMAP_LOWERCASE
,
0x012E
,
0x012F
},
/* LATIN CAPITAL LETTER I WITH OGONEK */
{
ltLTW
,
LCMAP_LOWERCASE
,
0x00CC
,
0x00EC
},
/* LATIN CAPITAL LETTER I WITH GRAVE */
{
L"lt-LT"
,
LCMAP_LOWERCASE
,
0x00CC
,
0x00EC
},
/* LATIN CAPITAL LETTER I WITH GRAVE */
{
ltLTW
,
LCMAP_LOWERCASE
,
0x00CD
,
0x00ED
},
/* LATIN CAPITAL LETTER I WITH ACUTE */
{
L"lt-LT"
,
LCMAP_LOWERCASE
,
0x00CD
,
0x00ED
},
/* LATIN CAPITAL LETTER I WITH ACUTE */
{
ltLTW
,
LCMAP_LOWERCASE
,
0x0128
,
0x0129
},
/* LATIN CAPITAL LETTER I WITH TILDE */
{
L"lt-LT"
,
LCMAP_LOWERCASE
,
0x0128
,
0x0129
},
/* LATIN CAPITAL LETTER I WITH TILDE */
{
enUSW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
},
/* LATIN SMALL LETTER I */
{
L"en-US"
,
LCMAP_UPPERCASE
,
'i'
,
'I'
},
/* LATIN SMALL LETTER I */
{
ltLTW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
},
/* LATIN SMALL LETTER I */
{
L"lt-LT"
,
LCMAP_UPPERCASE
,
'i'
,
'I'
},
/* LATIN SMALL LETTER I */
{
trTRW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
},
/* LATIN SMALL LETTER I */
{
L"tr-TR"
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
},
/* LATIN SMALL LETTER I */
{
TRTRW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
},
/* LATIN SMALL LETTER I */
{
L"TR-TR"
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
},
/* LATIN SMALL LETTER I */
{
azCyrlazW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
},
/* LATIN SMALL LETTER I */
{
L"az-Cyrl-az"
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
,
TRUE
/*win7*/
},
/* LATIN SMALL LETTER I */
{
azLatnazW
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
},
/* LATIN SMALL LETTER I */
{
L"az-Latn-az"
,
LCMAP_UPPERCASE
,
'i'
,
'I'
,
0x0130
},
/* LATIN SMALL LETTER I */
{
enUSW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
},
/* LATIN CAPITAL LETTER I */
{
L"en-US"
,
LCMAP_LOWERCASE
,
'I'
,
'i'
},
/* LATIN CAPITAL LETTER I */
{
ltLTW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
},
/* LATIN CAPITAL LETTER I */
{
L"lt-LT"
,
LCMAP_LOWERCASE
,
'I'
,
'i'
},
/* LATIN CAPITAL LETTER I */
{
trTRW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
},
/* LATIN CAPITAL LETTER I */
{
L"tr-TR"
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
},
/* LATIN CAPITAL LETTER I */
{
TRTRW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
},
/* LATIN CAPITAL LETTER I */
{
L"TR-TR"
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
},
/* LATIN CAPITAL LETTER I */
{
azCyrlazW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
},
/* LATIN CAPITAL LETTER I */
{
L"az-Cyrl-az"
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
,
TRUE
/*win7*/
},
/* LATIN CAPITAL LETTER I */
{
azLatnazW
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
},
/* LATIN CAPITAL LETTER I */
{
L"az-Latn-az"
,
LCMAP_LOWERCASE
,
'I'
,
'i'
,
0x0131
},
/* LATIN CAPITAL LETTER I */
{
enUSW
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
L"en-US"
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
trTRW
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
L"tr-TR"
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
TRTRW
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
L"TR-TR"
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
azCyrlazW
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
L"az-Cyrl-az"
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
azLatnazW
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
L"az-Latn-az"
,
LCMAP_LOWERCASE
,
0x0130
,
0
,
'i'
},
/* LATIN CAPITAL LETTER I WITH DOT ABOVE */
{
enUSW
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
trTRW
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
L"tr-TR"
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
TRTRW
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
L"TR-TR"
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
azCyrlazW
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
L"az-Cyrl-az"
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
azLatnazW
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
L"az-Latn-az"
,
LCMAP_UPPERCASE
,
0x0131
,
0
,
'I'
},
/* LATIN SMALL LETTER DOTLESS I */
{
L"en-US"
,
LCMAP_LOWERCASE
,
0x10418
,
0x10440
,
0
,
TRUE
/*win7*/
},
/* DESERET CAPITAL LETTER GAY */
{
L"en-US"
,
LCMAP_UPPERCASE
,
0x10431
,
0x10409
,
0
,
TRUE
/*win7*/
},
/* DESERET SMALL LETTER SHORT AH */
};
};
if
(
!
pLCMapStringEx
)
if
(
!
pLCMapStringEx
)
...
@@ -7456,26 +7506,29 @@ static void test_SpecialCasing(void)
...
@@ -7456,26 +7506,29 @@ static void test_SpecialCasing(void)
return
;
return
;
}
}
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
tests
);
i
++
)
{
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
tests
);
i
++
)
{
memset
(
buffer
,
0
,
sizeof
(
buffer
));
memset
(
buffer
,
0
,
sizeof
(
buffer
));
len
=
put_utf16
(
src
,
tests
[
i
].
ch
);
ret
=
pLCMapStringEx
(
tests
[
i
].
lang
,
tests
[
i
].
flags
,
ret
=
pLCMapStringEx
(
tests
[
i
].
lang
,
tests
[
i
].
flags
,
&
tests
[
i
].
ch
,
1
,
buffer
,
ARRAY_SIZE
(
buffer
),
NULL
,
NULL
,
0
);
src
,
len
,
buffer
,
ARRAY_SIZE
(
buffer
),
NULL
,
NULL
,
0
);
ok
(
ret
==
1
,
"expected 1, got %d for %04x for %s
\n
"
,
ret
,
tests
[
i
].
ch
,
len
=
get_utf16
(
buffer
,
ret
,
&
val
);
wine_dbgstr_w
(
tests
[
i
].
lang
));
ok
(
ret
==
len
,
"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
;
exp
=
tests
[
i
].
exp
?
tests
[
i
].
exp
:
tests
[
i
].
ch
;
ok
(
buffer
[
0
]
==
exp
||
broken
(
buffer
[
0
]
!=
exp
),
ok
(
val
==
exp
||
broken
(
tests
[
i
].
broken
),
"expected %04x, got %04x for %04x for %s
\n
"
,
"expected %04x, got %04x for %04x for %s
\n
"
,
exp
,
buffer
[
0
]
,
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
exp
,
val
,
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
memset
(
buffer
,
0
,
sizeof
(
buffer
));
memset
(
buffer
,
0
,
sizeof
(
buffer
));
len
=
put_utf16
(
src
,
tests
[
i
].
ch
);
ret
=
pLCMapStringEx
(
tests
[
i
].
lang
,
tests
[
i
].
flags
|
LCMAP_LINGUISTIC_CASING
,
ret
=
pLCMapStringEx
(
tests
[
i
].
lang
,
tests
[
i
].
flags
|
LCMAP_LINGUISTIC_CASING
,
&
tests
[
i
].
ch
,
1
,
buffer
,
ARRAY_SIZE
(
buffer
),
NULL
,
NULL
,
0
);
src
,
len
,
buffer
,
ARRAY_SIZE
(
buffer
),
NULL
,
NULL
,
0
);
ok
(
ret
==
1
,
"expected 1, got %d for %04x for %s
\n
"
,
ret
,
tests
[
i
].
ch
,
len
=
get_utf16
(
buffer
,
ret
,
&
val
);
wine_dbgstr_w
(
tests
[
i
].
lang
));
ok
(
ret
==
len
,
"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
;
exp
=
tests
[
i
].
exp_ling
?
tests
[
i
].
exp_ling
:
exp
;
ok
(
buffer
[
0
]
==
exp
||
broken
(
buffer
[
0
]
!=
exp
),
ok
(
val
==
exp
||
broken
(
tests
[
i
].
broken
),
"expected %04x, got %04x for %04x for %s
\n
"
,
"expected %04x, got %04x for %04x for %s
\n
"
,
exp
,
buffer
[
0
]
,
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
exp
,
val
,
tests
[
i
].
ch
,
wine_dbgstr_w
(
tests
[
i
].
lang
));
}
}
}
}
...
...
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