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
c848f42a
Commit
c848f42a
authored
Sep 05, 2022
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
unicode: Add data for high Unicode planes to the scripts table.
parent
ecbfb5e1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
15 additions
and
10 deletions
+15
-10
analyzer.c
dlls/dwrite/analyzer.c
+4
-4
bidi.c
dlls/dwrite/bidi.c
+2
-2
dwrite_private.h
dlls/dwrite/dwrite_private.h
+6
-1
opentype.c
dlls/dwrite/opentype.c
+1
-1
scripts.c
dlls/dwrite/scripts.c
+0
-0
make_unicode
tools/make_unicode
+2
-2
No files found.
dlls/dwrite/analyzer.c
View file @
c848f42a
...
...
@@ -642,9 +642,9 @@ static inline struct dwrite_fontfallback_builder *impl_from_IDWriteFontFallbackB
return
CONTAINING_RECORD
(
iface
,
struct
dwrite_fontfallback_builder
,
IDWriteFontFallbackBuilder_iface
);
}
static
inline
UINT16
get_char_script
(
WCHAR
c
)
static
inline
UINT16
get_char_script
(
UINT32
c
)
{
UINT16
script
=
get_table_entry
(
wine_scripts_table
,
c
);
UINT16
script
=
get_table_entry
_32
(
wine_scripts_table
,
c
);
return
script
==
Script_Inherited
?
Script_Unknown
:
script
;
}
...
...
@@ -816,7 +816,7 @@ static inline void set_break_condition(UINT32 pos, enum BreakConditionLocation l
BOOL
lb_is_newline_char
(
WCHAR
ch
)
{
short
c
=
get_table_entry
(
wine_linebreak_table
,
ch
);
short
c
=
get_table_entry
_16
(
wine_linebreak_table
,
ch
);
return
c
==
b_LF
||
c
==
b_NL
||
c
==
b_CR
||
c
==
b_BK
;
}
...
...
@@ -834,7 +834,7 @@ static HRESULT analyze_linebreaks(const WCHAR *text, UINT32 count, DWRITE_LINE_B
for
(
i
=
0
;
i
<
count
;
i
++
)
{
break_class
[
i
]
=
get_table_entry
(
wine_linebreak_table
,
text
[
i
]);
break_class
[
i
]
=
get_table_entry
_16
(
wine_linebreak_table
,
text
[
i
]);
breakpoints
[
i
].
breakConditionBefore
=
DWRITE_BREAK_CONDITION_NEUTRAL
;
breakpoints
[
i
].
breakConditionAfter
=
DWRITE_BREAK_CONDITION_NEUTRAL
;
...
...
dlls/dwrite/bidi.c
View file @
c848f42a
...
...
@@ -155,7 +155,7 @@ static void bidi_classify(const WCHAR *string, UINT8 *chartype, UINT32 count)
UINT32
i
;
for
(
i
=
0
;
i
<
count
;
++
i
)
chartype
[
i
]
=
get_table_entry
(
bidi_direction_table
,
string
[
i
]
);
chartype
[
i
]
=
get_table_entry
_16
(
bidi_direction_table
,
string
[
i
]
);
}
/* RESOLVE EXPLICIT */
...
...
@@ -637,7 +637,7 @@ static BracketPair *bidi_compute_bracket_pairs(IsolatedRun *iso_run)
stack_index
=
malloc
(
sizeof
(
int
)
*
iso_run
->
length
);
for
(
i
=
0
;
i
<
iso_run
->
length
;
i
++
)
{
unsigned
short
ubv
=
get_table_entry
(
bidi_bracket_table
,
iso_run
->
item
[
i
].
ch
);
unsigned
short
ubv
=
get_table_entry
_16
(
bidi_bracket_table
,
iso_run
->
item
[
i
].
ch
);
if
(
ubv
)
{
if
(
!
out
)
...
...
dlls/dwrite/dwrite_private.h
View file @
c848f42a
...
...
@@ -98,11 +98,16 @@ static inline const char *debugstr_tag(DWORD tag)
const
char
*
debugstr_sa_script
(
UINT16
)
DECLSPEC_HIDDEN
;
static
inline
unsigned
short
get_table_entry
(
const
unsigned
short
*
table
,
WCHAR
ch
)
static
inline
unsigned
short
get_table_entry
_16
(
const
unsigned
short
*
table
,
WCHAR
ch
)
{
return
table
[
table
[
table
[
ch
>>
8
]
+
((
ch
>>
4
)
&
0x0f
)]
+
(
ch
&
0xf
)];
}
static
inline
unsigned
short
get_table_entry_32
(
const
unsigned
short
*
table
,
UINT
ch
)
{
return
table
[
table
[
table
[
table
[
ch
>>
12
]
+
((
ch
>>
8
)
&
0x0f
)]
+
((
ch
>>
4
)
&
0x0f
)]
+
(
ch
&
0xf
)];
}
static
inline
BOOL
is_simulation_valid
(
DWRITE_FONT_SIMULATIONS
simulations
)
{
return
(
simulations
&
~
(
DWRITE_FONT_SIMULATIONS_NONE
|
DWRITE_FONT_SIMULATIONS_BOLD
|
...
...
dlls/dwrite/opentype.c
View file @
c848f42a
...
...
@@ -5941,7 +5941,7 @@ static unsigned int unicode_get_mirrored_char(unsigned int codepoint)
WCHAR
mirror
;
/* TODO: check if mirroring for higher planes makes sense at all */
if
(
codepoint
>
0xffff
)
return
codepoint
;
mirror
=
get_table_entry
(
wine_mirror_map
,
codepoint
);
mirror
=
get_table_entry
_16
(
wine_mirror_map
,
codepoint
);
return
mirror
?
mirror
:
codepoint
;
}
...
...
dlls/dwrite/scripts.c
View file @
c848f42a
This diff is collapsed.
Click to expand it.
tools/make_unicode
View file @
c848f42a
...
...
@@ -2993,7 +2993,7 @@ sub dump_scripts($)
print
OUTPUT
"/* DO NOT EDIT!! */\n\n"
;
print
OUTPUT
"#include \"windef.h\"\n\n"
;
dump_t
wo
_level_mapping
(
"wine_scripts_table"
,
0
,
16
,
@scripts_table
);
dump_t
hree
_level_mapping
(
"wine_scripts_table"
,
0
,
16
,
@scripts_table
);
close
OUTPUT
;
save_file
(
$filename
);
}
...
...
@@ -3257,7 +3257,7 @@ sub compress_array($$@)
}
################################################################
# dump a char ->
16-bit
value mapping table using two-level tables
# dump a char -> value mapping table using two-level tables
sub
dump_two_level_mapping
($$$@)
{
my
$name
=
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