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
a65c818c
Commit
a65c818c
authored
Dec 14, 2011
by
Aric Stewart
Committed by
Alexandre Julliard
Dec 14, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
usp10: Add Ethiopic script.
parent
fe7652d0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
38 additions
and
1 deletion
+38
-1
shape.c
dlls/usp10/shape.c
+10
-0
usp10.c
dlls/usp10/tests/usp10.c
+10
-0
usp10.c
dlls/usp10/usp10.c
+15
-1
usp10_internal.h
dlls/usp10/usp10_internal.h
+3
-0
No files found.
dlls/usp10/shape.c
View file @
a65c818c
...
...
@@ -573,6 +573,14 @@ static const char* required_khmer_features[] =
static
OPENTYPE_FEATURE_RECORD
no_features
[]
=
{
};
static
OPENTYPE_FEATURE_RECORD
ethiopic_features
[]
=
{
{
MS_MAKE_TAG
(
'c'
,
'c'
,
'm'
,
'p'
),
1
},
{
MS_MAKE_TAG
(
'l'
,
'o'
,
'c'
,
'l'
),
1
},
{
MS_MAKE_TAG
(
'c'
,
'a'
,
'l'
,
't'
),
1
},
{
MS_MAKE_TAG
(
'l'
,
'i'
,
'g'
,
'a'
),
1
},
};
typedef
struct
ScriptShapeDataTag
{
TEXTRANGE_PROPERTIES
defaultTextRange
;
const
char
**
requiredFeatures
;
...
...
@@ -645,6 +653,8 @@ static const ScriptShapeData ShapingData[] =
{{
no_features
,
0
},
NULL
,
"kana"
,
""
,
NULL
,
NULL
},
{{
no_features
,
0
},
NULL
,
"hang"
,
""
,
NULL
,
NULL
},
{{
no_features
,
0
},
NULL
,
"yi "
,
""
,
NULL
,
NULL
},
{{
ethiopic_features
,
4
},
NULL
,
"ethi"
,
""
,
NULL
,
NULL
},
{{
ethiopic_features
,
4
},
NULL
,
"ethi"
,
""
,
NULL
,
NULL
},
};
static
INT
GSUB_is_glyph_covered
(
LPCVOID
table
,
UINT
glyph
)
...
...
dlls/usp10/tests/usp10.c
View file @
a65c818c
...
...
@@ -158,6 +158,7 @@ static inline void _test_items_ok(LPCWSTR string, DWORD cchString,
#define kana_tag MS_MAKE_TAG('k','a','n','a')
#define hang_tag MS_MAKE_TAG('h','a','n','g')
#define yi_tag MS_MAKE_TAG('y','i',' ',' ')
#define ethi_tag MS_MAKE_TAG('e','t','h','i')
static
void
test_ScriptItemize
(
void
)
{
...
...
@@ -357,6 +358,11 @@ static void test_ScriptItemize( void )
static
const
itemTest
t331
[
2
]
=
{{{
0
,
0
,
0
,
0
,
0
},
0
,
0
,
0
,
0
,
yi_tag
,
FALSE
},{{
0
,
0
,
0
,
0
,
0
},
4
,
0
,
0
,
0
,
-
1
,
FALSE
}};
static
const
itemTest
t332
[
2
]
=
{{{
0
,
0
,
0
,
0
,
0
},
0
,
0
,
0
,
2
,
yi_tag
,
FALSE
},{{
0
,
0
,
0
,
0
,
0
},
4
,
0
,
0
,
0
,
-
1
,
FALSE
}};
/* Ethiopic */
static
const
WCHAR
test34
[]
=
{
0x130d
,
0x12d5
,
0x12dd
};
static
const
itemTest
t341
[
2
]
=
{{{
0
,
0
,
0
,
0
,
0
},
0
,
0
,
0
,
0
,
ethi_tag
,
FALSE
},{{
0
,
0
,
0
,
0
,
0
},
3
,
0
,
0
,
0
,
-
1
,
FALSE
}};
static
const
itemTest
t342
[
2
]
=
{{{
0
,
0
,
0
,
0
,
0
},
0
,
0
,
0
,
2
,
ethi_tag
,
FALSE
},{{
0
,
0
,
0
,
0
,
0
},
3
,
0
,
0
,
0
,
-
1
,
FALSE
}};
SCRIPT_ITEM
items
[
15
];
SCRIPT_CONTROL
Control
;
SCRIPT_STATE
State
;
...
...
@@ -423,6 +429,7 @@ static void test_ScriptItemize( void )
test_items_ok
(
test31
,
8
,
NULL
,
NULL
,
1
,
t311
,
FALSE
,
2
);
test_items_ok
(
test32
,
3
,
NULL
,
NULL
,
1
,
t321
,
FALSE
,
0
);
test_items_ok
(
test33
,
4
,
NULL
,
NULL
,
1
,
t331
,
FALSE
,
0
);
test_items_ok
(
test34
,
3
,
NULL
,
NULL
,
1
,
t341
,
FALSE
,
0
);
State
.
uBidiLevel
=
0
;
test_items_ok
(
test1
,
4
,
&
Control
,
&
State
,
1
,
t11
,
FALSE
,
0
);
...
...
@@ -463,6 +470,7 @@ static void test_ScriptItemize( void )
test_items_ok
(
test31
,
8
,
&
Control
,
&
State
,
1
,
t311
,
FALSE
,
2
);
test_items_ok
(
test32
,
3
,
&
Control
,
&
State
,
1
,
t321
,
FALSE
,
0
);
test_items_ok
(
test33
,
4
,
&
Control
,
&
State
,
1
,
t331
,
FALSE
,
0
);
test_items_ok
(
test34
,
3
,
&
Control
,
&
State
,
1
,
t341
,
FALSE
,
0
);
State
.
uBidiLevel
=
1
;
test_items_ok
(
test1
,
4
,
&
Control
,
&
State
,
1
,
t12
,
FALSE
,
0
);
...
...
@@ -503,6 +511,7 @@ static void test_ScriptItemize( void )
test_items_ok
(
test31
,
8
,
&
Control
,
&
State
,
1
,
t312
,
FALSE
,
2
);
test_items_ok
(
test32
,
3
,
&
Control
,
&
State
,
1
,
t322
,
FALSE
,
0
);
test_items_ok
(
test33
,
4
,
&
Control
,
&
State
,
1
,
t332
,
FALSE
,
0
);
test_items_ok
(
test34
,
3
,
&
Control
,
&
State
,
1
,
t342
,
FALSE
,
2
);
State
.
uBidiLevel
=
1
;
Control
.
fMergeNeutralItems
=
TRUE
;
...
...
@@ -544,6 +553,7 @@ static void test_ScriptItemize( void )
test_items_ok
(
test31
,
8
,
&
Control
,
&
State
,
1
,
t312
,
FALSE
,
2
);
test_items_ok
(
test32
,
3
,
&
Control
,
&
State
,
1
,
t322
,
FALSE
,
0
);
test_items_ok
(
test33
,
4
,
&
Control
,
&
State
,
1
,
t332
,
FALSE
,
0
);
test_items_ok
(
test34
,
3
,
&
Control
,
&
State
,
1
,
t342
,
FALSE
,
2
);
}
static
inline
void
_test_shape_ok
(
int
valid
,
HDC
hdc
,
LPCWSTR
string
,
...
...
dlls/usp10/usp10.c
View file @
a65c818c
...
...
@@ -113,6 +113,9 @@ static const scriptRange scriptRanges[] = {
{
Script_Georgian
,
0x10a0
,
0x10ff
,
0
,
0
},
/* Hangul Jamo: U+1100–U+11FF */
{
Script_Hangul
,
0x1100
,
0x11ff
,
0
,
0
},
/* Ethiopic: U+1200–U+137F */
/* Ethiopic Extensions: U+1380–U+139F */
{
Script_Ethiopic
,
0x1200
,
0x139f
,
0
,
0
},
/* Khmer: U+1780–U+17FF */
{
Script_Khmer
,
0x1780
,
0x17ff
,
Script_Khmer_Numeric
,
0
},
/* Tai Le: U+1950–U+197F */
...
...
@@ -166,6 +169,8 @@ static const scriptRange scriptRanges[] = {
{
Script_Latin
,
0x2c60
,
0x2c7f
,
0
,
0
},
/* Georgian: U+2D00–U+2D2F */
{
Script_Georgian
,
0x2d00
,
0x2d2f
,
0
,
0
},
/* Ethiopic Extensions: U+2D80–U+2DDF */
{
Script_Ethiopic
,
0x2d80
,
0x2ddf
,
0
,
0
},
/* Cyrillic Extended-A: U+2DE0–U+2DFF */
{
Script_Cyrillic
,
0x2de0
,
0x2dff
,
0
,
0
},
/* CJK Radicals Supplement: U+2E80–U+2EFF */
...
...
@@ -509,6 +514,14 @@ static const scriptData scriptInformation[] = {
{
LANG_ENGLISH
,
0
,
0
,
0
,
0
,
DEFAULT_CHARSET
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
},
MS_MAKE_TAG
(
'y'
,
'i'
,
' '
,
' '
),
{
'M'
,
'i'
,
'c'
,
'r'
,
'o'
,
's'
,
'o'
,
'f'
,
't'
,
' '
,
'Y'
,
'i'
,
' '
,
'B'
,
'a'
,
'i'
,
't'
,
'i'
}},
{{
Script_Ethiopic
,
0
,
0
,
0
,
0
,
0
,
0
,
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
}},
{
0x5e
,
0
,
1
,
0
,
0
,
DEFAULT_CHARSET
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
MS_MAKE_TAG
(
'e'
,
't'
,
'h'
,
'i'
),
{
'N'
,
'y'
,
'a'
,
'l'
,
'a'
}},
{{
Script_Ethiopic_Numeric
,
0
,
0
,
0
,
0
,
0
,
0
,
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
}},
{
0x5e
,
1
,
1
,
0
,
0
,
DEFAULT_CHARSET
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
MS_MAKE_TAG
(
'e'
,
't'
,
'h'
,
'i'
),
{
'N'
,
'y'
,
'a'
,
'l'
,
'a'
}},
};
static
const
SCRIPT_PROPERTIES
*
script_props
[]
=
...
...
@@ -542,7 +555,8 @@ static const SCRIPT_PROPERTIES *script_props[] =
&
scriptInformation
[
52
].
props
,
&
scriptInformation
[
53
].
props
,
&
scriptInformation
[
54
].
props
,
&
scriptInformation
[
55
].
props
,
&
scriptInformation
[
56
].
props
,
&
scriptInformation
[
57
].
props
,
&
scriptInformation
[
58
].
props
,
&
scriptInformation
[
59
].
props
&
scriptInformation
[
58
].
props
,
&
scriptInformation
[
59
].
props
,
&
scriptInformation
[
60
].
props
,
&
scriptInformation
[
61
].
props
};
typedef
struct
{
...
...
dlls/usp10/usp10_internal.h
View file @
a65c818c
...
...
@@ -90,6 +90,9 @@
#define Script_Kana 57
#define Script_Hangul 58
#define Script_Yi 59
/* Unicode Chapter 13 */
#define Script_Ethiopic 60
#define Script_Ethiopic_Numeric 61
#define GLYPH_BLOCK_SHIFT 8
#define GLYPH_BLOCK_SIZE (1UL << GLYPH_BLOCK_SHIFT)
...
...
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