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
ba58338b
Commit
ba58338b
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 linebreak table.
parent
c848f42a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
16 additions
and
11 deletions
+16
-11
analyzer.c
dlls/dwrite/analyzer.c
+2
-2
linebreak.c
dlls/dwrite/linebreak.c
+0
-0
bidi.c
dlls/gdi32/uniscribe/bidi.c
+2
-2
breaking.c
dlls/gdi32/uniscribe/breaking.c
+1
-1
linebreak.c
dlls/gdi32/uniscribe/linebreak.c
+0
-0
shape.c
dlls/gdi32/uniscribe/shape.c
+3
-3
usp10.c
dlls/gdi32/uniscribe/usp10.c
+1
-1
usp10_internal.h
dlls/gdi32/uniscribe/usp10_internal.h
+6
-1
make_unicode
tools/make_unicode
+1
-1
No files found.
dlls/dwrite/analyzer.c
View file @
ba58338b
...
...
@@ -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_
16
(
wine_linebreak_table
,
ch
);
short
c
=
get_table_entry_
32
(
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_
16
(
wine_linebreak_table
,
text
[
i
]);
break_class
[
i
]
=
get_table_entry_
32
(
wine_linebreak_table
,
text
[
i
]);
breakpoints
[
i
].
breakConditionBefore
=
DWRITE_BREAK_CONDITION_NEUTRAL
;
breakpoints
[
i
].
breakConditionAfter
=
DWRITE_BREAK_CONDITION_NEUTRAL
;
...
...
dlls/dwrite/linebreak.c
View file @
ba58338b
This diff is collapsed.
Click to expand it.
dlls/gdi32/uniscribe/bidi.c
View file @
ba58338b
...
...
@@ -164,7 +164,7 @@ static void classify(const WCHAR *string, WORD *chartype, DWORD count, const SCR
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
]
);
if
(
c
->
fLegacyBidiClass
&&
chartype
[
i
]
==
ES
)
{
if
(
string
[
i
]
==
'+'
||
string
[
i
]
==
'-'
)
chartype
[
i
]
=
NI
;
...
...
@@ -658,7 +658,7 @@ static BracketPair *computeBracketPairs(IsolatedRun *iso_run)
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
)
continue
;
...
...
dlls/gdi32/uniscribe/breaking.c
View file @
ba58338b
...
...
@@ -87,7 +87,7 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT
for
(
i
=
0
;
i
<
count
;
i
++
)
{
break_class
[
i
]
=
get_table_entry
(
wine_linebreak_table
,
chars
[
i
]
);
break_class
[
i
]
=
get_table_entry
_32
(
wine_linebreak_table
,
chars
[
i
]
);
break_before
[
i
]
=
0
;
memset
(
&
la
[
i
],
0
,
sizeof
(
SCRIPT_LOGATTR
));
...
...
dlls/gdi32/uniscribe/linebreak.c
View file @
ba58338b
This diff is collapsed.
Click to expand it.
dlls/gdi32/uniscribe/shape.c
View file @
ba58338b
...
...
@@ -1087,7 +1087,7 @@ static void ContextualShape_Arabic(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *p
context_shape
=
heap_alloc
(
cChars
*
sizeof
(
*
context_shape
));
for
(
i
=
0
;
i
<
cChars
;
i
++
)
context_type
[
i
]
=
get_table_entry
(
wine_shaping_table
,
pwcChars
[
i
]
);
context_type
[
i
]
=
get_table_entry
_16
(
wine_shaping_table
,
pwcChars
[
i
]
);
for
(
i
=
0
;
i
<
cChars
;
i
++
)
{
...
...
@@ -1346,7 +1346,7 @@ static void ContextualShape_Syriac(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *p
context_shape
=
heap_alloc
(
cChars
*
sizeof
(
*
context_shape
));
for
(
i
=
0
;
i
<
cChars
;
i
++
)
context_type
[
i
]
=
get_table_entry
(
wine_shaping_table
,
pwcChars
[
i
]
);
context_type
[
i
]
=
get_table_entry
_16
(
wine_shaping_table
,
pwcChars
[
i
]
);
for
(
i
=
0
;
i
<
cChars
;
i
++
)
{
...
...
@@ -2219,7 +2219,7 @@ static inline int unicode_lex(WCHAR c)
if
(
c
==
0x200C
)
return
lex_ZWNJ
;
if
(
c
==
0x00A0
)
return
lex_NBSP
;
type
=
get_table_entry
(
indic_syllabic_table
,
c
);
type
=
get_table_entry
_16
(
indic_syllabic_table
,
c
);
if
((
type
&
0x00ff
)
!=
0x0007
)
type
=
type
&
0x00ff
;
...
...
dlls/gdi32/uniscribe/usp10.c
View file @
ba58338b
...
...
@@ -856,7 +856,7 @@ static HRESULT init_script_cache(const HDC hdc, SCRIPT_CACHE *psc)
static
WCHAR
mirror_char
(
WCHAR
ch
)
{
extern
const
WCHAR
wine_mirror_map
[]
DECLSPEC_HIDDEN
;
WCHAR
mirror
=
get_table_entry
(
wine_mirror_map
,
ch
);
WCHAR
mirror
=
get_table_entry
_16
(
wine_mirror_map
,
ch
);
return
mirror
?
mirror
:
ch
;
}
...
...
dlls/gdi32/uniscribe/usp10_internal.h
View file @
ba58338b
...
...
@@ -233,11 +233,16 @@ static inline BOOL is_consonant( int type )
return
(
type
==
lex_Ra
||
type
==
lex_Consonant
);
}
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
)];
}
typedef
int
(
*
lexical_function
)(
WCHAR
c
);
typedef
void
(
*
reorder_function
)(
WCHAR
*
chars
,
IndicSyllable
*
syllable
,
lexical_function
lex
);
...
...
tools/make_unicode
View file @
ba58338b
...
...
@@ -2748,7 +2748,7 @@ sub dump_linebreak($)
print
OUTPUT
"/* DO NOT EDIT!! */\n\n"
;
print
OUTPUT
"#include \"windef.h\"\n\n"
;
dump_t
wo
_level_mapping
(
"wine_linebreak_table"
,
$break_types
{
'XX'
},
16
,
@break_table
);
dump_t
hree
_level_mapping
(
"wine_linebreak_table"
,
$break_types
{
'XX'
},
16
,
@break_table
);
close
OUTPUT
;
save_file
(
$filename
);
...
...
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