From c43444a51eb35678787443d027e2fac8c4e55f9c Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Wed, 8 Oct 2014 18:56:19 +0000 Subject: [PATCH] [USP10] * Sync with Wine 1.7.27. CORE-8540 svn path=/trunk/; revision=64606 --- reactos/dll/win32/usp10/CMakeLists.txt | 1 + reactos/dll/win32/usp10/bidi.c | 298 ++++++++++++++++----- reactos/dll/win32/usp10/bracket.c | 106 ++++++++ reactos/dll/win32/usp10/breaking.c | 1 + reactos/dll/win32/usp10/indicsyllable.c | 186 +++++++------ reactos/dll/win32/usp10/linebreak.c | 336 +++++++++++++----------- reactos/dll/win32/usp10/mirror.c | 2 +- reactos/dll/win32/usp10/shape.c | 3 +- reactos/dll/win32/usp10/shaping.c | 82 +++--- reactos/dll/win32/usp10/usp10.c | 30 +-- reactos/media/doc/README.WINE | 2 +- 11 files changed, 679 insertions(+), 368 deletions(-) create mode 100644 reactos/dll/win32/usp10/bracket.c diff --git a/reactos/dll/win32/usp10/CMakeLists.txt b/reactos/dll/win32/usp10/CMakeLists.txt index 2cf15aadecd..dd87e1ec65e 100644 --- a/reactos/dll/win32/usp10/CMakeLists.txt +++ b/reactos/dll/win32/usp10/CMakeLists.txt @@ -5,6 +5,7 @@ spec2def(usp10.dll usp10.spec ADD_IMPORTLIB) list(APPEND SOURCE bidi.c + bracket.c breaking.c indic.c indicsyllable.c diff --git a/reactos/dll/win32/usp10/bidi.c b/reactos/dll/win32/usp10/bidi.c index 8d94fd2692d..60b95923d6f 100644 --- a/reactos/dll/win32/usp10/bidi.c +++ b/reactos/dll/win32/usp10/bidi.c @@ -47,6 +47,8 @@ #include "usp10_internal.h" +extern const unsigned short bidi_bracket_table[]; + WINE_DEFAULT_DEBUG_CHANNEL(bidi); #define ASSERT(x) do { if (!(x)) FIXME("assert failed: %s\n", #x); } while(0) @@ -135,10 +137,15 @@ static const char debug_type[][4] = static inline void dump_types(const char* header, WORD *types, int start, int end) { - int i; + int i, len = 0; TRACE("%s:",header); - for (i = start; i< end; i++) + for (i = start; i < end && len < 200; i++) + { TRACE(" %s",debug_type[types[i]]); + len += strlen(debug_type[types[i]])+1; + } + if (i != end) + TRACE("..."); TRACE("\n"); } @@ -454,6 +461,12 @@ typedef struct tagRun WORD e; } Run; +typedef struct tagRunChar +{ + WCHAR ch; + WORD *pcls; +} RunChar; + typedef struct tagIsolatedRun { struct list entry; @@ -462,14 +475,14 @@ typedef struct tagIsolatedRun WORD eos; WORD e; - WORD *ppcls[1]; + RunChar item[1]; } IsolatedRun; static inline int iso_nextValidChar(IsolatedRun *iso_run, int index) { if (index >= (iso_run->length-1)) return -1; index ++; - while (index < iso_run->length && *iso_run->ppcls[index] == BN) index++; + while (index < iso_run->length && *iso_run->item[index].pcls == BN) index++; if (index == iso_run->length) return -1; return index; } @@ -479,7 +492,7 @@ static inline int iso_previousValidChar(IsolatedRun *iso_run, int index) if (index <= 0) return -1; index --; - while (index > -1 && *iso_run->ppcls[index] == BN) index--; + while (index > -1 && *iso_run->item[index].pcls == BN) index--; return index; } @@ -491,11 +504,16 @@ static inline int iso_previousChar(IsolatedRun *iso_run, int index) static inline void iso_dump_types(const char* header, IsolatedRun *iso_run) { - int i; + int i, len = 0; TRACE("%s:",header); TRACE("[ "); - for (i = 0; i < iso_run->length; i++) - TRACE(" %s",debug_type[*iso_run->ppcls[i]]); + for (i = 0; i < iso_run->length && len < 200; i++) + { + TRACE(" %s",debug_type[*iso_run->item[i].pcls]); + len += strlen(debug_type[*iso_run->item[i].pcls])+1; + } + if (i != iso_run->length) + TRACE("..."); TRACE(" ]\n"); } @@ -522,30 +540,30 @@ static void resolveWeak(IsolatedRun * iso_run) /* W1 */ for (i=0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == NSM) + if (*iso_run->item[i].pcls == NSM) { int j = iso_previousValidChar(iso_run, i); if (j == -1) - *iso_run->ppcls[i] = iso_run->sos; - else if (*iso_run->ppcls[j] >= LRI) - *iso_run->ppcls[i] = ON; + *iso_run->item[i].pcls = iso_run->sos; + else if (*iso_run->item[j].pcls >= LRI) + *iso_run->item[i].pcls = ON; else - *iso_run->ppcls[i] = *iso_run->ppcls[j]; + *iso_run->item[i].pcls = *iso_run->item[j].pcls; } } /* W2 */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == EN) + if (*iso_run->item[i].pcls == EN) { int j = iso_previousValidChar(iso_run, i); while (j > -1) { - if (*iso_run->ppcls[j] == R || *iso_run->ppcls[j] == L || *iso_run->ppcls[j] == AL) + if (*iso_run->item[j].pcls == R || *iso_run->item[j].pcls == L || *iso_run->item[j].pcls == AL) { - if (*iso_run->ppcls[j] == AL) - *iso_run->ppcls[i] = AN; + if (*iso_run->item[j].pcls == AL) + *iso_run->item[i].pcls = AN; break; } j = iso_previousValidChar(iso_run, j); @@ -556,53 +574,53 @@ static void resolveWeak(IsolatedRun * iso_run) /* W3 */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == AL) - *iso_run->ppcls[i] = R; + if (*iso_run->item[i].pcls == AL) + *iso_run->item[i].pcls = R; } /* W4 */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == ES) + if (*iso_run->item[i].pcls == ES) { int b = iso_previousValidChar(iso_run, i); int f = iso_nextValidChar(iso_run, i); - if (b > -1 && f > -1 && *iso_run->ppcls[b] == EN && *iso_run->ppcls[f] == EN) - *iso_run->ppcls[i] = EN; + if (b > -1 && f > -1 && *iso_run->item[b].pcls == EN && *iso_run->item[f].pcls == EN) + *iso_run->item[i].pcls = EN; } - else if (*iso_run->ppcls[i] == CS) + else if (*iso_run->item[i].pcls == CS) { int b = iso_previousValidChar(iso_run, i); int f = iso_nextValidChar(iso_run, i); - if (b > -1 && f > -1 && *iso_run->ppcls[b] == EN && *iso_run->ppcls[f] == EN) - *iso_run->ppcls[i] = EN; - else if (b > -1 && f > -1 && *iso_run->ppcls[b] == AN && *iso_run->ppcls[f] == AN) - *iso_run->ppcls[i] = AN; + if (b > -1 && f > -1 && *iso_run->item[b].pcls == EN && *iso_run->item[f].pcls == EN) + *iso_run->item[i].pcls = EN; + else if (b > -1 && f > -1 && *iso_run->item[b].pcls == AN && *iso_run->item[f].pcls == AN) + *iso_run->item[i].pcls = AN; } } /* W5 */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == ET) + if (*iso_run->item[i].pcls == ET) { int j; for (j = i-1 ; j > -1; j--) { - if (*iso_run->ppcls[j] == BN) continue; - if (*iso_run->ppcls[j] == ET) continue; - else if (*iso_run->ppcls[j] == EN) *iso_run->ppcls[i] = EN; + if (*iso_run->item[j].pcls == BN) continue; + if (*iso_run->item[j].pcls == ET) continue; + else if (*iso_run->item[j].pcls == EN) *iso_run->item[i].pcls = EN; else break; } - if (*iso_run->ppcls[i] == ET) + if (*iso_run->item[i].pcls == ET) { for (j = i+1; j < iso_run->length; j++) { - if (*iso_run->ppcls[j] == BN) continue; - if (*iso_run->ppcls[j] == ET) continue; - else if (*iso_run->ppcls[j] == EN) *iso_run->ppcls[i] = EN; + if (*iso_run->item[j].pcls == BN) continue; + if (*iso_run->item[j].pcls == ET) continue; + else if (*iso_run->item[j].pcls == EN) *iso_run->item[i].pcls = EN; else break; } } @@ -612,38 +630,118 @@ static void resolveWeak(IsolatedRun * iso_run) /* W6 */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == ET || *iso_run->ppcls[i] == ES || *iso_run->ppcls[i] == CS || *iso_run->ppcls[i] == ON) + if (*iso_run->item[i].pcls == ET || *iso_run->item[i].pcls == ES || *iso_run->item[i].pcls == CS || *iso_run->item[i].pcls == ON) { int b = i-1; int f = i+1; - if (b > -1 && *iso_run->ppcls[b] == BN) - *iso_run->ppcls[b] = ON; - if (f < iso_run->length && *iso_run->ppcls[f] == BN) - *iso_run->ppcls[f] = ON; + if (b > -1 && *iso_run->item[b].pcls == BN) + *iso_run->item[b].pcls = ON; + if (f < iso_run->length && *iso_run->item[f].pcls == BN) + *iso_run->item[f].pcls = ON; - *iso_run->ppcls[i] = ON; + *iso_run->item[i].pcls = ON; } } /* W7 */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == EN) + if (*iso_run->item[i].pcls == EN) { int j; for (j = iso_previousValidChar(iso_run, i); j > -1; j = iso_previousValidChar(iso_run, j)) - if (*iso_run->ppcls[j] == R || *iso_run->ppcls[j] == L) + if (*iso_run->item[j].pcls == R || *iso_run->item[j].pcls == L) { - if (*iso_run->ppcls[j] == L) - *iso_run->ppcls[i] = L; + if (*iso_run->item[j].pcls == L) + *iso_run->item[i].pcls = L; break; } if (iso_run->sos == L && j == -1) - *iso_run->ppcls[i] = L; + *iso_run->item[i].pcls = L; } } } +typedef struct tagBracketPair +{ + int start; + int end; +} BracketPair; + +static int compr(const void *a, const void* b) +{ + return ((BracketPair*)a)->start - ((BracketPair*)b)->start; +} + +static BracketPair *computeBracketPairs(IsolatedRun *iso_run) +{ + WCHAR *open_stack; + int *stack_index; + int stack_top = iso_run->length; + BracketPair *out = NULL; + int pair_count = 0; + int i; + + open_stack = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * iso_run->length); + stack_index = HeapAlloc(GetProcessHeap(), 0, 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); + if (ubv) + { + if (!out) + { + out = HeapAlloc(GetProcessHeap(),0,sizeof(BracketPair)); + out[0].start = -1; + } + + if ((ubv >> 8) == 0) + { + stack_top --; + open_stack[stack_top] = iso_run->item[i].ch + (signed char)(ubv & 0xff); + /* deal with canonical equivalent U+2329/232A and U+3008/3009 */ + if (open_stack[stack_top] == 0x232A) + open_stack[stack_top] = 0x3009; + stack_index[stack_top] = i; + } + else if ((ubv >> 8) == 1) + { + int j; + if (stack_top == iso_run->length) continue; + for (j = stack_top; j < iso_run->length; j++) + { + WCHAR c = iso_run->item[i].ch; + if (c == 0x232A) c = 0x3009; + if (c == open_stack[j]) + { + out[pair_count].start = stack_index[j]; + out[pair_count].end = i; + pair_count++; + out = HeapReAlloc(GetProcessHeap(), 0, out, sizeof(BracketPair) * (pair_count+1)); + out[pair_count].start = -1; + stack_top = j+1; + break; + } + } + } + } + } + if (pair_count == 0) + { + HeapFree(GetProcessHeap(),0,out); + out = NULL; + } + else if (pair_count > 1) + qsort(out, pair_count, sizeof(BracketPair), compr); + + HeapFree(GetProcessHeap(), 0, open_stack); + HeapFree(GetProcessHeap(), 0, stack_index); + return out; +} + +#define N0_TYPE(a) ((a == AN || a == EN)?R:a) + /*------------------------------------------------------------------------ Function: resolveNeutrals @@ -665,31 +763,87 @@ static void resolveWeak(IsolatedRun * iso_run) static void resolveNeutrals(IsolatedRun *iso_run) { int i; + BracketPair *pairs = NULL; /* Translate isolates into NI */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] >= LRI) - *iso_run->ppcls[i] = NI; + if (*iso_run->item[i].pcls >= LRI) + *iso_run->item[i].pcls = NI; - switch(*iso_run->ppcls[i]) + switch(*iso_run->item[i].pcls) { case B: case S: - case WS: *iso_run->ppcls[i] = NI; + case WS: *iso_run->item[i].pcls = NI; } - ASSERT(*iso_run->ppcls[i] < 5 || *iso_run->ppcls[i] == BN); /* "Only NI, L, R, AN, EN and BN are allowed" */ + ASSERT(*iso_run->item[i].pcls < 5 || *iso_run->item[i].pcls == BN); /* "Only NI, L, R, AN, EN and BN are allowed" */ } /* N0: Skipping bracketed pairs for now */ + pairs = computeBracketPairs(iso_run); + if (pairs) + { + BracketPair *p = &pairs[0]; + int i = 0; + while (p->start >= 0) + { + int j; + int e = EmbeddingDirection(iso_run->e); + int o = EmbeddingDirection(iso_run->e+1); + BOOL flag_o = FALSE; + TRACE("Bracket Pair [%i - %i]\n",p->start, p->end); + + /* N0.b */ + for (j = p->start+1; j < p->end; j++) + { + if (N0_TYPE(*iso_run->item[j].pcls) == e) + { + *iso_run->item[p->start].pcls = e; + *iso_run->item[p->end].pcls = e; + break; + } + else if (N0_TYPE(*iso_run->item[j].pcls) == o) + flag_o = TRUE; + } + /* N0.c */ + if (j == p->end && flag_o) + { + for (j = p->start; j >= 0; j--) + { + if (N0_TYPE(*iso_run->item[j].pcls) == o) + { + *iso_run->item[p->start].pcls = o; + *iso_run->item[p->end].pcls = o; + break; + } + else if (N0_TYPE(*iso_run->item[j].pcls) == e) + { + *iso_run->item[p->start].pcls = e; + *iso_run->item[p->end].pcls = e; + break; + } + } + if ( j < 0 ) + { + *iso_run->item[p->start].pcls = iso_run->sos; + *iso_run->item[p->end].pcls = iso_run->sos; + } + } + + i++; + p = &pairs[i]; + } + HeapFree(GetProcessHeap(),0,pairs); + } /* N1 */ for (i = 0; i < iso_run->length; i++) { WORD l,r; - if (*iso_run->ppcls[i] == NI) + if (*iso_run->item[i].pcls == NI) { int j; int b = iso_previousValidChar(iso_run, i); @@ -701,24 +855,24 @@ static void resolveNeutrals(IsolatedRun *iso_run) } else { - if (*iso_run->ppcls[b] == R || *iso_run->ppcls[b] == AN || *iso_run->ppcls[b] == EN) + if (*iso_run->item[b].pcls == R || *iso_run->item[b].pcls == AN || *iso_run->item[b].pcls == EN) l = R; - else if (*iso_run->ppcls[b] == L) + else if (*iso_run->item[b].pcls == L) l = L; else /* No string type */ continue; } j = iso_nextValidChar(iso_run, i); - while (j > -1 && *iso_run->ppcls[j] == NI) j = iso_nextValidChar(iso_run, j); + while (j > -1 && *iso_run->item[j].pcls == NI) j = iso_nextValidChar(iso_run, j); if (j == -1) { r = iso_run->eos; j = iso_run->length; } - else if (*iso_run->ppcls[j] == R || *iso_run->ppcls[j] == AN || *iso_run->ppcls[j] == EN) + else if (*iso_run->item[j].pcls == R || *iso_run->item[j].pcls == AN || *iso_run->item[j].pcls == EN) r = R; - else if (*iso_run->ppcls[j] == L) + else if (*iso_run->item[j].pcls == L) r = L; else /* No string type */ continue; @@ -726,7 +880,7 @@ static void resolveNeutrals(IsolatedRun *iso_run) if (r == l) { for (b = i; b < j && b < iso_run->length; b++) - *iso_run->ppcls[b] = r; + *iso_run->item[b].pcls = r; } } } @@ -734,15 +888,15 @@ static void resolveNeutrals(IsolatedRun *iso_run) /* N2 */ for (i = 0; i < iso_run->length; i++) { - if (*iso_run->ppcls[i] == NI) + if (*iso_run->item[i].pcls == NI) { int b = i-1; int f = i+1; - *iso_run->ppcls[i] = EmbeddingDirection(iso_run->e); - if (b > -1 && *iso_run->ppcls[b] == BN) - *iso_run->ppcls[b] = EmbeddingDirection(iso_run->e); - if (f < iso_run->length && *iso_run->ppcls[f] == BN) - *iso_run->ppcls[f] = EmbeddingDirection(iso_run->e); + *iso_run->item[i].pcls = EmbeddingDirection(iso_run->e); + if (b > -1 && *iso_run->item[b].pcls == BN) + *iso_run->item[b].pcls = EmbeddingDirection(iso_run->e); + if (f < iso_run->length && *iso_run->item[f].pcls == BN) + *iso_run->item[f].pcls = EmbeddingDirection(iso_run->e); } } } @@ -816,7 +970,7 @@ static void resolveResolved(unsigned baselevel, const WORD * pcls, WORD *plevel, } } -static void computeIsolatingRunsSet(unsigned baselevel, WORD *pcls, WORD *pLevel, int uCount, struct list *set) +static void computeIsolatingRunsSet(unsigned baselevel, WORD *pcls, WORD *pLevel, LPCWSTR lpString, int uCount, struct list *set) { int run_start, run_end, i; int run_count = 0; @@ -851,7 +1005,7 @@ static void computeIsolatingRunsSet(unsigned baselevel, WORD *pcls, WORD *pLevel { int type_fence, real_end; int j; - current_isolated = HeapAlloc(GetProcessHeap(), 0, sizeof(IsolatedRun) + sizeof(WORD*)*uCount); + current_isolated = HeapAlloc(GetProcessHeap(), 0, sizeof(IsolatedRun) + sizeof(RunChar)*uCount); if (!current_isolated) break; run_start = runs[k].start; @@ -859,7 +1013,10 @@ static void computeIsolatingRunsSet(unsigned baselevel, WORD *pcls, WORD *pLevel current_isolated->length = (runs[k].end - runs[k].start)+1; for (j = 0; j < current_isolated->length; j++) - current_isolated->ppcls[j] = &pcls[runs[k].start+j]; + { + current_isolated->item[j].pcls = &pcls[runs[k].start+j]; + current_isolated->item[j].ch = lpString[runs[k].start+j]; + } run_end = runs[k].end; @@ -886,7 +1043,10 @@ search: current_isolated->length += (runs[j].end - runs[j].start)+1; for (m = 0; l < current_isolated->length; l++, m++) - current_isolated->ppcls[l] = &pcls[runs[j].start+m]; + { + current_isolated->item[l].pcls = &pcls[runs[j].start+m]; + current_isolated->item[l].ch = lpString[runs[j].start+m]; + } TRACE("[%i -- %i]",runs[j].start, runs[j].end); @@ -979,7 +1139,7 @@ BOOL BIDI_DetermineLevels( if (TRACE_ON(bidi)) dump_types("After Explicit", chartype, 0, uCount); /* X10/BD13: Computer Isolating runs */ - computeIsolatingRunsSet(baselevel, chartype, lpOutLevels, uCount, &IsolatingRuns); + computeIsolatingRunsSet(baselevel, chartype, lpOutLevels, lpString, uCount, &IsolatingRuns); LIST_FOR_EACH_ENTRY_SAFE(iso_run, next, &IsolatingRuns, IsolatedRun, entry) { diff --git a/reactos/dll/win32/usp10/bracket.c b/reactos/dll/win32/usp10/bracket.c new file mode 100644 index 00000000000..20df6fa11f2 --- /dev/null +++ b/reactos/dll/win32/usp10/bracket.c @@ -0,0 +1,106 @@ +/* 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 +}; diff --git a/reactos/dll/win32/usp10/breaking.c b/reactos/dll/win32/usp10/breaking.c index e60b390d23c..815c0c27a6c 100644 --- a/reactos/dll/win32/usp10/breaking.c +++ b/reactos/dll/win32/usp10/breaking.c @@ -265,6 +265,7 @@ void BREAK_line(const WCHAR *chars, int count, const SCRIPT_ANALYSIS *sa, SCRIPT else_break(&break_before[i],b_s); if (i < count-1) else_break(&break_before[i+1],b_s); + break; /* LB21 */ case b_BA: case b_HY: diff --git a/reactos/dll/win32/usp10/indicsyllable.c b/reactos/dll/win32/usp10/indicsyllable.c index c6beeb90436..821a10f7715 100644 --- a/reactos/dll/win32/usp10/indicsyllable.c +++ b/reactos/dll/win32/usp10/indicsyllable.c @@ -1,18 +1,16 @@ /* Unicode Indic Syllabic Category */ -/* generated from http://www.unicode.org/Public/6.3.0/ucd/IndicSyllabicCategory.txt */ -/* and from http://www.unicode.org/Public/6.3.0/ucd/IndicMatraCategory.txt */ +/* generated from http://www.unicode.org/Public/7.0.0/ucd/IndicSyllabicCategory.txt */ +/* and from http://www.unicode.org/Public/7.0.0/ucd/IndicMatraCategory.txt */ /* DO NOT EDIT!! */ -//#include "wine/unicode.h" - -const unsigned short indic_syllabic_table[2704] = +const unsigned short indic_syllabic_table[2864] = { /* level 1 offsets */ 0x0100, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170, 0x0180, 0x0190, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x01a0, 0x0110, 0x01b0, 0x01c0, 0x01d0, 0x01e0, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x01f0, 0x0110, 0x0110, + 0x01f0, 0x0110, 0x0110, 0x0110, 0x0110, 0x0200, 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, @@ -29,7 +27,7 @@ const unsigned short indic_syllabic_table[2704] = 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0200, 0x0210, 0x0220, 0x0230, 0x0110, 0x0110, 0x0110, 0x0110, + 0x0210, 0x0220, 0x0230, 0x0240, 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, @@ -41,53 +39,61 @@ const unsigned short indic_syllabic_table[2704] = 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* level 2 offsets */ - 0x0240, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0260, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0270, 0x0280, 0x0290, 0x02a0, 0x02b0, 0x02c0, 0x02d0, 0x02e0, - 0x02f0, 0x0300, 0x0310, 0x0320, 0x0330, 0x0340, 0x02d0, 0x0350, - 0x0360, 0x0300, 0x0310, 0x0370, 0x0380, 0x0390, 0x0250, 0x03a0, - 0x03b0, 0x03c0, 0x0310, 0x03d0, 0x03e0, 0x0250, 0x02d0, 0x0250, - 0x02f0, 0x0300, 0x0310, 0x03f0, 0x0400, 0x0410, 0x02d0, 0x0420, - 0x0430, 0x0440, 0x0450, 0x0460, 0x0470, 0x0480, 0x0250, 0x0250, - 0x0490, 0x04a0, 0x0310, 0x04b0, 0x04c0, 0x04d0, 0x02d0, 0x0250, - 0x04e0, 0x04a0, 0x0310, 0x04f0, 0x0500, 0x0510, 0x02d0, 0x0250, - 0x04e0, 0x04a0, 0x0290, 0x0520, 0x0530, 0x0480, 0x02d0, 0x0540, - 0x0550, 0x0560, 0x0290, 0x0570, 0x0580, 0x0590, 0x0250, 0x05a0, - 0x05b0, 0x0290, 0x05c0, 0x05d0, 0x05e0, 0x0250, 0x0250, 0x0250, - 0x05f0, 0x0600, 0x0610, 0x0620, 0x0630, 0x0640, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0650, 0x0290, 0x0660, 0x0670, - 0x0680, 0x0690, 0x06a0, 0x06b0, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0290, 0x0290, 0x06c0, 0x06d0, 0x0250, 0x06e0, 0x06f0, 0x0700, - 0x0710, 0x0720, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0730, 0x0740, 0x0750, 0x0740, 0x0750, 0x0760, 0x0730, 0x0770, - 0x0290, 0x0290, 0x0780, 0x0790, 0x07a0, 0x07b0, 0x0250, 0x0250, - 0x07c0, 0x0660, 0x07d0, 0x07e0, 0x0250, 0x0290, 0x07f0, 0x0800, - 0x0250, 0x0250, 0x0250, 0x0810, 0x0820, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0830, 0x0250, 0x0250, 0x0250, 0x0840, 0x0850, 0x0860, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0870, 0x0250, 0x0250, 0x0880, 0x0890, 0x0250, 0x0250, 0x0250, - 0x08a0, 0x0250, 0x08b0, 0x08c0, 0x0250, 0x0250, 0x08d0, 0x08e0, - 0x0250, 0x0250, 0x08f0, 0x0900, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0910, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0920, 0x0250, 0x0250, 0x0250, - 0x0930, 0x0250, 0x0940, 0x0250, 0x0250, 0x0250, 0x0950, 0x0960, - 0x0970, 0x0250, 0x0250, 0x0980, 0x0990, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x09a0, 0x09b0, 0x0250, 0x0250, - 0x09c0, 0x0250, 0x0250, 0x09d0, 0x09e0, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x09f0, 0x0a00, 0x0a10, 0x0250, 0x0250, 0x0a20, - 0x0250, 0x0250, 0x0250, 0x0a30, 0x0a40, 0x0250, 0x0a50, 0x0a60, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, - 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0a70, 0x0a80, 0x0250, + 0x0250, 0x0260, 0x0270, 0x0280, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0290, 0x0260, 0x0260, 0x02a0, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x02b0, 0x02c0, 0x02d0, 0x02e0, 0x02f0, 0x0300, 0x0310, 0x0320, + 0x0330, 0x0340, 0x0350, 0x0360, 0x0370, 0x0380, 0x0310, 0x0390, + 0x03a0, 0x0340, 0x0350, 0x03b0, 0x03c0, 0x03d0, 0x03e0, 0x03f0, + 0x0400, 0x0410, 0x0350, 0x0420, 0x0430, 0x0260, 0x0310, 0x0260, + 0x0330, 0x0340, 0x0350, 0x0440, 0x0450, 0x0460, 0x0310, 0x0470, + 0x0480, 0x0490, 0x04a0, 0x04b0, 0x04c0, 0x04d0, 0x03e0, 0x0260, + 0x04e0, 0x04f0, 0x0350, 0x0500, 0x0510, 0x0520, 0x0310, 0x0260, + 0x0530, 0x04f0, 0x0350, 0x0540, 0x0550, 0x0560, 0x0310, 0x0260, + 0x0530, 0x04f0, 0x02d0, 0x0570, 0x0580, 0x04d0, 0x0310, 0x0590, + 0x05a0, 0x05b0, 0x02d0, 0x05c0, 0x05d0, 0x05e0, 0x03e0, 0x05f0, + 0x0600, 0x02d0, 0x0610, 0x0620, 0x0630, 0x0280, 0x0260, 0x0260, + 0x0640, 0x0650, 0x0660, 0x0670, 0x0680, 0x0690, 0x0260, 0x0260, + 0x0260, 0x0260, 0x06a0, 0x06b0, 0x06c0, 0x02d0, 0x06d0, 0x06e0, + 0x06f0, 0x0700, 0x0710, 0x0720, 0x0260, 0x0260, 0x0260, 0x0260, + 0x02d0, 0x02d0, 0x0730, 0x0740, 0x0750, 0x0760, 0x0770, 0x0780, + 0x0790, 0x07a0, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x07b0, 0x07c0, 0x07d0, 0x07c0, 0x07d0, 0x07e0, 0x07b0, 0x07f0, + 0x02d0, 0x02d0, 0x0800, 0x0810, 0x0820, 0x0830, 0x0280, 0x0260, + 0x0840, 0x0610, 0x0850, 0x0860, 0x03e0, 0x02d0, 0x0870, 0x0880, + 0x0260, 0x0260, 0x0260, 0x0890, 0x08a0, 0x0260, 0x0260, 0x0260, + 0x0260, 0x08b0, 0x0260, 0x0260, 0x0260, 0x08c0, 0x08d0, 0x08e0, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x08f0, 0x0260, 0x0260, 0x0900, 0x0910, 0x0260, 0x0260, 0x0260, + 0x0920, 0x0260, 0x0930, 0x0940, 0x0260, 0x0260, 0x0950, 0x0960, + 0x0260, 0x0260, 0x0970, 0x0980, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0990, 0x09a0, + 0x09b0, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x09c0, 0x0260, 0x0260, 0x0260, + 0x09d0, 0x0260, 0x09e0, 0x0260, 0x0260, 0x0260, 0x09f0, 0x0a00, + 0x0a10, 0x0260, 0x0260, 0x0a20, 0x0a30, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0a40, 0x0a50, 0x0260, 0x0260, + 0x0a60, 0x0260, 0x0260, 0x0a70, 0x0a80, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0a90, 0x0aa0, 0x0ab0, 0x0260, 0x0260, 0x0ac0, + 0x0260, 0x0260, 0x0260, 0x0ad0, 0x0ae0, 0x0260, 0x0af0, 0x0b00, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0b10, 0x0b20, 0x0260, /* values */ - 0x4d00, 0x8700, 0x8000, 0x8000, 0x7100, 0x7100, 0x7100, 0x7100, - 0x6900, 0x5900, 0x4800, 0x3f00, 0x3000, 0x1f00, 0x1300, 0x0a00, + 0x5f00, 0x9900, 0x9200, 0x9200, 0x8300, 0x8300, 0x8300, 0x8300, + 0x7b00, 0x6b00, 0x5a00, 0x5100, 0x4200, 0x2d00, 0x1700, 0x0a00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x000a, 0x000a, 0x000a, @@ -98,12 +104,12 @@ const unsigned short indic_syllabic_table[2704] = 0x000a, 0x000a, 0x0507, 0x0107, 0x0004, 0x0003, 0x0107, 0x0207, 0x0107, 0x0607, 0x0607, 0x0607, 0x0607, 0x0507, 0x0507, 0x0507, 0x0507, 0x0107, 0x0107, 0x0107, 0x0107, 0x0605, 0x0207, 0x0107, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0507, 0x0607, 0x0607, + 0x0000, 0x0013, 0x0013, 0x0000, 0x0000, 0x0507, 0x0607, 0x0607, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x0006, 0x0006, 0x0607, 0x0607, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0006, 0x0006, 0x0607, 0x0607, 0x0000, 0x0000, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, - 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0001, 0x0001, 0x0002, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, 0x0000, 0x0000, 0x0006, 0x0006, 0x000a, 0x000a, 0x000a, @@ -126,7 +132,9 @@ const unsigned short indic_syllabic_table[2704] = 0x0507, 0x0000, 0x0000, 0x0507, 0x0507, 0x0605, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000, - 0x0001, 0x0000, 0x0009, 0x0009, 0x0000, 0x000e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x0001, 0x0518, 0x0009, 0x0009, 0x0000, 0x000e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0002, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, @@ -156,17 +164,17 @@ const unsigned short indic_syllabic_table[2704] = 0x0207, 0x0000, 0x0407, 0x0407, 0x0407, 0x0505, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0107, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0001, 0x0001, 0x0002, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0001, 0x0001, 0x0001, 0x0002, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x0006, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, - 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0003, 0x0507, 0x0507, 0x0507, 0x0107, 0x0107, 0x0107, 0x0107, 0x0000, 0x0507, 0x0507, 0x0007, 0x0000, 0x0507, 0x0507, 0x0507, 0x0505, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0507, 0x0607, 0x0000, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0002, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0000, 0x0001, 0x0001, 0x0002, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0006, 0x0006, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0004, 0x0003, 0x0107, 0x0507, @@ -177,7 +185,7 @@ const unsigned short indic_syllabic_table[2704] = 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0003, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0607, 0x0607, 0x0000, 0x0207, 0x0207, - 0x0207, 0x0000, 0x0407, 0x0407, 0x0407, 0x0505, 0x000c, 0x0000, + 0x0207, 0x0000, 0x0407, 0x0407, 0x0407, 0x0505, 0x0015, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x0000, 0x0000, 0x0001, 0x0002, 0x0000, 0x0006, 0x0006, 0x0006, @@ -189,7 +197,7 @@ const unsigned short indic_syllabic_table[2704] = 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0505, 0x0000, 0x0000, 0x0000, 0x0000, 0x0107, 0x0107, 0x0107, 0x0507, 0x0507, 0x0607, 0x0000, 0x0607, 0x0000, - 0x0107, 0x0207, 0x0007, 0x0207, 0x0407, 0x0407, 0x0407, 0x0107, + 0x0107, 0x0207, 0x0007, 0x0207, 0x0007, 0x0007, 0x0007, 0x0107, 0x0000, 0x0000, 0x0107, 0x0107, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, @@ -197,9 +205,9 @@ const unsigned short indic_syllabic_table[2704] = 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0107, 0x0507, 0x0107, 0x0107, 0x0507, 0x0507, 0x0507, 0x0507, - 0x0607, 0x0607, 0x0605, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0607, 0x0607, 0x0616, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0307, 0x0307, 0x0307, 0x0307, 0x0307, 0x0107, 0x0000, 0x0507, - 0x0013, 0x0013, 0x0013, 0x0013, 0x0000, 0x0001, 0x0505, 0x0000, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0000, 0x0001, 0x0516, 0x0000, 0x0000, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000, 0x0000, 0x000a, 0x000a, 0x0000, 0x000a, 0x0000, 0x0000, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, @@ -210,15 +218,19 @@ const unsigned short indic_syllabic_table[2704] = 0x0607, 0x0607, 0x0000, 0x0507, 0x000e, 0x000e, 0x0000, 0x0000, 0x0307, 0x0307, 0x0307, 0x0307, 0x0307, 0x0000, 0x0000, 0x0000, 0x0013, 0x0013, 0x0013, 0x0013, 0x0000, 0x0001, 0x0000, 0x0000, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0607, 0x0507, 0x0007, 0x0607, 0x0607, 0x0707, 0x0707, 0x0707, 0x0707, 0x0507, 0x0507, 0x0507, 0x0507, 0x0001, 0x0002, - 0x0507, 0x0007, 0x0001, 0x0001, 0x0605, 0x0003, 0x0000, 0x0000, + 0x0507, 0x0007, 0x0001, 0x0001, 0x0616, 0x0003, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x0000, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, @@ -229,7 +241,9 @@ const unsigned short indic_syllabic_table[2704] = 0x000a, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0107, 0x0107, 0x0507, 0x0507, 0x0607, 0x0607, 0x0207, 0x0507, 0x0507, 0x0507, 0x0507, 0x0001, 0x0013, - 0x0002, 0x0e05, 0x0505, 0x000e, 0x000e, 0x000e, 0x000e, 0x000a, + 0x0002, 0x0017, 0x0516, 0x000e, 0x000e, 0x000e, 0x000e, 0x000a, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x000a, 0x000a, 0x0006, 0x0006, 0x0006, 0x0006, 0x0107, 0x0107, 0x0607, 0x0607, 0x000a, 0x000a, 0x000a, 0x000a, 0x000e, 0x000e, 0x000e, 0x000a, 0x0107, 0x0013, 0x0013, 0x000a, 0x000a, 0x0107, @@ -238,11 +252,11 @@ const unsigned short indic_syllabic_table[2704] = 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000e, 0x0107, 0x0207, 0x0507, 0x0507, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x000a, 0x0013, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0013, 0x0013, 0x0107, 0x0507, 0x0000, 0x0000, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x0013, 0x0013, 0x0107, 0x0507, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a, - 0x000a, 0x000a, 0x0507, 0x0607, 0x0605, 0x0000, 0x0000, 0x0000, + 0x000a, 0x000a, 0x0507, 0x0607, 0x0616, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, @@ -255,8 +269,8 @@ const unsigned short indic_syllabic_table[2704] = 0x0006, 0x0006, 0x0006, 0x0006, 0x0000, 0x0000, 0x0107, 0x0507, 0x0507, 0x0507, 0x0507, 0x0607, 0x0607, 0x0607, 0x0007, 0x0007, 0x0007, 0x0207, 0x0207, 0x0207, 0x0407, 0x0407, 0x0001, 0x0002, - 0x0107, 0x0014, 0x0014, 0x0000, 0x000c, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0505, 0x0e05, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0107, 0x0514, 0x0514, 0x0514, 0x050c, 0x0500, 0x0500, 0x0500, + 0x0500, 0x0516, 0x0017, 0x0500, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0x0000, 0x0000, 0x0000, 0x0009, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, @@ -273,10 +287,10 @@ const unsigned short indic_syllabic_table[2704] = 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0500, - 0x0600, 0x0200, 0x0100, 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x000f, + 0x0600, 0x0200, 0x0100, 0x0507, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x020e, 0x000e, 0x000f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0e05, 0x0107, 0x0507, 0x0100, 0x0100, 0x0500, 0x0500, 0x0500, + 0x0017, 0x0107, 0x0507, 0x0100, 0x0100, 0x0500, 0x0500, 0x0500, 0x0500, 0x0600, 0x0600, 0x0500, 0x0600, 0x0100, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0500, 0x0500, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -289,22 +303,26 @@ const unsigned short indic_syllabic_table[2704] = 0x0001, 0x000c, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000d, 0x0000, 0x0000, 0x0500, 0x0600, 0x0200, 0x0100, - 0x0500, 0x0500, 0x0105, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0500, 0x0500, 0x0116, 0x0017, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0007, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0007, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0107, + 0x0500, 0x0500, 0x0100, 0x0100, 0x0100, 0x0507, 0x0107, 0x0507, 0x0000, 0x0000, 0x0100, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0200, 0x0200, 0x0000, 0x0100, 0x0100, 0x0607, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0200, 0x0200, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0013, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0013, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x001a, 0x001b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0505, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0516, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0100, 0x0600, 0x0500, 0x0107, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -320,7 +338,7 @@ const unsigned short indic_syllabic_table[2704] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0600, 0x0600, 0x0500, 0x0600, 0x0600, 0x0600, 0x0600, 0x0000, - 0x0000, 0x0000, 0x000f, 0x0105, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x000f, 0x0116, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -330,22 +348,22 @@ const unsigned short indic_syllabic_table[2704] = 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0500, 0x0500, 0x0500, 0x0500, 0x0600, 0x0500, 0x0200, - 0x0200, 0x0500, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0200, 0x0500, 0x0600, 0x0000, 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, 0x000f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x000a, 0x0013, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x000a, 0x0013, 0x0013, 0x0013, 0x0000, 0x0000, 0x0507, 0x0107, 0x0500, 0x0500, 0x0600, 0x0300, 0x0300, 0x0500, 0x0500, 0x0000, 0x0100, 0x0300, 0x0300, 0x0100, 0x0507, 0x0013, 0x0012, 0x0013, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0200, 0x0600, 0x0500, 0x0200, 0x0100, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0e05, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0207, 0x0600, 0x0500, 0x0200, 0x0100, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0017, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 0x0100, 0x0507, 0x0100, 0x0100, - 0x0607, 0x0100, 0x0100, 0x0000, 0x0013, 0x0605, 0x0000, 0x0000 + 0x0607, 0x0100, 0x0100, 0x0000, 0x0013, 0x0616, 0x0000, 0x0000 }; diff --git a/reactos/dll/win32/usp10/linebreak.c b/reactos/dll/win32/usp10/linebreak.c index 3a0bc1c0ca8..a0452c98728 100644 --- a/reactos/dll/win32/usp10/linebreak.c +++ b/reactos/dll/win32/usp10/linebreak.c @@ -1,10 +1,8 @@ /* Unicode Line Break Properties */ -/* generated from http://www.unicode.org/Public/6.3.0/ucd/LineBreak.txt */ +/* generated from http://www.unicode.org/Public/7.0.0/ucd/LineBreak.txt */ /* DO NOT EDIT!! */ -//#include "wine/unicode.h" - -const unsigned short wine_linebreak_table[7072] = +const unsigned short wine_linebreak_table[7232] = { /* level 1 offsets */ 0x0100, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170, @@ -50,30 +48,30 @@ const unsigned short wine_linebreak_table[7072] = 0x0680, 0x05b0, 0x0690, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x06a0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x05b0, 0x05b0, 0x06b0, 0x06c0, 0x05b0, 0x06d0, 0x06c0, 0x05b0, - 0x06e0, 0x06f0, 0x0580, 0x0700, 0x0710, 0x0720, 0x0730, 0x0740, - 0x0750, 0x0760, 0x05b0, 0x05b0, 0x0770, 0x0580, 0x0780, 0x0790, - 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x07a0, 0x07b0, 0x07c0, - 0x07d0, 0x07e0, 0x05b0, 0x0580, 0x07f0, 0x05b0, 0x05b0, 0x05b0, - 0x05b0, 0x05b0, 0x0800, 0x0810, 0x07c0, 0x05b0, 0x0770, 0x0820, - 0x05b0, 0x0830, 0x0840, 0x0850, 0x05b0, 0x0860, 0x0870, 0x0870, - 0x0870, 0x0870, 0x0880, 0x0870, 0x0870, 0x0870, 0x0890, 0x08a0, - 0x08b0, 0x05b0, 0x05b0, 0x08c0, 0x0580, 0x08d0, 0x08e0, 0x08f0, - 0x0900, 0x0910, 0x0920, 0x0930, 0x0940, 0x0950, 0x0960, 0x0970, - 0x0980, 0x0910, 0x0920, 0x0990, 0x09a0, 0x09b0, 0x09c0, 0x09d0, - 0x09e0, 0x0690, 0x0920, 0x09f0, 0x0a00, 0x0a10, 0x0960, 0x0a20, - 0x0900, 0x0910, 0x0920, 0x09f0, 0x0a30, 0x0a40, 0x0960, 0x06b0, - 0x0a50, 0x0a60, 0x0a70, 0x0a80, 0x0a90, 0x0aa0, 0x09c0, 0x0ab0, - 0x0ac0, 0x0ad0, 0x0920, 0x0ae0, 0x0af0, 0x0b00, 0x0960, 0x0b10, - 0x0b20, 0x0ad0, 0x0920, 0x0b30, 0x0af0, 0x0b40, 0x0960, 0x0b50, - 0x0b20, 0x0ad0, 0x05b0, 0x0b60, 0x0b70, 0x0b80, 0x0960, 0x0b90, - 0x0ba0, 0x0bb0, 0x05b0, 0x0bc0, 0x0bd0, 0x0be0, 0x0870, 0x0bf0, - 0x0c00, 0x0c10, 0x0c10, 0x0c20, 0x0c30, 0x0c40, 0x0870, 0x0870, - 0x0c50, 0x0c60, 0x0c70, 0x0c80, 0x0c90, 0x0ca0, 0x0870, 0x0870, - 0x0cb0, 0x0cc0, 0x07c0, 0x0cd0, 0x08f0, 0x05b0, 0x0ce0, 0x0cf0, - 0x0d00, 0x0d10, 0x0580, 0x0d20, 0x0d30, 0x0d40, 0x0870, 0x0870, - 0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x0d50, 0x0c10, 0x0c10, 0x0c10, - 0x0c10, 0x0d60, 0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0, + 0x05b0, 0x05b0, 0x05b0, 0x06b0, 0x05b0, 0x06c0, 0x06b0, 0x05b0, + 0x06d0, 0x06e0, 0x0580, 0x06f0, 0x0700, 0x0710, 0x0720, 0x0730, + 0x0740, 0x0750, 0x05b0, 0x05b0, 0x0760, 0x0580, 0x0770, 0x0780, + 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0790, 0x07a0, 0x07b0, + 0x07c0, 0x07d0, 0x05b0, 0x0580, 0x07e0, 0x05b0, 0x05b0, 0x05b0, + 0x05b0, 0x05b0, 0x07f0, 0x0800, 0x07b0, 0x05b0, 0x0760, 0x0810, + 0x05b0, 0x0820, 0x0830, 0x0840, 0x05b0, 0x0850, 0x0860, 0x0860, + 0x0860, 0x0860, 0x05b0, 0x0870, 0x0860, 0x0860, 0x0880, 0x0580, + 0x0890, 0x05b0, 0x05b0, 0x08a0, 0x0580, 0x08b0, 0x08c0, 0x05b0, + 0x08d0, 0x08e0, 0x08f0, 0x0900, 0x0910, 0x0920, 0x0930, 0x0940, + 0x0950, 0x08e0, 0x08f0, 0x0960, 0x0970, 0x0980, 0x0990, 0x09a0, + 0x09b0, 0x0690, 0x08f0, 0x09c0, 0x09d0, 0x09e0, 0x0930, 0x09f0, + 0x0a00, 0x08e0, 0x08f0, 0x09c0, 0x0a10, 0x0a20, 0x0930, 0x0a30, + 0x0a40, 0x0a50, 0x0a60, 0x0a70, 0x0a80, 0x0a90, 0x0990, 0x0aa0, + 0x0ab0, 0x0ac0, 0x08f0, 0x0ad0, 0x0ae0, 0x0af0, 0x0930, 0x0b00, + 0x0b10, 0x0ac0, 0x08f0, 0x0b20, 0x0ae0, 0x0b30, 0x0930, 0x0b40, + 0x0b10, 0x0ac0, 0x05b0, 0x0b50, 0x0b60, 0x0b70, 0x0930, 0x0b80, + 0x0b90, 0x0ba0, 0x05b0, 0x0bb0, 0x0bc0, 0x0bd0, 0x0990, 0x0be0, + 0x0bf0, 0x0c00, 0x0c00, 0x0c10, 0x0c20, 0x0c30, 0x0860, 0x0860, + 0x0c40, 0x0c50, 0x0c60, 0x0c70, 0x0c80, 0x0c90, 0x0860, 0x0860, + 0x0ca0, 0x0cb0, 0x07b0, 0x0cc0, 0x0cd0, 0x05b0, 0x0ce0, 0x0cf0, + 0x0d00, 0x0d10, 0x0580, 0x0d20, 0x0d30, 0x0d40, 0x0860, 0x0860, + 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0d50, 0x0c00, 0x0c00, 0x0c00, + 0x0c00, 0x0d60, 0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d90, 0x0d90, 0x0d90, 0x0d90, 0x0da0, 0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0dc0, 0x0dd0, 0x05b0, 0x05b0, @@ -83,105 +81,105 @@ const unsigned short wine_linebreak_table[7072] = 0x0e50, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x0e50, 0x0e60, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e70, 0x0a10, - 0x0e80, 0x0e90, 0x05b0, 0x0ea0, 0x05b0, 0x0eb0, 0x0e80, 0x0ec0, - 0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x0ed0, 0x0ee0, 0x0e30, - 0x0ef0, 0x0ee0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x06b0, - 0x05b0, 0x05b0, 0x0f00, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0f10, - 0x05b0, 0x0ce0, 0x0f20, 0x0f20, 0x0f30, 0x0c10, 0x0f40, 0x0f50, - 0x0c10, 0x0c10, 0x0f60, 0x0c10, 0x0f70, 0x0f80, 0x05b0, 0x05b0, - 0x05b0, 0x0f90, 0x0c10, 0x0c10, 0x0c10, 0x0fa0, 0x0c10, 0x0fb0, - 0x0ee0, 0x0ee0, 0x0f40, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, - 0x0fc0, 0x05b0, 0x05b0, 0x0fd0, 0x0fe0, 0x0ff0, 0x1000, 0x1010, - 0x1020, 0x05b0, 0x1030, 0x07c0, 0x05b0, 0x05b0, 0x0800, 0x1040, - 0x05b0, 0x05b0, 0x0fd0, 0x1050, 0x1060, 0x07c0, 0x05b0, 0x1070, - 0x0870, 0x0870, 0x0870, 0x0870, 0x06b0, 0x1080, 0x1090, 0x10a0, + 0x0e50, 0x0e60, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e70, 0x0e80, + 0x0e90, 0x0ea0, 0x05b0, 0x0eb0, 0x05b0, 0x0ec0, 0x0e90, 0x0ed0, + 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0ee0, 0x0ef0, 0x0e30, + 0x0f00, 0x0ef0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0a30, + 0x05b0, 0x05b0, 0x0f10, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0f20, + 0x05b0, 0x0840, 0x0f30, 0x0f30, 0x0f40, 0x0c00, 0x0f50, 0x0f60, + 0x0c00, 0x0c00, 0x0f70, 0x0c00, 0x0f80, 0x0f90, 0x05b0, 0x05b0, + 0x05b0, 0x0fa0, 0x0c00, 0x0c00, 0x0c00, 0x0fb0, 0x0c00, 0x0fc0, + 0x0ef0, 0x0ef0, 0x0f50, 0x0fd0, 0x0860, 0x0860, 0x0860, 0x0860, + 0x0fe0, 0x05b0, 0x05b0, 0x0ff0, 0x1000, 0x1010, 0x1020, 0x1030, + 0x1040, 0x05b0, 0x1050, 0x07b0, 0x05b0, 0x05b0, 0x07f0, 0x1060, + 0x05b0, 0x05b0, 0x0ff0, 0x1070, 0x1080, 0x07b0, 0x05b0, 0x1090, + 0x0860, 0x0860, 0x0860, 0x0860, 0x0a30, 0x10a0, 0x10b0, 0x10c0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x10b0, 0x10c0, - 0x05b0, 0x10d0, 0x05b0, 0x05b0, 0x10d0, 0x10e0, 0x05b0, 0x10f0, - 0x05b0, 0x05b0, 0x05b0, 0x1100, 0x1100, 0x1110, 0x05b0, 0x1120, - 0x1130, 0x1140, 0x1150, 0x1160, 0x1170, 0x1180, 0x1190, 0x11a0, - 0x11b0, 0x0ce0, 0x11c0, 0x11d0, 0x11e0, 0x0580, 0x0580, 0x11f0, - 0x1200, 0x1210, 0x1220, 0x05b0, 0x05b0, 0x1230, 0x1240, 0x1250, - 0x1260, 0x1250, 0x05b0, 0x05b0, 0x05b0, 0x1270, 0x05b0, 0x05b0, - 0x1280, 0x1290, 0x12a0, 0x12b0, 0x12c0, 0x12d0, 0x12e0, 0x05b0, - 0x12f0, 0x1300, 0x1310, 0x1320, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x05b0, 0x1330, 0x1340, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1350, - 0x05b0, 0x05b0, 0x1360, 0x0870, 0x1370, 0x0870, 0x1380, 0x1380, - 0x1380, 0x1380, 0x1380, 0x1380, 0x1380, 0x1380, 0x1380, 0x1390, - 0x1380, 0x1380, 0x1380, 0x1380, 0x1240, 0x1380, 0x1380, 0x13a0, - 0x1380, 0x13b0, 0x13c0, 0x13d0, 0x13e0, 0x13f0, 0x1400, 0x05b0, - 0x1410, 0x1420, 0x05b0, 0x1430, 0x1440, 0x05b0, 0x1450, 0x1460, - 0x05b0, 0x1470, 0x05b0, 0x1480, 0x1490, 0x14a0, 0x14b0, 0x14c0, - 0x14d0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x14e0, 0x14f0, 0x1500, - 0x1380, 0x1510, 0x05b0, 0x05b0, 0x1520, 0x05b0, 0x1530, 0x05b0, + 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x0580, 0x10d0, + 0x05b0, 0x10e0, 0x05b0, 0x05b0, 0x10e0, 0x10f0, 0x05b0, 0x1100, + 0x05b0, 0x05b0, 0x05b0, 0x1110, 0x1110, 0x1120, 0x05b0, 0x1130, + 0x1140, 0x1150, 0x1160, 0x1170, 0x1180, 0x1190, 0x11a0, 0x11b0, + 0x11c0, 0x0ce0, 0x11d0, 0x11e0, 0x11f0, 0x0580, 0x0580, 0x1200, + 0x1210, 0x1220, 0x1230, 0x05b0, 0x05b0, 0x1240, 0x1250, 0x1260, + 0x1270, 0x1260, 0x05b0, 0x05b0, 0x05b0, 0x1280, 0x05b0, 0x05b0, + 0x1290, 0x12a0, 0x12b0, 0x12c0, 0x12d0, 0x12e0, 0x12f0, 0x05b0, + 0x1300, 0x1310, 0x1320, 0x1330, 0x05b0, 0x05b0, 0x05b0, 0x05b0, + 0x1340, 0x1350, 0x1360, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, + 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1370, + 0x05b0, 0x05b0, 0x1380, 0x0860, 0x1390, 0x0860, 0x13a0, 0x13a0, + 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13b0, + 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x1250, 0x13a0, 0x13a0, 0x13c0, + 0x13a0, 0x13d0, 0x13e0, 0x13f0, 0x1400, 0x1410, 0x1420, 0x05b0, + 0x1430, 0x1440, 0x05b0, 0x1450, 0x1460, 0x05b0, 0x1470, 0x1480, + 0x05b0, 0x1490, 0x05b0, 0x14a0, 0x14b0, 0x14c0, 0x14d0, 0x14e0, + 0x14f0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1500, 0x1510, 0x1520, + 0x13a0, 0x1530, 0x05b0, 0x05b0, 0x1540, 0x05b0, 0x1550, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x1540, 0x1550, 0x05b0, 0x05b0, 0x05b0, 0x1560, 0x05b0, 0x1570, - 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0ce0, 0x1580, 0x0870, 0x0870, - 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, - 0x05b0, 0x05b0, 0x0850, 0x05b0, 0x05b0, 0x0850, 0x05b0, 0x05b0, - 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1590, 0x15a0, - 0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0, 0x15b0, 0x15c0, - 0x05b0, 0x1360, 0x15d0, 0x15d0, 0x15d0, 0x15d0, 0x0580, 0x0580, - 0x15e0, 0x15f0, 0x1600, 0x1610, 0x0870, 0x0870, 0x0870, 0x0870, - 0x1620, 0x1630, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1350, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1640, 0x0870, 0x1650, - 0x1660, 0x1670, 0x1680, 0x1690, 0x16a0, 0x1620, 0x16b0, 0x1620, - 0x16c0, 0x16d0, 0x16e0, 0x1620, 0x16b0, 0x1620, 0x16c0, 0x16f0, - 0x1700, 0x1620, 0x1710, 0x1720, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1730, 0x1620, 0x1620, 0x1740, 0x1620, 0x1620, 0x1350, 0x1750, - 0x1620, 0x1730, 0x1620, 0x1620, 0x1760, 0x1620, 0x1620, 0x1620, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1730, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1620, 0x1620, 0x1620, 0x1620, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x1620, 0x1770, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, 0x1620, - 0x1780, 0x1620, 0x1620, 0x1620, 0x1790, 0x05b0, 0x05b0, 0x1070, - 0x17a0, 0x05b0, 0x17b0, 0x0870, 0x05b0, 0x05b0, 0x1590, 0x17c0, - 0x05b0, 0x17d0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x17e0, + 0x1560, 0x1570, 0x05b0, 0x05b0, 0x05b0, 0x1340, 0x05b0, 0x1580, + 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1590, 0x05b0, 0x15a0, + 0x05b0, 0x15b0, 0x05b0, 0x15c0, 0x08f0, 0x15d0, 0x0860, 0x0860, + 0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0, + 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15e0, 0x15f0, + 0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0, 0x1600, 0x1610, + 0x05b0, 0x1380, 0x1620, 0x1620, 0x1620, 0x1620, 0x0580, 0x0580, + 0x1630, 0x1640, 0x1650, 0x1660, 0x1670, 0x0860, 0x0860, 0x0860, + 0x1680, 0x1690, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x16a0, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x16b0, 0x0860, 0x16c0, + 0x16d0, 0x16e0, 0x16f0, 0x1700, 0x1710, 0x1680, 0x1720, 0x1680, + 0x1730, 0x1740, 0x1750, 0x1680, 0x1720, 0x1680, 0x1730, 0x1760, + 0x1770, 0x1680, 0x1780, 0x1790, 0x1680, 0x1680, 0x1680, 0x1680, + 0x17a0, 0x1680, 0x1680, 0x17b0, 0x1680, 0x1680, 0x16a0, 0x17c0, + 0x1680, 0x17a0, 0x1680, 0x1680, 0x17d0, 0x1680, 0x1680, 0x1680, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x17a0, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, + 0x1680, 0x1680, 0x1680, 0x1680, 0x05b0, 0x05b0, 0x05b0, 0x05b0, + 0x1680, 0x17e0, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, + 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, 0x1680, + 0x17f0, 0x1680, 0x1680, 0x1680, 0x1800, 0x05b0, 0x05b0, 0x1090, + 0x1810, 0x05b0, 0x1820, 0x0860, 0x05b0, 0x05b0, 0x15e0, 0x1830, + 0x05b0, 0x1840, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1850, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, - 0x0850, 0x17f0, 0x1370, 0x0870, 0x0870, 0x0870, 0x0870, 0x0b10, - 0x1800, 0x05b0, 0x1810, 0x1820, 0x05b0, 0x05b0, 0x05b0, 0x1830, - 0x1840, 0x05b0, 0x05b0, 0x0fd0, 0x1850, 0x0ee0, 0x0580, 0x1860, - 0x07c0, 0x05b0, 0x1870, 0x05b0, 0x1880, 0x1890, 0x0d80, 0x18a0, - 0x08b0, 0x05b0, 0x05b0, 0x18b0, 0x18c0, 0x18d0, 0x0870, 0x0870, - 0x05b0, 0x05b0, 0x18e0, 0x10b0, 0x18f0, 0x1900, 0x0c10, 0x0f60, - 0x0c10, 0x0c10, 0x0c10, 0x0c10, 0x1910, 0x1920, 0x0770, 0x1930, - 0x1940, 0x1950, 0x15d0, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, - 0x0870, 0x0870, 0x0870, 0x0870, 0x05b0, 0x05b0, 0x1960, 0x0ee0, - 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, - 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, - 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, - 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, - 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, - 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, - 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, - 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, - 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, - 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, - 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, - 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, - 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, - 0x1990, 0x1970, 0x1980, 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, - 0x1990, 0x19a0, 0x1990, 0x19b0, 0x1990, 0x1970, 0x1980, 0x1990, - 0x19a0, 0x1990, 0x19c0, 0x0d90, 0x19d0, 0x0db0, 0x0db0, 0x19e0, - 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, - 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, 0x19f0, - 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, - 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, - 0x1360, 0x1a00, 0x1a10, 0x1a20, 0x1a30, 0x05b0, 0x05b0, 0x05b0, - 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1a40, 0x1a50, 0x05b0, 0x05b0, - 0x05b0, 0x05b0, 0x05b0, 0x1a60, 0x0870, 0x05b0, 0x05b0, 0x05b0, - 0x05b0, 0x1a70, 0x05b0, 0x05b0, 0x06b0, 0x0870, 0x0870, 0x1a80, - 0x0580, 0x1a90, 0x10b0, 0x1aa0, 0x1ab0, 0x1ac0, 0x1ad0, 0x1100, - 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1ae0, - 0x1af0, 0x1b00, 0x1620, 0x1b10, 0x1620, 0x1b20, 0x1b30, 0x1b40, - 0x05b0, 0x1b50, 0x05b0, 0x0850, 0x1b60, 0x1b70, 0x1b80, 0x1b90, + 0x0840, 0x05b0, 0x1100, 0x15d0, 0x0860, 0x0860, 0x0860, 0x1860, + 0x1870, 0x05b0, 0x1880, 0x1890, 0x05b0, 0x05b0, 0x05b0, 0x18a0, + 0x18b0, 0x05b0, 0x05b0, 0x0ff0, 0x18c0, 0x0ef0, 0x0580, 0x18d0, + 0x07b0, 0x05b0, 0x18e0, 0x05b0, 0x18f0, 0x1900, 0x0d80, 0x1910, + 0x0890, 0x05b0, 0x05b0, 0x1920, 0x1930, 0x1940, 0x0c00, 0x1950, + 0x05b0, 0x05b0, 0x1960, 0x1970, 0x1980, 0x1990, 0x0c00, 0x0c00, + 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x19a0, 0x19b0, 0x0760, 0x19c0, + 0x19d0, 0x19e0, 0x1620, 0x05b0, 0x05b0, 0x05b0, 0x19f0, 0x0860, + 0x0860, 0x0860, 0x0860, 0x0860, 0x05b0, 0x05b0, 0x1a00, 0x0ef0, + 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, + 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, + 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, + 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, + 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, + 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, + 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, + 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, + 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, + 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, + 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, + 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, + 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, + 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, + 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, + 0x1a40, 0x1a30, 0x1a60, 0x0d90, 0x1a70, 0x0db0, 0x0db0, 0x1a80, + 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, + 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, + 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, + 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, + 0x1380, 0x1aa0, 0x1ab0, 0x1ac0, 0x1ad0, 0x05b0, 0x05b0, 0x05b0, + 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15d0, 0x1ae0, 0x05b0, 0x05b0, + 0x05b0, 0x05b0, 0x05b0, 0x1af0, 0x0860, 0x05b0, 0x05b0, 0x05b0, + 0x05b0, 0x1b00, 0x05b0, 0x05b0, 0x0a30, 0x0860, 0x0860, 0x1b10, + 0x0580, 0x1b20, 0x1b30, 0x1b40, 0x1b50, 0x1b60, 0x1b70, 0x1110, + 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1b80, + 0x1b90, 0x1ba0, 0x1680, 0x1bb0, 0x1680, 0x1bc0, 0x1bd0, 0x1be0, + 0x05b0, 0x1bf0, 0x05b0, 0x0840, 0x1c00, 0x1c10, 0x1c20, 0x1c30, /* values */ 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0022, 0x0003, 0x0001, 0x0001, 0x0002, 0x0004, 0x0004, @@ -216,21 +214,19 @@ const unsigned short wine_linebreak_table[7072] = 0x0006, 0x0006, 0x0006, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x0019, 0x0011, + 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x0019, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0011, 0x0019, 0x0022, 0x0011, 0x0011, 0x0011, 0x0011, 0x001a, + 0x0011, 0x0019, 0x0022, 0x0011, 0x0011, 0x001d, 0x001d, 0x001a, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, @@ -243,7 +239,7 @@ const unsigned short wine_linebreak_table[7072] = 0x0026, 0x0026, 0x0026, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0026, 0x0026, 0x0026, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001b, 0x001b, 0x001b, 0x0019, 0x0019, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0017, 0x0004, 0x0011, 0x0017, 0x0017, @@ -281,12 +277,10 @@ const unsigned short wine_linebreak_table[7072] = 0x001d, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, + 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, - 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, - 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, @@ -295,9 +289,7 @@ const unsigned short wine_linebreak_table[7072] = 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0022, 0x0022, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d, + 0x001d, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, @@ -335,10 +327,14 @@ const unsigned short wine_linebreak_table[7072] = 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001a, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0004, 0x0004, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x0011, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, @@ -353,11 +349,11 @@ const unsigned short wine_linebreak_table[7072] = 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001a, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d, + 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, @@ -365,7 +361,7 @@ const unsigned short wine_linebreak_table[7072] = 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0011, 0x0011, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d, + 0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0004, 0x001d, 0x0004, 0x0004, @@ -422,6 +418,8 @@ const unsigned short wine_linebreak_table[7072] = 0x001d, 0x001d, 0x001d, 0x001d, 0x0022, 0x0004, 0x001d, 0x0004, 0x001d, 0x0004, 0x0012, 0x0013, 0x0012, 0x0013, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0022, @@ -474,6 +472,8 @@ const unsigned short wine_linebreak_table[7072] = 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0022, 0x0022, 0x0022, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, @@ -513,6 +513,8 @@ const unsigned short wine_linebreak_table[7072] = 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x0011, 0x0004, + 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, + 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, @@ -542,10 +544,8 @@ const unsigned short wine_linebreak_table[7072] = 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, @@ -580,7 +580,7 @@ const unsigned short wine_linebreak_table[7072] = 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001b, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001b, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001b, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, @@ -623,12 +623,14 @@ const unsigned short wine_linebreak_table[7072] = 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x0012, 0x0013, 0x0012, 0x0013, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0012, 0x0013, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001e, 0x001e, 0x001e, 0x001e, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, @@ -675,11 +677,11 @@ const unsigned short wine_linebreak_table[7072] = 0x0024, 0x0024, 0x001e, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0024, 0x001e, 0x001e, 0x001e, 0x001e, 0x0024, 0x0024, 0x001e, 0x001e, 0x001e, - 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, - 0x001d, 0x001d, 0x001d, 0x0015, 0x0015, 0x0015, 0x0015, 0x001d, - 0x001d, 0x001d, 0x0017, 0x0017, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x001d, 0x0017, 0x0017, 0x001d, 0x001d, 0x001d, 0x001d, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, @@ -694,11 +696,17 @@ const unsigned short wine_linebreak_table[7072] = 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0012, 0x0013, 0x0012, 0x0013, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0012, 0x0013, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x0024, 0x0024, - 0x0024, 0x0024, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0024, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, @@ -716,11 +724,15 @@ const unsigned short wine_linebreak_table[7072] = 0x0015, 0x0015, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0022, 0x0022, 0x0022, 0x0022, 0x0017, 0x001d, 0x0022, 0x0022, 0x001d, 0x0022, 0x0022, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x0025, 0x0025, 0x0011, 0x0011, 0x0011, 0x0011, + 0x001d, 0x001d, 0x0025, 0x0025, 0x0022, 0x0022, 0x0022, 0x001d, + 0x0022, 0x0022, 0x0012, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, @@ -772,11 +784,11 @@ const unsigned short wine_linebreak_table[7072] = 0x0004, 0x0004, 0x0004, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0004, 0x0004, 0x0004, 0x001d, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, @@ -805,8 +817,12 @@ const unsigned short wine_linebreak_table[7072] = 0x0022, 0x0022, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, + 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0011, 0x0011, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, @@ -821,6 +837,8 @@ const unsigned short wine_linebreak_table[7072] = 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0022, 0x0004, 0x0004, 0x0011, 0x0011, 0x000f, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, @@ -849,18 +867,18 @@ const unsigned short wine_linebreak_table[7072] = 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0011, 0x0026, 0x0011, 0x0026, 0x0026, 0x0011, 0x0026, 0x0026, 0x0011, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, - 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, - 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, - 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0012, 0x0013, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0013, 0x0012, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001b, 0x001d, 0x0011, 0x0011, 0x0019, 0x0013, 0x0013, 0x0019, 0x0019, 0x0017, 0x0017, 0x0012, 0x0013, 0x001f, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, + 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x001e, 0x001e, 0x0012, diff --git a/reactos/dll/win32/usp10/mirror.c b/reactos/dll/win32/usp10/mirror.c index 137d6535b1d..bce83c7599f 100644 --- a/reactos/dll/win32/usp10/mirror.c +++ b/reactos/dll/win32/usp10/mirror.c @@ -1,5 +1,5 @@ /* Unicode BiDi mirroring */ -/* generated from http://www.unicode.org/Public/6.3.0/ucd/BidiMirroring.txt */ +/* generated from http://www.unicode.org/Public/7.0.0/ucd/BidiMirroring.txt */ /* DO NOT EDIT!! */ #include diff --git a/reactos/dll/win32/usp10/shape.c b/reactos/dll/win32/usp10/shape.c index e7d1558d764..67afd91a787 100644 --- a/reactos/dll/win32/usp10/shape.c +++ b/reactos/dll/win32/usp10/shape.c @@ -2172,7 +2172,8 @@ static inline int unicode_lex(WCHAR c) case 0x0407: return lex_Composed_Vowel; case 0x0507: return lex_Matra_above; case 0x0607: return lex_Matra_below; - case 0x000c: return lex_Ra; + case 0x000c: + case 0x0015: return lex_Ra; }; } diff --git a/reactos/dll/win32/usp10/shaping.c b/reactos/dll/win32/usp10/shaping.c index 4494943bfa7..12b290c4c0b 100644 --- a/reactos/dll/win32/usp10/shaping.c +++ b/reactos/dll/win32/usp10/shaping.c @@ -1,10 +1,8 @@ /* Unicode Arabic shaping */ -/* generated from http://www.unicode.org/Public/6.3.0/ucd/ArabicShaping.txt */ +/* generated from http://www.unicode.org/Public/7.0.0/ucd/ArabicShaping.txt */ /* DO NOT EDIT!! */ -//#include "wine/unicode.h" - -const unsigned short wine_shaping_table[2800] = +const unsigned short wine_shaping_table[2864] = { /* level 1 offsets */ 0x0100, 0x0110, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, @@ -55,16 +53,16 @@ const unsigned short wine_shaping_table[2800] = 0x0490, 0x04a0, 0x04b0, 0x0360, 0x04c0, 0x04d0, 0x04e0, 0x04f0, 0x0340, 0x0340, 0x0500, 0x0510, 0x0520, 0x0530, 0x0540, 0x0550, 0x0340, 0x0560, 0x0570, 0x0340, 0x0580, 0x0590, 0x0340, 0x0340, - 0x0340, 0x0340, 0x05a0, 0x0340, 0x0340, 0x0340, 0x05b0, 0x05c0, + 0x0340, 0x0340, 0x05a0, 0x05b0, 0x0340, 0x0340, 0x05c0, 0x0360, 0x05d0, 0x0340, 0x0340, 0x05e0, 0x05f0, 0x0600, 0x0610, 0x0340, 0x0620, 0x0340, 0x0340, 0x0630, 0x0640, 0x0340, 0x0610, 0x0340, 0x0650, 0x0340, 0x0340, 0x0630, 0x0660, 0x0620, 0x0340, 0x0670, 0x0650, 0x0340, 0x0340, 0x0630, 0x0680, 0x0340, 0x0610, 0x0340, 0x0620, 0x0340, 0x0340, 0x0690, 0x0640, 0x06a0, 0x0610, 0x0340, 0x06b0, 0x0340, 0x0340, 0x0340, 0x06c0, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x06d0, 0x06e0, 0x06f0, 0x0610, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0690, 0x0700, 0x0340, 0x0610, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0640, 0x0340, 0x0610, 0x0340, + 0x0510, 0x0340, 0x0340, 0x06d0, 0x06e0, 0x06f0, 0x0610, 0x0340, + 0x0620, 0x0340, 0x0340, 0x0690, 0x0700, 0x0340, 0x0610, 0x0340, + 0x0620, 0x0340, 0x0340, 0x0340, 0x0640, 0x0340, 0x0610, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0710, 0x0720, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0730, 0x0740, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0750, 0x0760, 0x0340, 0x0340, 0x0340, @@ -81,37 +79,37 @@ const unsigned short wine_shaping_table[2800] = 0x0340, 0x0340, 0x08a0, 0x08b0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x08c0, 0x0340, 0x0340, 0x0340, 0x08d0, 0x08e0, 0x08f0, + 0x0340, 0x0340, 0x0340, 0x0900, 0x0340, 0x0340, 0x0340, 0x0340, + 0x0910, 0x0340, 0x0340, 0x0920, 0x06b0, 0x0340, 0x0930, 0x0910, + 0x0940, 0x0340, 0x0950, 0x0340, 0x0340, 0x0340, 0x0960, 0x0940, + 0x0340, 0x0340, 0x0970, 0x0980, 0x0340, 0x0340, 0x0340, 0x0340, + 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0990, 0x09a0, 0x09b0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0900, 0x0340, 0x0340, 0x0910, 0x06b0, 0x0340, 0x0920, 0x0900, - 0x0930, 0x0340, 0x0940, 0x0340, 0x0340, 0x0340, 0x0950, 0x0930, - 0x0340, 0x0340, 0x0960, 0x0970, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0980, 0x0990, 0x09a0, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x09b0, 0x0960, - 0x09c0, 0x0340, 0x09d0, 0x0340, 0x0340, 0x0340, 0x09e0, 0x0340, + 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0360, 0x09c0, + 0x09d0, 0x0340, 0x09e0, 0x0340, 0x0340, 0x0340, 0x09f0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0510, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0930, + 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0940, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, - 0x0340, 0x0340, 0x09f0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0a00, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0a10, - 0x0340, 0x0490, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0930, - 0x0a20, 0x0340, 0x06f0, 0x0340, 0x0530, 0x0530, 0x0530, 0x0a30, - 0x0340, 0x0340, 0x0340, 0x0340, 0x09a0, 0x0340, 0x0360, 0x0930, - 0x0340, 0x0340, 0x0a40, 0x0340, 0x0a50, 0x0930, 0x0340, 0x0340, - 0x05d0, 0x0340, 0x0340, 0x0a60, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0a70, 0x0a80, 0x0a90, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0aa0, 0x0620, 0x0340, 0x0ab0, 0x06a0, + 0x0340, 0x0340, 0x0a00, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, + 0x0340, 0x0a10, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, + 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0a20, + 0x0340, 0x0490, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0940, + 0x0a30, 0x0340, 0x06f0, 0x0340, 0x0530, 0x0530, 0x0530, 0x0a40, + 0x0340, 0x0340, 0x0340, 0x0340, 0x0a50, 0x0340, 0x0360, 0x0940, + 0x0340, 0x0340, 0x0a60, 0x0340, 0x0a70, 0x0940, 0x0340, 0x0340, + 0x05d0, 0x0340, 0x0340, 0x0a80, 0x0340, 0x0340, 0x0a90, 0x0340, + 0x0340, 0x0340, 0x0aa0, 0x0ab0, 0x0ac0, 0x0340, 0x0340, 0x0630, + 0x0340, 0x0340, 0x0340, 0x0ad0, 0x0620, 0x0340, 0x0ae0, 0x06a0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0ac0, 0x0340, - 0x0340, 0x0ad0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, + 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0af0, 0x0340, + 0x0340, 0x0b00, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0360, 0x0340, 0x09b0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, + 0x0360, 0x0340, 0x0b10, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, - 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0ae0, + 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0b20, /* values */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -189,12 +187,12 @@ const unsigned short wine_shaping_table[2800] = 0x0004, 0x0002, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0002, 0x0004, 0x0004, 0x0004, 0x0004, 0x0002, 0x0004, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0404, 0x0000, 0x0604, 0x0b04, 0x0f04, 0x1004, 0x1204, 0x1304, - 0x0104, 0x0104, 0x0802, 0x0302, 0x3402, 0x0000, 0x0000, 0x0000, + 0x0404, 0x0404, 0x0604, 0x0b04, 0x0f04, 0x1004, 0x1204, 0x1304, + 0x0104, 0x0104, 0x0802, 0x0302, 0x3402, 0x0000, 0x0702, 0x0a04, + 0x0d04, 0x3502, 0x0802, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -297,6 +295,8 @@ const unsigned short wine_shaping_table[2800] = 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0001, @@ -306,7 +306,7 @@ const unsigned short wine_shaping_table[2800] = 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, - 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -318,9 +318,9 @@ const unsigned short wine_shaping_table[2800] = 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0005, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -337,12 +337,16 @@ const unsigned short wine_shaping_table[2800] = 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0004, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, @@ -357,6 +361,8 @@ const unsigned short wine_shaping_table[2800] = 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, + 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000 }; diff --git a/reactos/dll/win32/usp10/usp10.c b/reactos/dll/win32/usp10/usp10.c index 4a574809edf..102741fbb77 100644 --- a/reactos/dll/win32/usp10/usp10.c +++ b/reactos/dll/win32/usp10/usp10.c @@ -893,7 +893,7 @@ static WORD get_char_script( LPCWSTR str, INT index, INT end, INT *consumed) if (str[index] == 0xc || str[index] == 0x20 || str[index] == 0x202f) return Script_CR; - /* These punctuation are separated out as Latin punctuation */ + /* These punctuation characters are separated out as Latin punctuation */ if (strchrW(latin_punc,str[index])) return Script_Punctuation2; @@ -1269,6 +1269,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars, WORD layoutRTL = 0; BOOL forceLevels = FALSE; INT consumed = 0; + HRESULT res = E_OUTOFMEMORY; TRACE("%s,%d,%d,%p,%p,%p,%p\n", debugstr_wn(pwcInChars, cInChars), cInChars, cMaxItems, psControl, psState, pItems, pcItems); @@ -1363,10 +1364,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars, { levels = heap_alloc_zero(cInChars * sizeof(WORD)); if (!levels) - { - heap_free(scripts); - return E_OUTOFMEMORY; - } + goto nomemory; BIDI_DetermineLevels(pwcInChars, cInChars, psState, psControl, levels); baselevel = levels[0]; @@ -1385,11 +1383,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars, strength = heap_alloc_zero(cInChars * sizeof(WORD)); if (!strength) - { - heap_free(scripts); - heap_free(levels); - return E_OUTOFMEMORY; - } + goto nomemory; BIDI_GetStrengths(pwcInChars, cInChars, psControl, strength); /* We currently mis-level leading Diacriticals */ @@ -1569,7 +1563,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars, index++; if (index+1 > cMaxItems) - return E_OUTOFMEMORY; + goto nomemory; if (strength) str = strength[cnt]; @@ -1605,7 +1599,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars, * item is set up to prevent random behaviour if the caller erroneously * checks the n+1 structure */ index++; - if (index + 1 > cMaxItems) return E_OUTOFMEMORY; + if (index + 1 > cMaxItems) goto nomemory; memset(&pItems[index].a, 0, sizeof(SCRIPT_ANALYSIS)); TRACE("index=%d cnt=%d iCharPos=%d\n", index, cnt, pItems[index].iCharPos); @@ -1615,10 +1609,12 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars, /* Set SCRIPT_ITEM */ pItems[index].iCharPos = cnt; /* the last item contains the ptr to the lastchar */ + res = S_OK; +nomemory: heap_free(levels); heap_free(strength); heap_free(scripts); - return S_OK; + return res; } /*********************************************************************** @@ -2837,6 +2833,7 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc, unsigned int g; BOOL rtl; int cluster; + static int once = 0; TRACE("(%p, %p, %p, %s, %s, %p, %p, %d, %s, %d, %d, %p, %p, %p, %p, %p )\n", hdc, psc, psa, @@ -2851,7 +2848,7 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc, if (cChars > cMaxGlyphs) return E_OUTOFMEMORY; if (cRanges) - FIXME("Ranges not supported yet\n"); + if(!once++) FIXME("Ranges not supported yet\n"); rtl = (psa && !psa->fLogicalOrder && psa->fRTL); @@ -3066,6 +3063,7 @@ HRESULT WINAPI ScriptPlaceOpenType( HDC hdc, SCRIPT_CACHE *psc, SCRIPT_ANALYSIS { HRESULT hr; int i; + static int once = 0; TRACE("(%p, %p, %p, %s, %s, %p, %p, %d, %s, %p, %p, %d, %p, %p, %d, %p %p %p)\n", hdc, psc, psa, @@ -3079,7 +3077,7 @@ HRESULT WINAPI ScriptPlaceOpenType( HDC hdc, SCRIPT_CACHE *psc, SCRIPT_ANALYSIS if (!pGoffset) return E_FAIL; if (cRanges) - FIXME("Ranges not supported yet\n"); + if (!once++) FIXME("Ranges not supported yet\n"); ((ScriptCache *)*psc)->userScript = tagScript; ((ScriptCache *)*psc)->userLang = tagLangSys; @@ -3740,8 +3738,10 @@ HRESULT WINAPI ScriptGetFontFeatureTags( HDC hdc, SCRIPT_CACHE *psc, SCRIPT_ANAL return SHAPE_GetFontFeatureTags(hdc, (ScriptCache *)*psc, psa, tagScript, tagLangSys, cMaxTags, pFeatureTags, pcTags); } +#ifdef __REACTOS__ BOOL gbLpkPresent = FALSE; VOID WINAPI LpkPresent() { gbLpkPresent = TRUE; /* Turn it on this way! Wine is out of control! */ } +#endif diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 03d1d518ce4..23fa2c4bd81 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -201,7 +201,7 @@ reactos/dll/win32/unicows # Synced to Wine-1.3.32 (Win9x only, why d reactos/dll/win32/updspapi # Synced to Wine-1.7.17 reactos/dll/win32/url # Synced to Wine-1.7.17 reactos/dll/win32/urlmon # Synced to Wine-1.7.27 -reactos/dll/win32/usp10 # Synced to Wine-1.7.17 +reactos/dll/win32/usp10 # Synced to Wine-1.7.27 reactos/dll/win32/uxtheme # Forked reactos/dll/win32/vbscript # Synced to Wine-1.7.17 reactos/dll/win32/version # Synced to Wine-1.7.17