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
2a12c6a7
Commit
2a12c6a7
authored
Jun 30, 2014
by
Aric Stewart
Committed by
Alexandre Julliard
Jul 08, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tools: Generate the Unicode Bidi Bracketing table.
parent
18d410de
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
151 additions
and
0 deletions
+151
-0
Makefile.in
dlls/usp10/Makefile.in
+1
-0
bracket.c
dlls/usp10/bracket.c
+106
-0
make_unicode
tools/make_unicode
+44
-0
No files found.
dlls/usp10/Makefile.in
View file @
2a12c6a7
...
...
@@ -4,6 +4,7 @@ IMPORTS = advapi32 user32 gdi32
C_SRCS
=
\
bidi.c
\
bracket.c
\
breaking.c
\
indic.c
\
indicsyllable.c
\
...
...
dlls/usp10/bracket.c
0 → 100644
View file @
2a12c6a7
/* Unicode Bidirectional Bracket table */
/* generated from http://www.unicode.org/Public/7.0.0/ucd/BidiBrackets.txt */
/* DO NOT EDIT!! */
const
unsigned
short
bidi_bracket_table
[
768
]
=
{
/* level 1 offsets */
0x0100
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0120
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0130
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0140
,
0x0110
,
0x0110
,
0x0150
,
0x0110
,
0x0110
,
0x0110
,
0x0160
,
0x0110
,
0x0170
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0180
,
0x0110
,
0x0190
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x0110
,
0x01a0
,
0x01b0
,
/* level 2 offsets */
0x01c0
,
0x01c0
,
0x01d0
,
0x01c0
,
0x01c0
,
0x01e0
,
0x01c0
,
0x01e0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01f0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0200
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0210
,
0x01c0
,
0x01c0
,
0x0220
,
0x0220
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0230
,
0x01c0
,
0x0240
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0250
,
0x0260
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0210
,
0x01c0
,
0x0270
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0280
,
0x0290
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0230
,
0x01c0
,
0x02a0
,
0x01c0
,
0x01c0
,
0x02b0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x0250
,
0x02c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x02d0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01d0
,
0x01c0
,
0x01c0
,
0x01e0
,
0x01c0
,
0x02e0
,
0x02f0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
0x01c0
,
/* values */
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0000
,
0x01fd
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0003
,
0x0101
,
0x00fe
,
0x01fc
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0002
,
0x0000
,
0x01fd
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0001
,
0x01fe
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
,
0x0000
};
tools/make_unicode
View file @
2a12c6a7
...
...
@@ -131,6 +131,12 @@ my %ctype =
"defin"
=>
0x0200
);
my
%
bracket_types
=
(
"o"
=>
0x0000
,
"c"
=>
0x0001
,
);
my
%
indic_types
=
(
"Other"
=>
0x0000
,
...
...
@@ -1322,6 +1328,43 @@ sub dump_mirroring($)
save_file
(
$filename
);
}
################################################################
# dump the Bidi Brackets
sub
dump_bracket
($)
{
my
$filename
=
shift
;
my
@bracket_table
=
(
0
)
x
65536
;;
my
$INPUT
=
open_data_file
(
$UNIDATA
,
"BidiBrackets.txt"
);
while
(
<
$INPUT
>
)
{
next
if
/^\#/
;
# skip comments
next
if
/^\s*$/
;
# skip empty lines
next
if
/\x1a/
;
# skip ^Z
if
(
/^\s*([0-9a-fA-F]+)\s*;\s*([0-9a-fA-F]+);\s*([con])/
)
{
my
$type
=
$3
;
die
"unknown bracket $type"
unless
defined
$bracket_types
{
$type
};
die
"characters too distant $1 and $2"
if
abs
(
hex
(
$2
)
-
hex
(
$1
))
>=
256
;
$bracket_table
[
hex
$1
]
=
(
hex
(
$2
)
-
hex
(
$1
))
%
255
;
$bracket_table
[
hex
$1
]
+=
$bracket_types
{
$type
}
<<
8
;
next
;
}
die
"malformed line $_"
;
}
close
$INPUT
;
open
OUTPUT
,
">$filename.new"
or
die
"Cannot create $filename"
;
print
"Building $filename\n"
;
print
OUTPUT
"/* Unicode Bidirectional Bracket table */\n"
;
print
OUTPUT
"/* generated from $UNIDATA/BidiBrackets.txt */\n"
;
print
OUTPUT
"/* DO NOT EDIT!! */\n\n"
;
dump_two_level_mapping
(
"bidi_bracket_table"
,
@bracket_table
);
close
OUTPUT
;
save_file
(
$filename
);
}
################################################################
# dump the Arabic shaping table
...
...
@@ -2228,6 +2271,7 @@ DUMP_SORTKEYS( "libs/wine/collation.c", READ_SORTKEYS_FILE() );
DUMP_COMPOSE_TABLES
(
"libs/wine/compose.c"
);
DUMP_CTYPE_TABLES
(
"libs/wine/wctype.c"
);
dump_mirroring
(
"dlls/usp10/mirror.c"
);
dump_bracket
(
"dlls/usp10/bracket.c"
);
dump_shaping
(
"dlls/usp10/shaping.c"
);
dump_linebreak
(
"dlls/usp10/linebreak.c"
);
dump_indic
(
"dlls/usp10/indicsyllable.c"
);
...
...
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