Henri Verbeet
77c7475269
usp10/tests: Also restore the previous font when the finger print matches in _find_font_for_range().
...
Otherwise the subsequent SelectObject() call will set *origFont to *hfont.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-19 16:55:07 +01:00
Michael Stefaniuc
b21eb6733f
usp10: Use the global HeapAlloc() wrappers.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 14:28:10 +01:00
Thomas Faber
fb44feb62f
usp10: Re-use script caches for the same font.
...
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-18 18:44:11 +01:00
Nikolay Sivov
ee04cb5475
usp10/tests: Add missing return value tests (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-27 16:46:13 +01:00
Andrey Gusev
acdbea2bee
usp10: Fix a typo in an ERR() message.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-15 10:48:21 +01:00
Andrey Gusev
f6ad192cd2
usp10: Remove worthless check.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-03 23:44:52 +01:00
Aric Stewart
265f5cad23
usp10/tests: Add fingerprint to help ensure proper font for testing.
...
Fixes problems where there is a linux font also named Estrangelo
Edessa but does not have the font shaping properties we are testing.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-01 23:16:08 +01:00
Andrey Gusev
a34adbefe4
usp10: Remove redundant comparison.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-10 18:32:29 +02:00
Nikolay Sivov
3cbd598e81
usp10: Remove separate invalid flag from string analysis structure.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 19:31:27 +02:00
Nikolay Sivov
c5b41a45f9
usp10: Make string analysis size part of a main structure.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 19:31:24 +02:00
Nikolay Sivov
abf71afdff
usp10: Store per-item ABC structure directly.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 19:31:21 +02:00
Nikolay Sivov
82ed7410cb
usp10/tests: Simple ScriptString_pSize() test.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 19:31:19 +02:00
Nikolay Sivov
40bc04ae61
usp10: Return whole SCRIPT_FONTPROPERTIES structure.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 19:31:16 +02:00
Nikolay Sivov
68c9ac60a5
usp10/tests: Some tests for ScriptCacheGetHeight() caching behaviour.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-02 19:31:13 +02:00
Nikolay Sivov
3d1b4d3738
usp10/tests: Remove workarounds that are no longer useful.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-12 20:32:02 +02:00
Nikolay Sivov
8b880d05d6
usp10/tests: Move initialization to a separate function, add another ScriptShape() test.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-12 20:32:02 +02:00
Nikolay Sivov
9e9f5aad84
usp10/tests: Remove special itemization failure test that doesn't happen.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-12 20:32:02 +02:00
Aric Stewart
9d32c2d31a
usp10: Fall back to 'dflt' language if shaping language tag isn't found.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-18 08:13:01 +09:00
Huw Davies
866eec810e
usp10: Undefined characters above the BMP should be assigned to Script_Surrogates.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-16 22:30:24 +09:00
Tim Worthington
4f96439ebf
user32: Fix rendering of tabs in edit control.
...
Signed-off-by: Tim Worthington <tim@pcbelegance.org>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-24 18:58:31 +02:00
Jens Reyer
b736dbe933
make_unicode: Update data tables to Unicode 10.0.0.
...
Signed-off-by: Jens Reyer <jre.winesim@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 11:44:41 +02:00
Henri Verbeet
30e8768d00
usp10: Validate substition record sequence indices in GSUB_apply_ContextSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-21 13:58:13 +02:00
Henri Verbeet
ebe75cb66c
usp10: Simplify the "sr_2" assignments in GSUB_apply_ContextSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-21 13:58:12 +02:00
Henri Verbeet
6c13170b95
usp10: Range check glyph counts in GSUB_apply_ContextSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-21 13:58:12 +02:00
Henri Verbeet
c5619beb77
usp10: Validate positioning record sequence indices in GPOS_apply_ContextPos().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 09:11:19 +02:00
Henri Verbeet
82d36ba63f
usp10: Simplify the "pr_2" assignment in GPOS_apply_ContextPos().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 09:11:17 +02:00
Henri Verbeet
1b02c1ac50
usp10: Range check glyph counts in GPOS_apply_ContextPos().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 09:11:15 +02:00
Henri Verbeet
d1ca880ec4
usp10: Validate substition record sequence indices in GSUB_apply_ChainContextSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 09:11:14 +02:00
Henri Verbeet
34a9400a89
usp10: Validate positioning record sequence indices in GPOS_apply_ChainContextPos().
...
The issue is somewhat theoretical, since in reasonbale fonts the indices
should always be valid, and in fact are fairly likely to be 0. On the other
hand, web fonts exist.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 09:11:10 +02:00
Henri Verbeet
9694aeb06d
usp10: Avoid special handling if the substitution count is 0 in GSUB_apply_ChainContextSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-06 19:00:34 +02:00
Henri Verbeet
f7b943edbc
usp10: Range check glyph counts in GSUB_apply_ChainContextSubst().
...
Like in GPOS_apply_ChainContextPos().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-06 19:00:32 +02:00
Henri Verbeet
24943fe5e2
usp10: Simplify the chaining context table assignments in GSUB_apply_ChainContextSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-06 19:00:30 +02:00
Henri Verbeet
02316e6613
usp10: Rename the chaining context tables in GSUB_apply_ChainContextSubst() to something more descriptive.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-06 19:00:28 +02:00
Henri Verbeet
0389768568
usp10: Return early if the number of positioning operations is 0 in GPOS_apply_ChainContextPos().
...
This preserves the current logic, but I wonder if we're not supposed to always
return "input_count". Returning 1 seems questionable if we matched more input
glyphs than that, and so does including the lookahead count.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:39:54 +02:00
Henri Verbeet
7dfe9b9c94
usp10: Range check glyph counts in GPOS_apply_ChainContextPos().
...
I.e., avoid accessing outside the "glyphs" array. If we're particularly
unlucky we may actually get a match against data outside the array.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:39:54 +02:00
Henri Verbeet
f6c0146499
usp10: Simplify the chaining context table assignments in GPOS_apply_ChainContextPos().
...
And avoid some endian conversions in the process.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:39:54 +02:00
Henri Verbeet
fb3ea0ae05
usp10: Rename the chaining context tables in GPOS_apply_ChainContextPos() to something more descriptive.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-05 16:39:54 +02:00
Nikolay Sivov
04e5466e12
usp10: Handle invalid arguments in ScriptIsComplex().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-03 19:34:27 +02:00
Jacek Caban
4553871614
usp10: Check if corresponding headers are present before accessing their feature lists in _initialize_feature_cache.
...
Based on feedback from Henri, fixes regression from commit
63bcfa3354
.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-31 17:08:08 +02:00
Henri Verbeet
63bcfa3354
usp10: Get rid of the code duplication between GSUB_initialize_feature_cache() and GPOS_expand_feature_cache().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 16:04:13 +02:00
Henri Verbeet
9b0f3f1bac
usp10: Get rid of some code duplication in GPOS_expand_feature_cache().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 16:04:13 +02:00
Henri Verbeet
0ffd5b45ea
usp10: Double the languages array size when growing it in GPOS_expand_language_cache().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 16:04:13 +02:00
Henri Verbeet
218be443b6
usp10: Double the scripts array size when growing it in GPOS_expand_script_cache().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 16:03:16 +02:00
Henri Verbeet
9a15753d40
usp10: Introduce a helper function to lookup a language in a LoadedScript structure.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 14:33:57 +02:00
Henri Verbeet
2a0ffc9852
usp10: Introduce a helper function to lookup a script in the script cache.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 12:44:54 +01:00
Henri Verbeet
213d3588a7
usp10: Avoid LPVOID.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 12:44:52 +01:00
Henri Verbeet
1403087954
usp10: Avoid LPCVOID.
...
And cleanup a few style issues along the way.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 12:44:50 +01:00
Henri Verbeet
a204e589b5
usp10: Avoid LPWSTR.
...
And cleanup a few style issues along the way.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 12:44:48 +01:00
Henri Verbeet
cdd47c3dc3
usp10: Avoid LPCWSTR.
...
And cleanup some style issues along the way.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-23 15:13:42 +01:00
Henri Verbeet
af617aacca
usp10: Avoid LPBYTE.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-23 15:13:40 +01:00
Henri Verbeet
34c2f74518
usp10: Avoid LPWORD.
...
And cleanup a style issue along the way.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-23 15:13:38 +01:00
Henri Verbeet
ab8ec605b8
usp10: Avoid LPPOINT.
...
And cleanup some style issues along the way.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-23 15:13:35 +01:00
Henri Verbeet
ba66b626eb
usp10: Avoid LPOUTLINETEXTMETRICW.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:45 +01:00
Henri Verbeet
df21247491
usp10: Make the script cache parameter to get_opentype_script() const.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:43 +01:00
Henri Verbeet
c8f87ad3ed
usp10: Make the script cache parameter to GPOS_apply_MarkToBase() const.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:41 +01:00
Henri Verbeet
cd9db34e51
usp10: Pass const metrics to GPOS_convert_design_units_to_device().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:40 +01:00
Henri Verbeet
6e2161670d
usp10/tests: Explicitly skip tests when required fonts are not available.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:38 +01:00
Nikolay Sivov
2cc730b4ad
usp10/tests: Fix a buffer leak (Valgrind).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-14 22:07:36 +01:00
Henri Verbeet
c3dc9edc25
usp10: Use heap_free() instead of HeapFree().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-10 23:21:26 +01:00
Henri Verbeet
6a0e5bb79d
usp10: Use heap_alloc() instead of HeapAlloc().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-10 23:21:26 +01:00
Henri Verbeet
77e5a2fba9
usp10: Use heap_alloc_zero() instead of HeapAlloc() with HEAP_ZERO_MEMORY.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-10 23:21:26 +01:00
Henri Verbeet
3c704c2c16
usp10: Use bsearch() to lookup the script range in get_char_script().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-08 15:31:05 +01:00
Henri Verbeet
a523b46d0b
usp10: Introduce an enumeration for script types.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-08 15:31:03 +01:00
Henri Verbeet
502d23986c
usp10: Do not fall back to presentation form B if the contextual feature exists in ContextualShape_Arabic().
...
E.g., the base form of 'ا' may be the same as the isolated form, in which case
the "isol" feature may not have a substitution for it. At the same time, while
the presentation form B glyph may look the same or similar as the base form,
it may have a different glyph ID. This can break e.g.
GSUB_LOOKUP_CONTEXT_CHAINED substitutions because of the unexpected glyph ID.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-08 15:31:01 +01:00
Henri Verbeet
9db12225f4
usp10/tests: Add shaping tests for fLogicalOrder and fRTL.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-06 19:49:16 +01:00
Henri Verbeet
f13dea5684
usp10: Properly determine the glyph run direction when shaping Script_Arabic.
...
In particular, if fLogicalOrder and fRTL are both set, the glyph order is
swapped compared to the character order. In all other cases it's the same.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-06 19:49:16 +01:00
Henri Verbeet
c94a5fd28c
usp10: Take the script direction into account when applying OpenType features.
...
As opposed to just looking at the run direction.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-06 19:49:16 +01:00
Henri Verbeet
badb0a7530
usp10/tests: Add a ligature and diacritic to the syrc shaping test.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-06 19:49:15 +01:00
Henri Verbeet
04cd6029ea
usp10/tests: Add a latn shaping test with ligatures.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-06 19:49:15 +01:00
Henri Verbeet
1727dd4156
usp10: Use USP10_FindGlyphInLogClust() in UpdateClusters().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-01 15:56:58 +01:00
Henri Verbeet
bab506e1cd
usp10: Use memmove() in GSUB_apply_LigatureSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-01 15:56:56 +01:00
Henri Verbeet
66df220c00
usp10: Make feature tables const.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-01 15:56:54 +01:00
André Hentschel
b32fb231e6
usp10: Fix ScriptGetProperties spec file entry.
...
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 14:04:24 +01:00
Francois Gouget
1a42ee3198
usp10: Add __WINE_ALLOC_SIZE attributes to heap_xxx() functions.
...
And standardize their type names.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 14:04:18 +01:00
Nikolay Sivov
892393bb76
usp10: Filter out DeltaFormat == 0 too, valid range is [1, 3].
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 14:04:12 +01:00
Henri Verbeet
66dce1e75f
usp10: Introduce an enumeration for GSUB lookup types.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 14:04:06 +01:00
Nikolay Sivov
fefd15118f
usp10: Ignore device tables with invalid delta format.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:14:28 +01:00
Henri Verbeet
b6d541cac5
usp10: Iterate in visual order in GPOS_apply_feature().
...
In particular, cursive attachment application depends on previous visual order
glyph offsets. Affects e.g. wordpad with Nastaliq fonts.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:09:06 +01:00
Henri Verbeet
6fec9b1325
usp10: Return the logical offset in GPOS_apply_lookup().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:09:04 +01:00
Henri Verbeet
8d1566735f
usp10: Return the logical offset in GPOS_apply_ChainContextPos().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:09:02 +01:00
Henri Verbeet
22101966cf
usp10: Return the logical offset in GPOS_apply_ContextPos().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:09:00 +01:00
Henri Verbeet
6e84358bcd
usp10: Return the logical offset in GPOS_apply_PairAdjustment().
...
The base index is redundant, and actually makes it harder to iterate in
logical order in GPOS_apply_feature().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:08:58 +01:00
Henri Verbeet
61e8a388b2
usp10: Introduce an enumeration for GPOS lookup types.
...
As opposed to using magic numbers.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:08:53 +01:00
Henri Verbeet
4b22953ec5
usp10: Properly get glyph widths for OpenType fonts in ScriptPlaceOpenType().
...
I.e., don't use GetCharWidth32W() with glyph indices. This fixes glyph
advances for OpenType fonts in wordpad.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:08:34 +01:00
Henri Verbeet
d00f7315e0
usp10: Itemise ZWSP like ZWNJ and ZWJ.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-15 22:58:48 +01:00
Henri Verbeet
721fbf617b
usp10: Explicitly check for zero-width control characters in ScriptShapeOpenType().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-15 22:58:48 +01:00
Nikolay Sivov
7e6a4b2bf5
usp10: Fix LB27 rule that should check for prefix, not suffix.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-31 15:58:44 +01:00
Nikolay Sivov
c4626bba01
usp10: Fixed LB30 condition, breaking after CP class.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-31 15:58:44 +01:00
Aric Stewart
0c1419542f
usp10: Apply 'ccmp' before Arabic contextual shaping.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:47 +01:00
Aric Stewart
e2d4cf9e29
usp10: Fix next index for RTL MultipleSubst.
...
MultipleSubst will expand the glyph array to the right, so when the
writing direction is RTL the next index does not need to be modified by
the new count of glyphs.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:47 +01:00
Aric Stewart
0401bdfad6
usp10: Change GSUB_E_NOGLYPH value.
...
-1 is a potentially valid index to return for RTL languages.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:47 +01:00
Aric Stewart
10e9adfb27
usp10: Fix Contextual Shaping for Languages with RTL write order.
...
Including Arabic, Syriac, Phags pa, and Mongolian.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:47 +01:00
André Hentschel
961e1e6857
usp10: Fix ScriptRecordDigitSubstitution spec file entry.
...
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-29 10:16:06 +01:00
Huw Davies
427caff915
usp10/tests: Reorder the todo and broken arrays to match the order of the expected values.
...
Also ensure that all elements of the broken arrays are explicitly initialized.
This allows many tests to run that were previously incorrectly skipped.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 16:57:26 +01:00
Aric Stewart
aae5a831e2
usp10: Implement Chaining Context Substitution Format 2: Class-based Chaining Context Glyph Substitution.
...
Used by the font Noto Nastaliq Urdu.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:52 +01:00
Aric Stewart
b98a70aa40
usp10: Implement Contextual Positioning Subtable: Format 2.
...
Used by the font Noto Nastaliq Urdu.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:52 +01:00
Aric Stewart
5e6b2c0ed6
usp10: Implement GSUB Context Substitution types 1 and 2.
...
Used by the font Noto Nastaliq Urdu.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:51 +01:00
Huw Davies
55c5a77b47
usp10/tests: Add a second set of glyph props that have changed in Windows 10.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 15:54:45 +01:00
Francois Gouget
c705eca8cb
usp10: A spelling fix in a comment.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-10 19:19:15 +01:00
Huw Davies
0dbd2e37f9
usp10: Free the final page.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-10 00:36:45 +09:00