Behdad Esfahbod
7c5bee09d9
[uniscribe] Fix font scale handling
...
By default shape at upem (or ppem), and scale results.
Similar to work done in CoreText backend, but using upem as default.
2015-08-19 13:20:31 +01:00
Behdad Esfahbod
902e74a098
Commented-out code to print buffer before each lookup
...
To be turned into a useful HB_DEBUG_SHAPE infrastructure...
2015-08-18 18:55:03 +01:00
Behdad Esfahbod
75504a5048
Allow serializing buffer with output-buffer being used
...
Ie, don't call get_positions() if positions are not
requested for serialization.
2015-08-18 18:47:02 +01:00
Behdad Esfahbod
e47b772a56
[ot] Change buffer content type right after we map to glyphs
...
Needed for upcoming debug output changes.
2015-08-18 18:42:47 +01:00
Behdad Esfahbod
ddd6bf12f1
Don't declare dependency on freetype in harfbuzz.pc
...
See comments.
2015-08-18 15:55:09 +01:00
Behdad Esfahbod
2c8b3b2e53
[debug] Print lookup index in debug-apply output
2015-08-18 14:36:43 +01:00
Behdad Esfahbod
50ad7788ee
[coretext] Remove assert that kicks in on Mac OS 10.6
...
http://crbug.com/419769
2015-08-18 10:22:16 +01:00
Behdad Esfahbod
2b646fa07f
Remove unused function
2015-08-17 16:03:28 +02:00
ThePhD
23237b0279
Last apparent boolean fix!
2015-08-14 01:19:08 -04:00
ThePhD
5c99cf93d6
Merge branch 'master' into vc++-fixes
2015-08-14 01:02:00 -04:00
Behdad Esfahbod
539a610e2e
Add Libs.private and Requires.private to harfbuzz.pc
...
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=64501
2015-08-11 12:58:49 +02:00
jfkthame
c7dfe316f8
Don't rely on .cluster in _hb_ot_shape_normalize()
...
Fixes https://github.com/behdad/harfbuzz/pull/124
2015-08-09 18:26:27 +02:00
jfkthame
9099e48e29
Don't rely on .cluster field in fallback_position
...
Fixes tests/cluster.
Fixes https://github.com/behdad/harfbuzz/pull/123
2015-08-08 18:03:38 +02:00
Behdad Esfahbod
bd22a5cfae
Bug 91559 - HarfBuzz 1.0.1: Inconsistent DLL files specified/created...
...
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=91559
2015-08-07 11:13:27 +02:00
Behdad Esfahbod
f1c20e1ba5
[USE] Fix out-of-bounds static array access
2015-07-27 12:16:02 +02:00
Behdad Esfahbod
260442346a
1.0.0
2015-07-26 23:39:10 +02:00
Behdad Esfahbod
df6cb84449
Merge branch 'use'
2015-07-26 19:40:55 +02:00
Behdad Esfahbod
23e56e088a
Fix broken sentence
2015-07-25 17:38:21 +02:00
Grigori Goronzy
91a2e5d287
Update UCDN to upstream commit 8af93f30
...
This adds support for Unicode 8.0 and fixes a bug with wrong properties
for ranges of codepoints.
2015-07-25 17:32:16 +02:00
Behdad Esfahbod
0f98fe88f4
[ot] Search globally for 'vert' feature if not found in specified script/lang
...
Fixes https://github.com/behdad/harfbuzz/issues/63
2015-07-23 11:52:11 +01:00
Behdad Esfahbod
f327aacfa1
[ot] Minor
2015-07-23 11:32:59 +01:00
Behdad Esfahbod
d78463c801
Minor debug output fix
2015-07-23 10:11:35 +01:00
Behdad Esfahbod
d99f50bde0
Add missing TRACE_RETURN
2015-07-23 10:08:48 +01:00
Behdad Esfahbod
2dc8e3f470
[ot] Add missing return!
2015-07-23 10:07:21 +01:00
Behdad Esfahbod
8cfbc304ee
Fix hide-default-ignorables after f0010dfd01
...
We can't delete things before hb_ot_layout_position_finish(). So,
just zero the advance before it, and remove later.
2015-07-22 18:41:10 +01:00
Behdad Esfahbod
2dbd3d29d6
Fix hide-ignorables if font doesn't have space glyph
...
Was broken by 82b521aeb7
, as we have
positioning data by then and can't use the output buffer. Ouch!
2015-07-22 18:29:47 +01:00
Behdad Esfahbod
4ba796b26e
Refactor _hb_glyph_info_is_default_ignorable()
2015-07-22 17:41:31 +01:00
Behdad Esfahbod
f0010dfd01
[ot] Hide default-ignorables before finishing off positioning
...
For example, fixes the following sequence with Arial XP:
628 25cc 651 25cc 64e 3a 20 628 651 34f 64e
628 25cc 64e 25cc 651 3a 20 628 64e 34f 651
Discovered as part of:
https://bugs.freedesktop.org/show_bug.cgi?id=85873
2015-07-22 17:36:23 +01:00
Behdad Esfahbod
376d587f36
Implement more granular cluster-merging
...
TODO: Documentation.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71445
2015-07-22 16:51:12 +01:00
Behdad Esfahbod
a60e2cfa39
[ot] Don't rely on cluster numbers for ensure_native_direction()
2015-07-22 15:49:08 +01:00
Behdad Esfahbod
701112dad9
[ot] Simplify form_clusters()
2015-07-22 15:42:20 +01:00
Behdad Esfahbod
7b8b63adc5
[ot] Don't mirror character if font doesn't support mirrored character!
2015-07-22 15:24:26 +01:00
Behdad Esfahbod
97d7c3a100
[graphite2] Fix bunch of stuff
...
Based on patch from Martin Hosken, with review from Jonathan and I.
2015-07-22 14:28:25 +01:00
Behdad Esfahbod
ea7f8414e3
[graphite2] Enlarge buffer for output glyphs!
2015-07-22 13:53:45 +01:00
Behdad Esfahbod
9cd59db1af
[USE] Implement topographical features for non-Arabic-joining scripts
...
This works per-syllable as per the spec, but we think it should be per
spacing/base/??? glyph instead.
2015-07-22 13:31:07 +01:00
Behdad Esfahbod
ecb0b24ef3
Use foreach_cluster in Indic shaper
2015-07-22 12:02:09 +01:00
Behdad Esfahbod
56f71ff988
Use foreach_syllable in Myanmar shaper
2015-07-22 11:58:11 +01:00
Behdad Esfahbod
ac596511a8
Add foreach_syllable
...
Use it in USE.
2015-07-22 11:54:02 +01:00
Behdad Esfahbod
8ba9e68968
[USE] Do Arabic-like shaping
2015-07-22 11:17:34 +01:00
Behdad Esfahbod
9daf2dfb6b
Add hb-ot-shape-complex-arabic-private.hh
2015-07-22 10:49:13 +01:00
Behdad Esfahbod
a51a661fe1
[USE] Only reorder the first component of a split left mark
2015-07-21 18:24:21 +01:00
Behdad Esfahbod
a08a278b15
[USE] Don't compose split matras
...
Same logic as in Indic shaper.
2015-07-21 18:09:40 +01:00
Behdad Esfahbod
21cb08a417
Remove unused SEA shaper
2015-07-21 17:47:06 +01:00
Behdad Esfahbod
db1e9cdd41
Retire SEA shaper in favor of USE
2015-07-21 17:46:06 +01:00
Behdad Esfahbod
87dde9c647
[USE] Only use USE shaper if script system is not DFLT
...
Same logic as Indic and SEA.
2015-07-21 17:31:43 +01:00
Behdad Esfahbod
29832d797f
Route misc untested scripts through USE shaper instead of Indic
...
These were never tested with Indic shaper, and indeed wouldn't work there
because they didn't have their viramas and other config defined. They are
all also supported by MS through USE, so route them there.
2015-07-21 17:24:18 +01:00
Behdad Esfahbod
40c4a991c7
[USE] Implement dotted-circle
...
This makes USE feature-complete as far as the Indic-like features
are concerned.
2015-07-21 17:14:54 +01:00
Behdad Esfahbod
7ce03ebe7c
[USE] Move pref
2015-07-21 16:55:26 +01:00
Behdad Esfahbod
2d4b62ead9
[USE] Fix-up variation selectors and word joiner in table
2015-07-21 16:46:37 +01:00
Behdad Esfahbod
ad7178227f
[USE] Use a couple warnings
2015-07-21 16:43:27 +01:00
Behdad Esfahbod
a85c4da9b1
[USE] Move rphf
2015-07-21 16:07:10 +01:00
Behdad Esfahbod
5b5617e066
Add FLAG_UNSAFE()
...
Unused right now.
2015-07-21 15:52:15 +01:00
Behdad Esfahbod
f8160a4959
Add FLAG_SAFE() for values known to be small-enough
...
And add check to FLAG()
2015-07-21 15:50:02 +01:00
Behdad Esfahbod
366aeaad00
Add note re ASSERT_STATIC_EXPR_ZERO()
2015-07-21 15:45:48 +01:00
Behdad Esfahbod
d6adca9fbb
Remove unused macro ASSERT_STATIC_EXPR()
2015-07-21 15:17:27 +01:00
Behdad Esfahbod
1025e1a9e7
Use unsigned in FLAG()
2015-07-21 15:05:35 +01:00
Behdad Esfahbod
cf59c7589c
[USE] Use use_category() for rphf/pref memory
2015-07-21 14:51:45 +01:00
Behdad Esfahbod
595936ec25
[USE] Hook of rphf and pref custom processing
...
Still no reordering.
2015-07-21 14:15:35 +01:00
Behdad Esfahbod
ba72801325
[USE] Add CGJ to table
2015-07-21 11:57:23 +01:00
Behdad Esfahbod
4febed61ed
[USE] Set up features
2015-07-21 10:38:48 +01:00
Behdad Esfahbod
52a9577956
[USE] Hook up new scripts to USE shaper
...
Don't reroute scripts that we were routing to other shapers
before (just yet).
2015-07-21 10:02:04 +01:00
Behdad Esfahbod
b4c0829bc1
[USE] Remove unused Unicode data enums from USE C++ side
2015-07-21 09:31:19 +01:00
Behdad Esfahbod
44910cef62
[USE] Finish converting Unicode positional categories to USE
...
Even compiles.
2015-07-20 18:01:10 +01:00
Behdad Esfahbod
ad72555252
[USE] Map from Unicode data to USE syllabic categories
...
Positional sub-categories not applied yet.
2015-07-20 17:00:06 +01:00
Behdad Esfahbod
20e246e674
[USE] Start moving Unicode-to-USE mapping into Python code
2015-07-20 15:56:19 +01:00
Behdad Esfahbod
eb74535cc2
[USE] Fix Number clusters
...
The spec wrongly has "H" where "HN" is meant.
2015-07-20 15:33:25 +01:00
Behdad Esfahbod
a9663958fe
[USE] Start putting together the shaper body
2015-07-20 14:24:55 +01:00
Behdad Esfahbod
e0eabd7f67
[USE] Put a Ragel machine together
...
Grammar from the spec!
2015-07-20 13:50:38 +01:00
Behdad Esfahbod
fd74b939b1
Minor
2015-07-20 13:30:45 +01:00
Behdad Esfahbod
5e5c8560cc
[USE] Minor optimization of USE table
2015-07-20 12:01:20 +01:00
Behdad Esfahbod
c48ff28852
[USE] Build Universal Shaping Engine data table from Unicode 8 files
2015-07-20 11:46:17 +01:00
Behdad Esfahbod
e2c95116e1
[USE] Add Universal Shaping Engine to Makefile
2015-07-20 11:33:27 +01:00
Behdad Esfahbod
41a29af805
Update Arabic shaping table for Unicode 8.0
2015-07-15 01:39:57 +01:00
Behdad Esfahbod
64a2726e2c
Add Unicode 8.0 scripts
...
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1183209
2015-07-15 01:36:39 +01:00
Behdad Esfahbod
9ae156b768
Fix pragma usage
...
https://bugs.freedesktop.org/show_bug.cgi?id=91228
Commit cdcdfe61b9
changed two `#pragma
message` to `#pragma error` in hb-unicode.cc, however MSVC uses #error,
just like the #else branch. `#pragma error` is an unknown pragma so
MSVC does not fail the build because of it, which I believe was the
intention of that commit.
If it's meant to be an #error, then the #ifdef for _MSC_VER can be
removed entirely.
2015-07-05 22:43:17 +01:00
ThePhD
8ad89f057d
Spelling words is not my strong point.
2015-06-23 09:09:24 -04:00
ThePhD
e0a828ecbd
Back to using regular `strdup`, with an `hb-private.hh` fix that special-cases VC++'s
...
definition and usage of the words
2015-06-23 09:07:17 -04:00
ThePhD
8e545d5961
Fix all VC++ warnings and errors in the current commit's builds.
2015-06-22 22:29:04 -04:00
Behdad Esfahbod
5f13bbd9d4
When removing default-ignorables, merge clusters
...
Fixes test-shape, and:
https://code.google.com/p/chromium/issues/detail?id=497578
2015-06-19 13:31:49 -07:00
Behdad Esfahbod
82b521aeb7
Rewrite hide_default_ignorables
...
Separate the loops for the two cases of replacing with space
and deleting. For deleting, use the out-buffer machinery.
Needed for upcoming cluster merge fix.
2015-06-19 13:26:03 -07:00
Behdad Esfahbod
351f68f4e0
[bindings] Fix hb_language_get_default() and hb_ot_tag_to_language()
...
Part of https://github.com/behdad/harfbuzz/issues/91
2015-06-12 17:46:06 -07:00
Behdad Esfahbod
a5e4f6d608
Fix warnings: "member call on null pointer of type"
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1167119
2015-06-10 10:57:46 -07:00
Behdad Esfahbod
8dacb7f8b4
Add include check to hb-ot-font.h
2015-06-03 11:53:42 -07:00
Sascha Brawer
01c3a88543
Fix "Since:" tags
...
Based on data from http://upstream-tracker.org/versions/harfbuzz.html
Resolves #103
2015-06-01 13:25:27 +02:00
Behdad Esfahbod
f1b44303df
Fix unary minus operator applied to unsigned int
...
Applying unary minus operator to unsigned int causes the following
warning on MSVS:
warning C4146: unary minus operator applied to unsigned type, result still unsigned
Based on patch from Koji Ishi.
Fixes https://github.com/behdad/harfbuzz/pull/110
2015-05-21 14:00:15 -07:00
Behdad Esfahbod
1ae6cdb365
[gobject] Remove hb_language_t workarounds for g-i shortcomings
...
Using latest gobject-introspection, I don't seem to be having this
problem anymore:
https://bugzilla.gnome.org/show_bug.cgi?id=707656
Removing that kludge makes language_t behave more like the way I expect it
in Python.
Also fixes:
https://github.com/behdad/harfbuzz/issues/91
2015-05-19 17:42:30 -07:00
Behdad Esfahbod
ece434fa0f
[gobject] Macroize value types
...
Fixes user_data_t
2015-05-19 17:20:58 -07:00
Behdad Esfahbod
9df099b483
[ft] Don't set *glyph in get_glyph() if glyph not found
2015-05-18 18:37:46 -07:00
Behdad Esfahbod
5801521532
Add note re OpenType 1.7 language tags
2015-05-06 00:40:31 -07:00
Roozbeh Pournader
f6266ad291
[minor] Remove comment about Navajo OpenType code.
...
Apparently the code is already standardized:
https://www.microsoft.com/typography/otspec/languagetags.htm
2015-05-05 22:39:04 -07:00
Behdad Esfahbod
42b00118ea
Merge pull request #102 from roozbehp/master
...
Add OpenType language tag 'NAV ' for Navajo.
2015-05-05 14:49:47 -07:00
Behdad Esfahbod
be66ec5373
Use TRUE/FALSE instead of true/false in docs
2015-04-30 18:27:13 -04:00
Khaled Hosny
d055e1fc78
Some attempt into initial hb-shape documentation
...
Very anaemic, needs to descripe the format understood by
hb_feature_from_string() etc., but it is just start.
2015-04-30 18:24:45 -04:00
Behdad Esfahbod
81bedda58c
New API: hb_buffer_reverse_range()
2015-04-30 13:04:16 -04:00
Roozbeh Pournader
cfeb0562eb
Add OpenType language tag 'NAV ' for Navajo.
...
The code is not standardized yet, but is used in some Google fonts.
2015-04-29 09:32:42 -07:00
Jonathan Kew
f724cc3516
Don't apply Arabic shaping to vertical text.
2015-04-24 12:19:02 -07:00
Behdad Esfahbod
97942420bb
Update check-libstdc++ for clang
2015-04-23 18:56:24 -07:00
Behdad Esfahbod
39851ce84e
[coretext] Oops; fix issue number for previous commit
2015-04-21 19:23:27 -07:00
Behdad Esfahbod
24f17afeaf
[coretext] Fix positioning with trailing whitespace
...
Fixes https://code.google.com/p/chromium/issues/detail?id=476913
2015-04-21 19:21:32 -07:00
Behdad Esfahbod
dba482fc44
[ot-font] Accept MS Symbol cmap if nothing else found
2015-04-17 13:08:08 -07:00
Behdad Esfahbod
3029e8b59d
Revert "Add MSVC pragma for UTF-8 source code"
...
This reverts commit 89cbd4d953
.
See discussion:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
2015-04-14 13:32:22 -07:00
Behdad Esfahbod
89cbd4d953
Add MSVC pragma for UTF-8 source code
...
Not sure we have any right now; motivated by this:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
2015-04-13 12:27:08 -07:00
Behdad Esfahbod
713f99ff61
Merge pull request #99 from khaledhosny/introspection-fixes2
...
More ntrospection fixes
2015-04-10 14:34:05 -07:00
Khaled Hosny
22524a514f
[bindings] Fix hb_buffer_get_segment_properties
...
Annotate the output parameter.
2015-04-10 22:57:38 +02:00
Behdad Esfahbod
1086f21e54
Merge branch 'hb-fc'
2015-04-10 12:21:04 -07:00
Khaled Hosny
04f89e8f7d
[bindings] Fix ownership of returned hb_language_t
...
It should not be freed by the caller.
2015-04-10 18:17:02 +02:00
Konstantin Ritt
855a5d7cb8
Fix build on WEC2013
...
Based on patch from Björn Breitmeyer
2015-04-10 17:18:01 +04:00
Behdad Esfahbod
eb0bf3ae66
Relax inert checks
...
Previously, when creating an object from inert inputs (eg:
"hb_font_create(hb_face_get_empty())") we returned the inert
empty object. This is not helpful as there are legitimate
usecases to do that.
We now never return the inert object unless allocation failed.
Tests are revised to reflect.
2015-04-09 19:16:57 -07:00
Behdad Esfahbod
9c974360fe
Minor rename
2015-04-09 12:04:14 -07:00
Behdad Esfahbod
f3b170bdd9
Minor
2015-04-08 16:26:24 -07:00
Behdad Esfahbod
2958f2c147
Fixup
2015-04-08 16:26:16 -07:00
Behdad Esfahbod
b931e0b0ce
Fix warnings
...
Part of https://github.com/behdad/harfbuzz/pull/68
2015-04-08 14:43:33 -07:00
Behdad Esfahbod
cdcdfe61b9
Err, instead of warn, if mutex / atomic / unicode funcs are missing
...
Hopefully this results in fewer badly built HarfBuzz integrations.
2015-04-08 13:25:04 -07:00
Behdad Esfahbod
fc3c59a1d7
Fix unused var warnings
2015-04-08 13:04:29 -07:00
Konstantin Ritt
3f174cd020
Minor refactoring to the atomics implementation
...
s/atomic_int/atomic_int_impl/ and s/atomic_ptr/atomic_ptr_impl/
to bring it in par with hb_mutex_impl_t, then re-introduce
hb_atomic_int_t as a wrapper around hb_atomic_int_impl_t.
In hb_reference_count_t, make it clear the non-atomic get and set
are intentional due to nature of the cases they are used in
(comparison to -1 and the debug output/tracing).
2015-04-08 13:04:22 -07:00
Behdad Esfahbod
24930d544e
Minor
2015-04-08 12:52:06 -07:00
Behdad Esfahbod
45a8b46f47
Allow implementing atomic and mutex ops in config
...
Motivated by
https://github.com/behdad/harfbuzz/pull/92
2015-04-08 12:49:38 -07:00
Behdad Esfahbod
3fe4e92bc5
Minor
2015-04-08 12:49:23 -07:00
Behdad Esfahbod
ce01ad7c2f
MSVC 2015 supports snprintf and not _snprintf
2015-04-01 11:05:59 -07:00
Behdad Esfahbod
560718862f
Move WinCE define to better place
2015-04-01 11:04:58 -07:00
Behdad Esfahbod
aee685086c
Fix VC++ /analyze warnings
...
out\debug\hb-buffer-deserialize-text.rl(47) : warning C6001: Using
uninitialized memory 'pos'.
2015-03-26 14:13:53 -04:00
Khaled Hosny
a394bb6670
[bindings] Fix *_from_string functions
...
Without the element-type they will be getting garbage, at least with
Python.
2015-03-22 20:29:10 +02:00
Behdad Esfahbod
9e401f6890
Fix reverse_range() for empty range
...
Fixes coretext notdef loop consisting of all default_ignorable glyphs
https://code.google.com/p/chromium/issues/detail?id=464755
2015-03-20 16:08:38 -04:00
Behdad Esfahbod
98e3ea8e34
Fix hb-uniscribe build
2015-03-04 12:03:39 -08:00
Behdad Esfahbod
8ac345e5c0
Fix reverse_range() to only reverse alt array if positions are used
...
In hb-coretext, when we were using scratch buffer for book-keeping,
a reverse_range() caused by the notdef-insertion loop could mess up
our log_clusters. Ouch!
2015-03-02 16:06:55 -08:00
Behdad Esfahbod
5f541f8f7b
Minor refactoring
2015-02-25 15:43:35 -08:00
Behdad Esfahbod
ef79bdf73b
Minor
2015-02-25 15:43:35 -08:00
Behdad Esfahbod
68e04afbb1
Typo
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
55553699b3
Minor
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
5175300fba
[layout] Fix comparison of GlyphID and hb_codepoint_t
...
Before, the IntType::cmp functions providing this and was truncating
the hb_codepoint_t to 16bits before comparison. I have no idea how
this was never discovered, and I'm too lazy to try to reproduce this
with Pango (which uses non-16bit codepoint numbers for missing glyphs).
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
7cce809cb1
Remove unused (and wrong as of a few commits ago) cmp() function
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
8e3d4bae03
Minor
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
f47cf1f12d
Minor
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
640b66c634
[layout] If lookup has only one subtable, move the forward loop down to subtable
...
I was hoping to see a nice speedup, but it resulted in a very minor one.
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
e2f50f2a7e
[layout] Add apply_forward / apply_backward
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
1d4a328472
[layout] Remove unneeded return value from apply()
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
bbdd6fd21c
Minor simpilfy BEInt
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
88a399acdc
Optimize IntType comparison to avoid branches for 16bit numbers
2015-02-25 15:43:32 -08:00
Behdad Esfahbod
37de2d5331
Minor simplify IntType
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
bd047d3b7f
[layout] Minor
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
b9d3f60520
[layout] Minor
2015-02-25 15:43:31 -08:00
Behdad Esfahbod
1a2322134a
[layout] Don't check glyph props against lookup flags when recursing
...
Shouldn't be needed. I have a hard time imagining this breaking any
legitimate use case.
2015-02-25 15:43:30 -08:00
Behdad Esfahbod
095a1257cc
[layout] Port sanitize() to use dispatch()
...
Needed some rework of Extension table. Hopefully I got it right, and
the new template usage doesn't break any compilers...
2015-02-25 15:43:30 -08:00
Behdad Esfahbod
758fb20630
Remove unused macro
2015-02-25 15:43:30 -08:00
Behdad Esfahbod
40c58923cb
[layout] Refactor Lookup::dispatch()
2015-02-25 15:43:30 -08:00
Behdad Esfahbod
70366f5d19
[layout] Refactor get_subtable()
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
f72f326aea
Minor
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
8e36ccfd4f
[layout] Use dispatch() for add_coverage()
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
50b8dc79da
[layout] Add may_dispatch()
...
No functional change right now.
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
de2118ed7a
Make sanitize() a const method
...
This makes a lot of code safer. We only try modifying the object in one
place, after making sure it's safe to do so. So, do a const_cast<> in
that one place...
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
6759ed95a3
Minor
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
6b599dac1f
Remove unnecessary check in sanitize
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
365576d246
[layout] Allocate iters in the context
...
Can be further optimized, but I think I didn't break anything.
Saves another 3% off Roboto shaping.
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
514564f544
[layout] Move skippy_iter setup from constructor into init()
2015-02-25 15:43:27 -08:00
Behdad Esfahbod
b051be542a
[lookup] Add skippy_iter.reset()
...
Towards reducing the cost of initializing skippy_iter()
2015-02-25 15:43:27 -08:00
Behdad Esfahbod
2cecc38c7c
[layout] Shuffle code around
2015-02-25 15:43:27 -08:00
Behdad Esfahbod
696266981d
[layout] Merge forward and backward iterators
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
1f038eec3c
[layout] Fix backward reject()
...
Has no functional effect since reject was never used with
match_glyph_data.
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
37d13acd8d
[layout] Remove some unnecessary checks in skippy
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
baa14e1814
[lookup] Don't initialize skippy if coverage match fails
...
Currently:
- Initializing skippy is very expensive,
- Our lookup accelerator (using set-digests) can be very ineffecite,
As such, we end up many times initializing skippy but then failing
coverage check. Reordering fixes that.
When, later, we fix our accelerator to have truly small false-positive
rate (for example by using the frozen-sets), then we might want to
reorder these checks such that we wouldn't calculate coverage number
if skippy is going to fail.
This shows a 5% speedup with Roboto already.
2015-02-25 15:43:26 -08:00
Behdad Esfahbod
7788993bc1
[layout] Use setter method to set c->lookup_props
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
f4ee48fd7b
[layout] Remove unused wrapper method
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
7b7129c7a9
Add hb_frozen_set_t
...
I experimented with replacing use of hb_set_digest_t with this new
hb_frozen_set_t, hoping to get a huge speedup for busy lookups
(like kern lookup in Roboto), but I only got 6% speendup in Roboto
and 4% in NotoNastaliqUrduDraft :(.
2015-02-25 15:43:25 -08:00
Behdad Esfahbod
241eac9559
Hide internals of lookup accelerators
2015-02-25 15:43:25 -08:00
Konstantin Ritt
9768e651be
Fix build with MSVC on CE
...
This code is C++ only. There isn't a single C++ compiler that fails to
understand the "inline" keyword, since it's required by C++98. Any
compiler older than C++98 is likely to choke on the template usage
further down, so this isn't necessary.
Moreover, the C++ standard says you cannot define macros.
[lib.macro.names] says "Nor shall such a translation unit define macros
for names lexically identical to keywords." -- technically, it's a
promise that the Standard Library headers won't do it, the wording means
that the entire translation unit won't do it, which implies no source
can do it.
MSVC complains about it:
fatal error C1189: #error : The C++ Standard Library forbids macroizing
keywords. Enable warning C4005 to find the forbidden macro.
Author: Thiago Macieira <thiago.macieira@intel.com>
2015-02-14 00:58:51 +04:00
Behdad Esfahbod
7888a6b07a
[ft] Handle negative scales with vertical writing
2015-01-28 12:40:40 -08:00
Behdad Esfahbod
982d94eaa2
[coretext] Don't generate notdef glyph for default-ignorables
...
As discovered on Chrome Mac:
https://code.google.com/p/chromium/issues/detail?id=452326
2015-01-28 10:51:33 -08:00
Behdad Esfahbod
6917a045fd
[coretext] Unbreak glyph positioning in presence of notdef runs
...
As discovered on Chrome Mac:
https://code.google.com/p/chromium/issues/detail?id=452326
This was originally broken in:
commit 5a0eed3b50
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Aug 11 23:47:16 2014 -0400
[coretext] Implement vertical shaping
2015-01-28 10:50:54 -08:00
Behdad Esfahbod
1eff435023
Minor optimization
2015-01-27 12:26:04 -08:00
Konstantin Ritt
675956aca0
Do not leak hb_language_t on hb_language_item_t destruction
2015-01-27 10:06:56 -08:00
Konstantin Ritt
b306f9674a
Minor improvement to HB_SHAPER_DATA_DESTROY
2015-01-27 10:02:34 -08:00
Behdad Esfahbod
61820bc4ca
[API] Add hb_buffer_add_latin1()
...
This is by no ways to promote non-Unicode encodings. This is an entry
point that takes Unicode codepoints that happen to all be the first
256 characters and hence fit in 8bit strings. This is useful eg in Chrome
where strings that can fit in 8bit are implemented that way, and this
avoids copying into UTF-8 or UTF-16.
Perhaps we should rename this to hb_buffer_add_codepoints8(). I'm also
curious if anyone would be really interested in hb_buffer_add_codepoints16().
Please discuss!
2015-01-26 14:25:52 -08:00
Behdad Esfahbod
78c6e86c04
Fix hb_buffer_add_codepoints to actually NOT validate
2015-01-26 14:08:36 -08:00
Konstantin Ritt
f3537b620b
Move some code around
...
Just to keep Windows specific workarounds in a single place.
2015-01-25 09:50:51 +04:00
Konstantin Ritt
afb62d88d7
Do not define MemoryBarrier on WinCE
...
There is a _HBMemoryBarrier() wrapper function that emulates
MemoryBarrier() behavior when it is not defined.
2015-01-25 08:16:26 +04:00
Konstantin Ritt
7db326a15b
Fix build on WinRT
...
There is no environment (like WinCE) and the basic version
of InitializeCriticalSection is unsupported.
https://codereview.qt-project.org/#/c/92496/
2015-01-25 08:13:24 +04:00
Behdad Esfahbod
a319d0777b
[ft] Handle negative x_scale / y_scale
2015-01-23 12:44:24 -08:00
Behdad Esfahbod
b0b38bb892
[coretext] Fix positioning of notdef
2015-01-21 19:19:33 -08:00
Behdad Esfahbod
70622e5089
[coretext] Fix scaling
...
Before we were not accounting for possible differences in x_scale and
y_scale, as well as the signs of those. All should be in good shape
now.
2015-01-21 18:51:42 -08:00
Behdad Esfahbod
221ba02b08
[coretext] Use vertical advance for notdef in vertical direction
2015-01-21 18:51:42 -08:00
Behdad Esfahbod
7988da24c5
Add convenience make target "make lib" in src/
2015-01-21 18:33:50 -08:00
Behdad Esfahbod
67dfa8c7c2
When matching second glyph of kerning pairs, use bsearch
...
Roboto has glyphs (like 'F') that have 200 kerning pairs.
Add a handcoded bsearch instead of previous linear search.
This doesn't show much speedup though, apparently we spend the
bulk of the time somewhere before here.
2015-01-19 17:00:31 -08:00
Behdad Esfahbod
e9f5c65be0
[bindings] Minor
2015-01-19 16:15:32 -08:00
Roozbeh Pournader
5eb939ddfe
Change New Tai Lue shaping engine from SEA to default
...
This is to reflect the UTC decision to change the encoding model of
New Tai Lue from logical to visual to be similar to Thai, Lao, and
Tai Viet: http://www.unicode.org/L2/L2014/14250.htm#141-C26
The visual encoding is already the current practice of encoding New
Tai Lue on the web anyway:
http://www.unicode.org/L2/L2014/14195-newtailue.txt
Fixes behdad/harfbuzz#66 .
2015-01-18 14:39:18 -08:00
Behdad Esfahbod
1aaa7d6799
[indic] Fix out-of-bounds access
2015-01-17 20:16:56 -08:00
Behdad Esfahbod
238d6a38f2
[bindings] Update sample.py
2015-01-07 10:51:44 -08:00
Behdad Esfahbod
2cd5323531
[bindings] Use hb_glib_blob_create() in sample
...
hb_blob_create() is considered C-only API.
2015-01-06 19:16:38 -08:00
Behdad Esfahbod
0ef179e2dc
[glib] Add hb_glib_blob_create() that takes GBytes
2015-01-06 16:58:33 -08:00
Behdad Esfahbod
b91904a40d
[bindings] Replace deprecated allow-none with optional and nullable
2015-01-06 15:43:14 -08:00
Behdad Esfahbod
81a31f3eff
[bindings] Make sample Python 2/3 compatible
2015-01-06 15:37:31 -08:00
Behdad Esfahbod
b632e7997d
Fix up gobject-introspection a bit
...
Minimal shaping works now!
2015-01-06 14:05:26 -08:00
Chris Peterson
fb85d618f5
Add #ifdef HB_USE_ATEXIT to fix -Wunused-function warnings
2015-01-04 19:31:10 -08:00
Chris Peterson
d1897a98d8
Fix hb_atomic_ptr_cmpexch -Wunused-value warnings
2015-01-03 19:46:19 -08:00
Behdad Esfahbod
f34aaba868
[ft] Don't set font ppem
...
For discussion see:
http://lists.freedesktop.org/archives/harfbuzz/2012-April/001905.html
Over time we have had added NO_HINTING all over the place in hb-ft. Finish it off.
Not setting ppem on hb-font disables get_contour_point() calls which is good anyway.
See comments in the commit.
2014-12-28 18:56:15 -08:00
Behdad Esfahbod
350f3a02ce
[ft] Add hb_ft_face_create_referenced() and hb_ft_font_create_referenced()
...
When I originally wrote hb-ft, FreeType objects did not support reference
counting. As such, hb_ft_face_create() and hb_ft_font_create() had a
"destroy" callback and client was responsible for making sure FT_Face is
kept around as long as the hb-font/face are alive.
However, since this was not clearly documented, some clienets didn't
correctly did that. In particular, some clients assumed that it's safe
to destroy FT_Face and then hb_face_t. This, indeed, used to work, until
45fd9424c7
, which make face destroy access
font tables.
Now, I fixed that issue in 395b35903e
since
the access was not needed, but the problem remains that not all clients
handle this correctly. See:
https://bugs.freedesktop.org/show_bug.cgi?id=86300
Fortunately, FT_Reference_Face() was added to FreeType in 2010, and so we
can use it now. Originally I wanted to change hb_ft_face_create() and
hb_ft_font_create() to reference the face if destroy==NULL was passed in.
That would improve pretty much all clients, with little undesired effects.
Except that FreeType itself, when compiled with HarfBuzz support, calls
hb_ft_font_create() with destroy==NULL and saves the resulting hb-font on
the ft-face (why does it not free it immediately?). Making hb-face
reference ft-face causes a cycling reference there. At least, that's my
current understanding.
At any rate, a cleaner approach, even if it means all clients will need a
change, is to introduce brand new API. Which this commit does.
Some comments added to hb-ft.h, hoping to make future clients make better
choices.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75299
2014-12-28 17:59:28 -08:00
Behdad Esfahbod
9a3b74884b
Remove redundant check for FT_Face_GetCharVariantIndex
...
We require FreeType >= 2.8.3. This symbol was introduced earlier
than that.
2014-12-28 17:27:39 -08:00
Behdad Esfahbod
affacf2f37
[ft] Open blob in READONLY mode
...
HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE is deprecated and fairly
useless now.
2014-12-28 16:20:31 -08:00
Behdad Esfahbod
395b35903e
Avoid accessing layout tables at face destruction
...
"Fixes" https://bugs.freedesktop.org/show_bug.cgi?id=86300
Based on discussion someone else who had a similar issue, most probably
the user is releasing FT_Face before destructing hb_face_t / hb_font_t.
While that's a client bug, and while we can (and should) use FreeType
refcounting to help avoid that, it happens that we were accessing
the table when we didn't really have to. Avoid that.
2014-12-28 16:03:26 -08:00
Behdad Esfahbod
7d5e7613ce
Fail blob creation if length overflows or is too large
...
Fail if blob start plus length overflows; or if blob length
is greater than 2GB. It takes a while for fonts to get to that
size. In the mean time, it protects against bugs like this:
http://www.icu-project.org/trac/ticket/11450
Also avoids some weird issues with 32bit vs 64bit systems
as we accept length as unsigned int. As such, a length of
-1 will cause overflow on 32bit machines, but happily
accepted on a 64bit machine. Avoid that.
2014-12-18 18:22:21 -08:00
Behdad Esfahbod
d5a5052098
Assert that blob length doesn't overflow address.
...
This will crash now, if blob was created with wrong length.
Check for that coming next commit.
2014-12-18 18:09:41 -08:00
Behdad Esfahbod
093c520de5
[otlayout] Mark variables that are C arrays as opposed to OT::ArrayOf
2014-12-12 21:07:53 -08:00
Behdad Esfahbod
9df0a52030
[otlayout] Avoid invalid access with Context format 3
2014-12-12 20:54:28 -08:00
Behdad Esfahbod
295ef1dd52
[ot] Debug get_coverage
2014-12-12 20:43:18 -08:00
Behdad Esfahbod
00f6a8e334
[ot] Print format in dispatch trace
2014-12-12 20:36:49 -08:00
Behdad Esfahbod
5c7d6f02d7
Minor
2014-12-12 20:28:49 -08:00
Behdad Esfahbod
153beebba9
[ot] Make sure all toplevel tables have tableTag
2014-12-12 19:46:09 -08:00
Behdad Esfahbod
282b13f9b4
[sanitize] Improve debug output some more
2014-12-12 19:34:49 -08:00
Behdad Esfahbod
0766ee1f4e
[sanitize] Improve debug output
2014-12-12 18:23:20 -08:00
Behdad Esfahbod
e6f80fa104
[indic] Allow ZWJ/ZWNJ before SM
...
In Oriya, a ZWJ/ZWNJ might be added before candrabindu to encourage
or stop ligation of the candrabindu. This is clearly specified in
the Unicode section on Oriya. Allow it there. Note that Uniscribe
doesn't allow this.
Micro tests added using Noto Sans Oriya draft.
No changes in numbers. Currently at:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed (0.0178378%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
2014-12-10 12:05:24 -08:00
Behdad Esfahbod
fde3e4a423
In hb_ot_collect_glyphs(), don't recurse to a lookup more than once
...
Otherwise, we might process a lookup thousands of times, with no
benefit. This pathological case was hit by Noto Nastaliq Urdu Draft
in Firefox's code to determine whether space glyph is involved in
any GSUB/GPOS rules. A test page is at http://behdad.org/urdu
See:
https://bugzilla.mozilla.org/show_bug.cgi?id=1090869
2014-10-29 11:23:08 -07:00
Behdad Esfahbod
5a5640d850
Move code around
2014-10-14 21:26:13 -07:00
Behdad Esfahbod
666b42f73b
Move macros around
...
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=84491
2014-10-14 21:24:59 -07:00
Behdad Esfahbod
5c87120b81
Fix misc warnings
...
Fixes https://github.com/behdad/harfbuzz/pull/51
2014-10-14 20:07:31 -07:00
Behdad Esfahbod
8afaf09687
[ft] Add NO_HINTING in a couple other places
2014-10-02 16:40:41 -04:00
Behdad Esfahbod
5de0407337
Help clang with gcov
2014-10-01 18:18:25 -04:00
Behdad Esfahbod
c0b82ba32a
Create ragel-generated files in srcdir
2014-10-01 14:24:07 -04:00
Behdad Esfahbod
79bbb10b0d
Clean ragel-generated headers in maintainercleanfiles
2014-10-01 13:33:21 -04:00
Behdad Esfahbod
8971cac83e
Don't use tmp files in Makefile
...
Useful for code-coverage generation of the ragel-generated files
as they will now contain the correct .hh filename in them.
2014-10-01 12:42:16 -04:00
Behdad Esfahbod
2272318665
check-static-inits: Filter out zero-length sections
...
When compiling with -O0, zero-sized constructors were showing up
and confusing the test.
2014-10-01 11:56:07 -04:00
Behdad Esfahbod
b695a3dc23
check-static-inits: check for static finalizers
2014-10-01 11:55:14 -04:00
Behdad Esfahbod
250398b1e4
Hide other bubble-sort
2014-10-01 11:28:59 -04:00
Behdad Esfahbod
c1e8744262
Hide bubble-sort!
2014-10-01 11:07:08 -04:00
Behdad Esfahbod
156852991e
[ot-font] Add hb_ot_face_cmap_accelerator_t
2014-09-25 17:45:49 +03:00
Behdad Esfahbod
d088ccaf11
[ot-font] Minor
2014-09-25 17:26:56 +03:00
Behdad Esfahbod
d7c160a153
[ot-font] Handle missing vertical metrics tables
2014-09-25 17:15:35 +03:00
Behdad Esfahbod
be1cca2702
[ot-font] Add metrics_accel_t
2014-09-25 16:53:24 +03:00
Behdad Esfahbod
d41b809e9d
[ot-font] Start adding vertical support
2014-09-25 13:22:01 +03:00
Behdad Esfahbod
22f0de5025
Fix build
2014-08-25 12:54:57 -04:00
Behdad Esfahbod
d457e3f0ff
[arabic] Don't #include __FILE__
...
Fine!
https://code.google.com/p/chromium/issues/detail?id=406957
2014-08-25 12:31:19 -04:00
Behdad Esfahbod
9ceb673d9c
[arabic] Allow disabling win1256 fallback code
...
By defining HB_NO_WIN1256.
2014-08-25 11:48:12 -04:00
Behdad Esfahbod
8a93195021
[ot] Prefer Windows platform cmap tables / accept all Unicode encodingIDs
...
Some fonts on the Mac ship with (0,1).
2014-08-22 12:06:57 -04:00
Behdad Esfahbod
270971a0fc
[win32] Avoid preprocessor warnings re macros
2014-08-15 14:28:04 -04:00
Behdad Esfahbod
8c6bd34d38
Fix check-symbols on OS X
2014-08-14 13:33:37 -04:00
Behdad Esfahbod
522b1cc526
[coretext] Hide feature_mappings
2014-08-14 13:29:30 -04:00
Behdad Esfahbod
0d2c2f238b
Simplify hb-object
2014-08-14 13:25:55 -04:00
Behdad Esfahbod
9d861b81f3
Really fix clang build this time
2014-08-14 13:15:21 -04:00
Behdad Esfahbod
272226f294
Revert "Fix build on clang after previous commit"
...
This reverts commit 9c80cbc87f
.
2014-08-14 13:11:33 -04:00
Behdad Esfahbod
9c80cbc87f
Fix build on clang after previous commit
2014-08-14 13:09:52 -04:00
Behdad Esfahbod
a5a27073cf
Rewrite this==NULL checks to avoid undefined behavior
...
Fixes https://code.google.com/p/chromium/issues/detail?id=403594
2014-08-14 13:05:36 -04:00
Behdad Esfahbod
cc3b2d432b
Remove this==NULL check from face->reference_table()
...
Not supposed to happen, and apparently this is undefined in C++.
https://code.google.com/p/chromium/issues/detail?id=403594
2014-08-14 13:00:47 -04:00
Behdad Esfahbod
cd7ea4f791
Make hb_object_t members private
...
In preparation for fixing:
https://code.google.com/p/chromium/issues/detail?id=403594
2014-08-14 12:57:02 -04:00
Behdad Esfahbod
20076cc41e
[coretext] Add version guards for kCTLanguageAttributeName
2014-08-12 19:26:35 -04:00
Behdad Esfahbod
1b3011c27d
[coretext] Pass buffer language to CoreText
2014-08-12 19:17:49 -04:00
Behdad Esfahbod
3eb6a4dbf2
[coretext] Minor
2014-08-12 19:17:45 -04:00
Behdad Esfahbod
08acfe0d3a
[hb-coretext] Fix cluster order of notdef runs in RTL text
2014-08-12 19:17:45 -04:00
Behdad Esfahbod
30eed75de2
[shape-plan] Fix typo!
...
The only effect is, if shaper_list was not NULL and no shaper was found,
we now don't insert anything into cache and return earlier.
2014-08-12 17:15:09 -04:00
Behdad Esfahbod
dc9aba6fc5
[shape-plan] Better debug messages
2014-08-12 17:14:36 -04:00
Behdad Esfahbod
e956c65bf7
[shape-plan] Simplify macro
2014-08-12 17:06:50 -04:00
Behdad Esfahbod
29e25550ce
Fix gcc warning
2014-08-12 17:06:50 -04:00
Behdad Esfahbod
8d5eebc0c6
[shape-plan] Fix shape-plan caching with more than one requested shaper
...
Wasn't breaking out of loop, ouch!
http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
2014-08-12 17:06:50 -04:00
Behdad Esfahbod
bc3d0dc601
[shape-plan] Add debug tracing
2014-08-12 17:06:50 -04:00
Behdad Esfahbod
81b8d9777b
[coretext] Fix buffer resizing
...
Was very broken. Now fixed and tested.
2014-08-12 15:50:15 -04:00
Behdad Esfahbod
c3e924fb9e
[coretext] Rewind scratch-allocated arrays when not needed anymore
2014-08-12 15:50:15 -04:00
Behdad Esfahbod
8fd4d70b14
[wince] Two more Windows CE fixes
...
Report has it that it builds (and works) now:
https://codereview.qt-project.org/#/c/92087/
2014-08-12 13:12:31 -04:00
Behdad Esfahbod
fd0001d7db
[coretext] Compare CGFont and PS name, if CTFont didn't match
...
See comments.
Fixes vertical text. CoreText backend is in very good shape now!
Also see:
5a0eed3b50
25f4fb9b56
Fixes http://github.com/behdad/harfbuzz/pull/36
2014-08-12 10:34:01 -04:00
Behdad Esfahbod
5a0eed3b50
[coretext] Implement vertical shaping
...
Currently doesn't work though, we detect font fallback. Apparently
matching on ct_font is not safe for this. Looks like commit
25f4fb9b56
wasn't enough after all.
2014-08-11 23:47:16 -04:00
Behdad Esfahbod
1b55077f03
[coretext] Remove unnecessary alt_size
...
Wasn't needed after a6b8dc8742
.
2014-08-11 20:45:12 -04:00
Behdad Esfahbod
10b1104d79
[coretext] Use CFRunStatus
...
Assert that all runs had expected direction, and take hint for
non-monotone clusters.
2014-08-11 20:02:45 -04:00
Behdad Esfahbod
fd1a6aa8d0
[coretext] Minor
2014-08-11 20:01:37 -04:00
Behdad Esfahbod
130856c705
[coretext] Remove debug printf!
2014-08-11 19:16:26 -04:00
Behdad Esfahbod
b5fbc3b8f5
API: Do not clear buffer-flags in hb_buffer_clear_contents()
...
After 763e5466c0
, one doesn't
need to set flags for different pieces of text. The flags now
are something the client sets up once, depending on how it
actually uses the buffer. As such, don't clear it in
clear_contents().
Tests updated.
2014-08-11 18:40:01 -04:00
Behdad Esfahbod
104484cefe
Minor
2014-08-11 18:24:36 -04:00
Behdad Esfahbod
4acce77db7
[coretext] Pass buffer direction to CoreText
...
Have to use a CTTypesetter for this.
2014-08-11 17:46:50 -04:00
Behdad Esfahbod
5ec45dd37c
[coretext] Minor
...
It's hard to handle all possible NULL returns from CoreText. Add one
more...
2014-08-11 17:46:12 -04:00
Behdad Esfahbod
624a299b82
[coretext] Attach marks to base clusters
...
Fixes https://githu.com/behdad/harfbuzz/issues/49
to the extent that it can be fixed.
2014-08-11 15:29:18 -04:00
Behdad Esfahbod
3c41ccb535
[coretext] Use input clusters
...
Before, this shaper was returning UTF-16 cluster indices instead of
returning whatever cluster values the user had had set up in the buffer.
Ouch!
2014-08-11 15:11:59 -04:00
Behdad Esfahbod
a6b8dc8742
[coretext] Fix buffer resize handling
...
We can't really resize buffer and continue in this shaper as we are
using the scratch buffer for string_ref and log_cluster. Restructure
shaper to retry from (almost) scratch.
2014-08-11 15:08:53 -04:00
Behdad Esfahbod
9b3c60c88b
[coretext] Always compute log_clusters
...
To be used soon.
2014-08-11 13:46:56 -04:00
Behdad Esfahbod
15c633dd1f
Minor
2014-08-11 13:42:59 -04:00
Behdad Esfahbod
9ce067c775
[coretext] Simplify cluster mapping
2014-08-11 02:44:50 -04:00
Behdad Esfahbod
49f7fb6376
[coretext] Minor
2014-08-10 19:19:38 -04:00
Behdad Esfahbod
25f4fb9b56
[coretext] Fix fallback detection
...
Fixes http://github.com/behdad/harfbuzz/pull/36
2014-08-10 19:05:52 -04:00
Behdad Esfahbod
77a7a53ace
[coretext] Fix last range
...
Test with:
hb-view /Library/Fonts/Zapfino.ttf ZapfinoZapfino --features=-dlig[7:] --shaper=coretext
2014-08-10 19:05:52 -04:00
Behdad Esfahbod
c2b151d952
Fix hb_in_range() for types smaller than int
...
As exercised by hb-coretext .notdef code.
2014-08-10 19:05:52 -04:00
Behdad Esfahbod
26a963b9cb
[wince] Try to fix some stuff on Windows CE
...
Based on errors seen here:
http://testresults.qt-project.org/ci/QtBase_dev_Integration/build_03837/wince70embedded-armv4i-msvc2008_Windows_7/log.txt.gz
Fully untested.
2014-08-10 18:05:24 -04:00
Behdad Esfahbod
92aeee3f04
Minor
2014-08-10 17:42:19 -04:00
Behdad Esfahbod
b9993d8d6d
[coretext] Fix assert on Yosemite
...
Apparently those functions documented as sometimes returning NULL
actually exercise that right in OS X 10.10 Yosemite. The scratch
was too small for that. I *think* I fixed it, but haven't tested
as I don't have Yosemite.
2014-08-10 17:40:24 -04:00
Behdad Esfahbod
087733dd66
[coretext] Use CGFont as face_data
2014-08-10 17:33:16 -04:00
Behdad Esfahbod
d277c3d7ee
[arabic] Bug 82306 - Mandaic had errors in its Unicode Joining_Type
...
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=82306
2014-08-07 15:38:52 -04:00
Behdad Esfahbod
38fb30d742
Use atexit() only if it's safe to call from shared library
...
Apparently they are not (advertised as?) safe on BSD systems.
We ignore the case of static libraries.
Whitelisted on glibc, Android, and MSVC / mingw.
https://bugs.freedesktop.org/show_bug.cgi?id=82246
2014-08-06 13:34:49 -04:00
Behdad Esfahbod
d5e61470fa
[arabic] Fix fallback shaping regression
...
Was broken in 615d00ea25
.
Fixes https://github.com/behdad/harfbuzz/pull/48
Micro-test added.
2014-08-05 14:19:36 -04:00
Behdad Esfahbod
d7c850f803
[uniscribe] Minor
2014-08-02 19:07:53 -04:00
Behdad Esfahbod
8f3eebf7ee
Make sure gsubgpos buffer vars are available during fallback_position
...
Add buffer var allocation asserts to a few key places.
2014-08-02 19:07:49 -04:00
Behdad Esfahbod
2053f369f8
Disable 'liga' for vertical text
...
The reason we turned it on is because Kazuraki uses it. But that's
not reason enough. Until the OpenType spec gets its act together re
adding design-direction to lookups, this is better user experience.
2014-08-02 16:31:16 -04:00
Behdad Esfahbod
763e5466c0
Make it easier to use HB_BUFFER_FLAG_BOT/EOT
...
Previously, we expected users to provide BOT/EOT flags when the
text *segment* was at paragraph boundaries. This meant that for
clients that provide full paragraph to HarfBuzz (eg. Pango), they
had code like this:
hb_buffer_set_flags (hb_buffer,
(item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) |
(item_offset + item_length == paragraph_length ?
HB_BUFFER_FLAG_EOT : 0));
hb_buffer_add_utf8 (hb_buffer,
paragraph_text, paragraph_length,
item_offset, item_length);
After this change such clients can simply say:
hb_buffer_set_flags (hb_buffer,
HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT);
hb_buffer_add_utf8 (hb_buffer,
paragraph_text, paragraph_length,
item_offset, item_length);
Ie, HarfBuzz itself checks whether the segment is at the beginning/end
of the paragraph. Clients that only pass item-at-a-time to HarfBuzz
continue not setting any flags whatsoever.
Another way to put it is: if there's pre-context text in the buffer,
HarfBuzz ignores the BOT flag. If there's post-context, it ignores
EOT flag.
2014-08-02 16:17:44 -04:00
Behdad Esfahbod
0a5ae93362
Merge branch 'win1256'
2014-08-02 15:00:34 -04:00
Behdad Esfahbod
6ab6be32c5
[arabic/win1256] Remove unused MultipleSubst macros
2014-08-02 14:59:41 -04:00
Behdad Esfahbod
abfa4252cc
[arabic/win1256] Really fix lam-alef this time
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c26
b276e897d1 (commitcomment-7243499)
2014-08-02 14:59:32 -04:00
Behdad Esfahbod
55977f2a46
[arabic/win1256] Hook up lamMedi lookup
...
Restructure lookup array to accommodate.
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
2014-08-01 16:14:33 -04:00
Behdad Esfahbod
e839e2523e
[arabic/win1256] Fix TEH MARBUTA final form
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
2014-08-01 16:09:44 -04:00
Behdad Esfahbod
a2de193220
[arabic/win1256] Fix shaping of JEEM, HAH, and KHAH
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c16
2014-07-31 18:58:33 -04:00
Behdad Esfahbod
1789ccb1dd
[arabic/win1256] Remove GCC'ism
...
The table can now compile independently too. If we cannot make it work
on MSVC, we can always generate the data and distribute it.
The code now compiles cleanly with:
gcc -c -xc -std=c99 -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh
g++ -c -xc -std=c++1x -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh
See:
a97f537cec (commitcomment-7218736)
2014-07-31 18:58:24 -04:00
Behdad Esfahbod
f28b1c823d
[arabic] Implement Windows-1256 private shaping
...
Bug 1045139 - The Arabic text with "MS Sans Serif" font is rendered bad
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139
This is only enabled on Windows platforms, and requires support from
Uniscribe to work. But for clients that do hook up to Uniscribe, this
fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans Serif".
The code and table together have just less than a 1kb footprint when
enabled.
UNTESTED. I might even have broken regular Arabic fallback shaping.
2014-07-31 18:58:24 -04:00
Behdad Esfahbod
ac53443f1c
[hangul] Don't apply 'calt'
...
See comments.
Micro-test added.
2014-07-31 18:54:43 -04:00
Behdad Esfahbod
88911e8cc7
Minor
2014-07-29 19:47:26 -04:00
Behdad Esfahbod
9e834e29e0
[hebrew] Zero mark advance by GDEF late
...
Seems to be what Uniscribe does.
At this point I think it's work checking our default...
Fixes Bug 76767 - Zeroing of advance of 2nd component of multiple
substitution with SBL Hebrew
https://bugs.freedesktop.org/show_bug.cgi?id=76767
Micro-test added.
2014-07-26 20:34:01 -04:00
Behdad Esfahbod
6f2d9ba52a
Add old-Myanmar shaper
...
Looks like Unsicribe responds to the 'mymr' tag by zeroing marks
GDEF_LATE instead of generic-shaper UNICODE_LATE. Implement that.
Fixes
Bug 81775 - Incorrect Rendering with harfbuzz-ng myanmar unicode
https://bugs.freedesktop.org/show_bug.cgi?id=81775
Micro-test added based on Padauk.
2014-07-26 19:18:59 -04:00
Behdad Esfahbod
595d2b96c3
Minor
2014-07-26 18:44:15 -04:00
Behdad Esfahbod
fe6788bc57
Typo
2014-07-25 12:40:56 -04:00
Behdad Esfahbod
6e69200a2a
Fix snprintf() format
...
Patch from Maks Naumov.
Fixes https://github.com/behdad/harfbuzz/pull/22
2014-07-25 12:30:47 -04:00
Behdad Esfahbod
5c5cdbbdf8
Make sure broken feature strings are not partially parsed
...
If user doesn't check hb_feature_from_string() return value, we
don't want them to end up see the partially-parsed feature.
2014-07-25 12:21:49 -04:00
Behdad Esfahbod
a795fe6378
Allow quotation marks around feature tag in hb_feature_from_string()
...
With this, I believe we accept CSS feature strings completely.
2014-07-25 12:15:49 -04:00
Behdad Esfahbod
3f64618474
Allow space at the end of feature string with values, eg 'dlig=1 '
2014-07-25 12:13:19 -04:00
Behdad Esfahbod
f31f7d2259
Minor
2014-07-25 12:13:19 -04:00
Behdad Esfahbod
60cb18a5de
Allow on/off in hb_feature_from_string()
...
We now allow things like "dlig on" / "dlig=on".
2014-07-25 12:13:16 -04:00
Behdad Esfahbod
d9e618eca9
Remove duplicate definition of ISALNUM
...
It's defined in hb-private.h already.
2014-07-25 12:02:26 -04:00
Behdad Esfahbod
2ee5f665de
Fix parsing of features like "- liga" (with the space)
2014-07-25 12:02:22 -04:00
Behdad Esfahbod
e15fa7a8cf
Do not require the '=' in hb_feature_from_string()
...
Towards accepting CSS font-feature-settings strings.
2014-07-25 11:46:28 -04:00
Behdad Esfahbod
f4fe9baefd
Reject tags longer than 4 chars in hb_feature_from_string()
2014-07-25 11:39:55 -04:00
Behdad Esfahbod
7e8c389546
Minor warnings fixes
...
Some systems insist on -Wmissing-field-initializers. We have too many,
by design. Fix a few easy ones.
2014-07-25 11:23:17 -04:00
Behdad Esfahbod
fc0daafab0
[indic] Handle old-spec Malayalam reordering with final Halant
...
See comment.
Micro-tests added.
2014-07-23 16:53:03 -04:00
Behdad Esfahbod
d6d349d178
Give CC to gir-scanner
...
From:
https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-harfbuzz/0001-give-cc-to-gir-scanner.all.patch
2014-07-23 11:38:49 -04:00
Behdad Esfahbod
3f310dc0ca
Disallow changing settings on immutable face
...
Ouch!
2014-07-22 16:26:27 -04:00
Behdad Esfahbod
0fc0a10228
[win] Fix Cygwin build
...
db30828048 (commitcomment-7077778)
2014-07-21 11:13:27 -04:00
Behdad Esfahbod
1132a7dd0e
Add HB_TAG_MAX_SIGNED / _HB_SCRIPT_MAX_VALUE_SIGNED
...
To make C language police happy.
2014-07-20 01:17:40 -04:00
Behdad Esfahbod
df99976398
[gobject] Skip _HB_SCRIPT_MAX_VALUE
...
Fixes https://github.com/behdad/harfbuzz/pull/38
2014-07-19 17:31:23 -04:00
Behdad Esfahbod
f1a8d50a87
[win] Don't define visibility attribtue under Cygwin
2014-07-19 16:52:32 -04:00
Behdad Esfahbod
9c77027d64
[win] Turn STRICT on for including windows.h
2014-07-19 16:37:22 -04:00
Behdad Esfahbod
db30828048
[win] Consolidate windows.h include tips and tricks
2014-07-19 16:32:04 -04:00
Behdad Esfahbod
f26d59d468
More fixing MemoryBarrier() on Mingw32
...
Set requested windows header to Vista. See discussion:
fbb2847f54 (commitcomment-7054700)
2014-07-19 16:10:21 -04:00
Behdad Esfahbod
385cf37cf0
Fix hb_in_range() unused-var warning on Windows
2014-07-17 18:22:07 -04:00
Behdad Esfahbod
e3b42f1af4
[arabic] Disable 'cswh' again
...
Ouch!
2014-07-17 17:13:54 -04:00
Behdad Esfahbod
82f4d9d53f
[arabic] Add note re disabled 'cswh'
2014-07-17 15:57:37 -04:00
Behdad Esfahbod
615d00ea25
[arabic] Apply init/medi/isol/fini/... in separate stages
...
Follows the order of the Arabic/Syriac specs. Also don't stop
between rlig and calt in non-Arabic scripts.
Micro-tests for Arabic and Mongolian added for the latter.
2014-07-17 15:50:13 -04:00
Behdad Esfahbod
7cd33f2304
Micro optimization
2014-07-17 14:39:07 -04:00
Behdad Esfahbod
164c13d73f
Another try to fix Mongolian free variation selectors
...
This reverts bf029281
and fixes it properly. That commit
was not enough as it was only inheriting the shaping_action
for prev_action, but not curr_action.
Micro-test added.
https://code.google.com/p/chromium/issues/detail?id=393896
2014-07-17 14:28:04 -04:00
Behdad Esfahbod
5209c50506
Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints"
...
We now handle U+FFFD replacement in hb_buffer_add_utf*(). Any other
manipulation can happen in user callbacks. No need for this.
efe74214bb (commitcomment-7039404)
This reverts commit efe74214bb
.
Conflicts:
src/hb-ot-shape-normalize.cc
2014-07-17 12:23:44 -04:00
Dominik Röttsches
9e7c720100
Fix CoreText build after a8b89a09f6
2014-07-17 12:18:08 -04:00
Behdad Esfahbod
a4d643755a
Minor
2014-07-16 20:15:45 -04:00
Behdad Esfahbod
976c8f4552
New API: hb_buffer_[sg]et_replacement_codepoint()
...
With this change, we now by default replace broken UTF-8/16/32 bits
with U+FFFD. This can be changed by calling new API on the buffer.
Previously the replacement value used to be (hb_codepoint_t)-1.
Note that hb_buffer_clear_contents() does NOT reset the replacement
character.
See discussion here:
6f13b6d62d
New API:
hb_buffer_set_replacement_codepoint()
hb_buffer_get_replacement_codepoint()
2014-07-16 15:34:20 -04:00
Behdad Esfahbod
bcba8b4502
New API hb_buffer_add_codepoints()
...
Like hb_buffer_add_utf32, but doesn't do any Unicode validation.
This is like what hb_buffer_add_utf32 used to be until a couple
commits ago.
2014-07-16 14:59:04 -04:00
Behdad Esfahbod
625dbf141a
[buffer] Templatize UTF-* functions
2014-07-16 14:52:59 -04:00
Behdad Esfahbod
e634fed428
[buffer] Validate UTF-32 input
...
Same as what we do for UTF-8 and UTF-16.
2014-07-16 14:17:26 -04:00
Behdad Esfahbod
b98c5db32d
Minor refactoring
2014-07-16 13:44:01 -04:00
Behdad Esfahbod
3b861421a7
Fix Mongolian Variation Selectors for fonts without GDEF
...
Originally we fixed those in 79d1007a50
.
However, fonts like MongolianWhite don't have GDEF, but have IgnoreMarks
in their LigatureSubstitute init/etc features. We were synthesizing a
GDEF class of mark for Mongolian Variation Selectors and as such the
ligature lookups where not matching. Uniscribe doesn't do that.
I tried with more sophisticated fixes, like, if there is no GDEF and
a lookup-flag mismatch happens, instead of rejecting a match, try
skipping that glyph. That surely produces some interesting behavior,
but since we don't want to support fonts missing GDEF more than we have
to, I went for this simpler fix which is to always mark
default-ignorables as base when synthesizing GDEF.
Micro-test added.
Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258
2014-07-16 13:30:26 -04:00
Behdad Esfahbod
878a25375b
Minor
2014-07-16 13:21:59 -04:00
Behdad Esfahbod
ec181e5014
Minor moving around
2014-07-16 13:10:03 -04:00
Behdad Esfahbod
e7ce50d9eb
[indic] Fix access past end of array
2014-07-16 12:30:39 -04:00
Behdad Esfahbod
73e23b0acf
Whitespace
2014-07-15 18:43:49 -04:00
Behdad Esfahbod
b7bc0b671d
Simplify / speed up UTF-8 code
2014-07-11 16:22:13 -04:00
Behdad Esfahbod
af2490c095
Only accept well-formed UTF-8 sequences
...
Enable tests that were disabled before, and adjust one test,
and add more tests.
2014-07-11 16:22:13 -04:00
Behdad Esfahbod
7323d385cc
Simplify hb_utf_prev<16> to call hb_utf_next<16>
2014-07-11 16:22:13 -04:00
Behdad Esfahbod
c09a607a84
Use hb_in_range() for arabic and indic tables
...
Though, looks like gcc was smart enough to produce the same code
before...
2014-07-11 16:22:13 -04:00
Behdad Esfahbod
7627100f42
Mark unsigned integer literals with the u suffix
...
Simplifies hb_in_range() calls as the type can be inferred.
The rest is obsessiveness, I admit.
2014-07-11 16:22:13 -04:00
Behdad Esfahbod
a8b89a09f6
Simplify hb_in_range()
...
It's both faster and produces smaller code. Now I feel stupid for
not writing it this way before.
2014-07-11 14:18:01 -04:00
Behdad Esfahbod
db8934faa1
Simplify hb_utf_prev<8> to call hb_utf_next<8>
2014-07-11 13:58:36 -04:00
Behdad Esfahbod
efe74214bb
Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints
...
Only if the font doesn't support it. Ie, this gives the user to
use non-Unicode codepoints as private values and return a meaningful
glyph for them. But if it's invalid and font callback doesn't
like it, and if font has U+FFFD, show that instead.
Font functions that do not want this automatic replacement to
happen should return true from get_glyph() if unicode > 0x10FFFF.
Replaces https://github.com/behdad/harfbuzz/pull/27
2014-07-11 11:59:48 -04:00
Behdad Esfahbod
6f13b6d62d
When parsing UTF-16, generate invalid codepoint for lonely low surrogate
...
Test passes now.
2014-07-10 19:39:39 -04:00
Behdad Esfahbod
6334495ac1
Use zh-Hans / zh-Hant when converting OT language tag to hb_language_t
2014-07-10 19:22:07 -04:00
Behdad Esfahbod
f381e320df
Fix lang matching logic
...
Previous code was broken logically, but harmless.
2014-07-10 19:20:35 -04:00
Behdad Esfahbod
ee5350d667
Accept BCP 47 zh-Hans / zh-Hant language tags
2014-07-10 19:18:56 -04:00
Behdad Esfahbod
8b16ff1259
[uniscribe] Fix build after recent changes to Offset
2014-07-09 17:41:09 -04:00
Behdad Esfahbod
73f7f8919e
Define _POSIX_C_SOURCE only if it is not defined
...
Fixes https://github.com/behdad/harfbuzz/pull/45
2014-07-09 17:17:18 -04:00
Behdad Esfahbod
0cd94491b9
[ucdn] Update to Unicode 7.0.0 data
...
From http://github.com/behdad/ucdn
2014-07-09 16:53:06 -04:00
Behdad Esfahbod
68f724484b
[indic] Remove some more now-unused special-cases
2014-06-30 15:46:53 -04:00
Behdad Esfahbod
e79c948980
[indic] Remove special-casing of U+1CF2,1CF3
...
These were introduced in a498565ced
,
but IndicSyllabicCategory has had the correct value already, so the
special code was never needed.
2014-06-30 15:39:39 -04:00
Behdad Esfahbod
d743ce78e1
[indic-table] Update to Unicode 7.0 data
...
Touch code just enough to preserve previous syllable structure
and functionality as closely as possible. Many further cleanups
coming later.
2014-06-30 15:24:45 -04:00
Behdad Esfahbod
5fa21b3ab7
[indic-table] Fix category frequency counts in comments
2014-06-30 14:30:54 -04:00
Behdad Esfahbod
5c4e3e9a57
Whitespace
2014-06-30 14:25:18 -04:00
Behdad Esfahbod
af528b6674
Fix typo; ouch!
2014-06-27 18:07:00 -04:00
Behdad Esfahbod
7d4ada66c9
Mark unsed members with a "Z" suffix
...
There may be more. There are members that are by definition
redundant or reserved and not needed, NOT what we *currently*
don't use.
I'm sure there's more...
2014-06-27 17:32:56 -04:00
Behdad Esfahbod
23afcff1d1
[ot-font] Implement Unicode variation selectors
2014-06-27 17:22:36 -04:00
Behdad Esfahbod
a5a4736916
[cmap] Implement subtable format 14
2014-06-27 17:22:31 -04:00
Behdad Esfahbod
586b60622c
Minor: final bits of cleanup
2014-06-27 15:39:47 -04:00
Behdad Esfahbod
51d9ba09bc
Minor
2014-06-27 15:27:15 -04:00
Behdad Esfahbod
3084767e92
Minor: Remove LongArrayOf
2014-06-27 15:24:35 -04:00
Behdad Esfahbod
41ea594950
Minor: Remove LongSortedArrayOf
2014-06-27 15:23:18 -04:00
Behdad Esfahbod
bb6ecf2ce5
Minor: Remove LongOffsetArrayOf and LongOffsetLongArrayOf
2014-06-27 15:21:08 -04:00
Behdad Esfahbod
99d2817123
Minor: Remove GenericOffset
2014-06-27 15:19:15 -04:00
Behdad Esfahbod
9da552dcc5
Minor: Remove some GenericXXX templates
2014-06-27 15:18:36 -04:00
Behdad Esfahbod
36073ede5b
Minor: Reorder template parameter order
2014-06-27 15:18:26 -04:00
Behdad Esfahbod
0394ec1bfb
Minor: Introduce GenericOffset
2014-06-27 15:18:08 -04:00
Behdad Esfahbod
0d1b3419a7
Minor: Use template parameter default values for OffsetTo
2014-06-27 15:17:47 -04:00
Behdad Esfahbod
546b1adcdc
Minor: Use template parameter default values for hb_prealloced_array_t
2014-06-27 15:17:01 -04:00
Behdad Esfahbod
911ca38645
Add back API removed recently
...
Add hb_ot_layout_language_get_required_feature_index() again, which
is used in Pango. This was removed in
da13293798
in favor of
hb_ot_layout_language_get_required_feature().
API changes:
- Added hb_ot_layout_language_get_required_feature_index back.
2014-06-24 10:20:36 -06:00
Behdad Esfahbod
89e4946929
Add new IndicSyllabicCategory short forms for Unicode 7.0
2014-06-22 11:32:13 -06:00
Behdad Esfahbod
dcee838e89
Minor
2014-06-22 11:29:59 -06:00
Behdad Esfahbod
f2ad86e605
[indic-table-gen] Minor
2014-06-21 15:31:10 -06:00
Behdad Esfahbod
2ec62279aa
[indic-table] Update to Unicode 6.3.0
...
Was from 6.2.0. It's a no-op. Committing for the record.
2014-06-21 15:25:59 -06:00
Behdad Esfahbod
5d4d7384ef
Minor: format
2014-06-21 14:53:21 -06:00
Behdad Esfahbod
44243ae590
[arabic-table] Update to Unicode 7.0
...
Old table was from 6.2. Remove hard-coded Mongolian and Phags-pa data.
This completes support for new scripts Manichian and Psaltar Pahlavi.
2014-06-21 14:19:34 -06:00
Behdad Esfahbod
cd86ab9b4f
[arabic-table] Add ZWJ/ZWNJ now that table is segmented
2014-06-21 14:16:54 -06:00
Behdad Esfahbod
2390d9b67e
[arabic-table] Further tune
...
In anticipation of Unicode 7.0 data coming in the next commit.
2014-06-21 14:07:02 -06:00
Behdad Esfahbod
a133e6067a
[indic-table] Minor
2014-06-20 18:01:34 -04:00
Behdad Esfahbod
b900fa2c8c
[arabic-table] Use segmented table
...
No functional change.
2014-06-20 17:59:43 -04:00
Behdad Esfahbod
c2e1134046
[indic-table] Make output stable
2014-06-20 17:57:03 -04:00
Behdad Esfahbod
55abfbd2ac
[indic-table] Minor
...
No output change.
2014-06-20 16:47:43 -04:00
Behdad Esfahbod
f886707490
[arabic-table] Don't write comments
...
No functional change.
2014-06-20 16:30:10 -04:00
Behdad Esfahbod
200dfe3eb1
[arabic-table] Use short names for values
...
No functional change.
2014-06-20 16:20:59 -04:00
Behdad Esfahbod
3f5327a41e
[arabic-table] Read Blocks.txt and shuffle code around
...
No functional change.
2014-06-20 16:17:42 -04:00
Behdad Esfahbod
171f970e4f
[indic-table] Black-list Thai, Lao, and Tibetan
...
We don't need Indic table for those.
2014-06-20 15:30:29 -04:00
Behdad Esfahbod
65ac2dae4f
[indic-table] Speed up lookup
2014-06-20 15:29:38 -04:00
Behdad Esfahbod
64442a3f4c
[indic-table] Fix compiler warning
2014-06-20 15:29:21 -04:00
Behdad Esfahbod
0436e1d505
[indic-table] Make table more compact by not covering full blocks
...
-#define indic_offset_total 4416
+#define indic_offset_total 3816
-}; /* Table occupancy: 60% */
+}; /* Table occupancy: 69% */
2014-06-20 15:28:38 -04:00
Behdad Esfahbod
190a251479
[indic-table] Remove block range from data table
...
No functional change.
2014-06-20 14:42:03 -04:00
Behdad Esfahbod
2b051c6057
Rename HB_VERSION_CHECK and hb_version_check to "atleast"
...
HB_VERSION_CHECK's comparison was originally written wrongly
by mistake. When API tests were written, they were also written
wrongly to pass given the wrong implementation... Sigh.
Given the purpose of this API, there's no point in fixing it
without renaming it. As such, rename.
API changes:
HB_VERSION_CHECK -> HB_VERSION_ATLEAST
hb_version_check -> hb_version_atleast
2014-06-20 14:09:57 -04:00
Behdad Esfahbod
cabfa538ed
Adjust unused doc symbols
2014-06-20 14:02:30 -04:00
Jonathan Kew
da13293798
Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp
...
https://bugzilla.mozilla.org/show_bug.cgi?id=986802
Fixes https://github.com/behdad/harfbuzz/pull/39
API Change:
-hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_language_get_required_feature
New API takes an extra pointer argument. Pass NULL in to get
behavior of previous API.
Reworked by behdad
2014-06-19 16:33:48 -04:00
Behdad Esfahbod
df554af99d
Rename search() to bsearch() and lsearch()
...
Such that the complexity of the algorithm used is clear at
call site.
2014-06-19 15:39:18 -04:00
Behdad Esfahbod
fb8cc86ff9
Rename sort() to qsort()
...
In an effort to make the algorithm used clear.
2014-06-19 15:31:09 -04:00
Behdad Esfahbod
577ca48143
[unicode7] Update list of Default_Ignorable codepoints
2014-06-18 12:29:23 -04:00
Behdad Esfahbod
7cfee38276
[unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper
...
Still needs update to joining table to fully work.
2014-06-18 12:22:45 -04:00
Behdad Esfahbod
a4a7899cd9
[unicode7] Mark right-to-left scripts
2014-06-18 12:22:45 -04:00
Behdad Esfahbod
62587bfc51
[unicode7] Declare Unicode 7 scripts
2014-06-18 12:22:45 -04:00
Behdad Esfahbod
dc61294aa9
[unicode7] Add missing ISO 15924 tags
2014-06-18 12:22:45 -04:00
Behdad Esfahbod
7526373e70
[coretext] Remove unused var
2014-06-17 11:45:26 -04:00
Jonathan Kew
798e4185bc
When zeroing mark widths for LTR, also adjust offset...
...
...so that they overstrike preceding glyph.
https://github.com/behdad/harfbuzz/pull/43
2014-06-12 18:34:15 -04:00
Jonathan Kew
80f7405a52
[Thai] set the correct general category on Nikhahit when decomposing Sara-Am.
2014-06-12 18:25:58 -04:00
Behdad Esfahbod
1d634cbb4b
Fix base-position when 'pref' is NOT formed
...
If pre-base reordering Ra is NOT formed (or formed and then
broken up), we should consider that Ra as base. This is
observable when there's a left matra or dotreph that positions
before base.
Now, it might be that we shouldn't do this if the Ra happend
to form a below form. We can't quite deduce that right now...
Micro test added. Also at:
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
2014-06-12 17:10:35 -04:00
Behdad Esfahbod
04dc52fa15
[indic] Recover OT_H undergone ligation and multiplication
...
Sometimes font designers form half/pref/etc consonant forms
unconditionally and then undo that conditionally. Try to
recover the OT_H classification in those cases.
No test number changes expected.
2014-06-09 14:20:06 -04:00
Behdad Esfahbod
39c8201f8e
[indic] Improve base re-finding
...
No test numbers change.
2014-06-09 14:20:06 -04:00
Behdad Esfahbod
c04d5f0dd2
[indic] Minor
2014-06-09 14:20:06 -04:00
Behdad Esfahbod
832a6f99b3
[indic] Don't reorder reph/pref if ligature was expanded
...
Normally if you want to, say, conditionally prevent a 'pref', you
would use blocking contextual matching. Some designers instead
form the 'pref' form, then undo it in context. To detect that
we now also remember glyphs that went through MultipleSubst.
In the only place that this is used, Uniscribe seems to only care
about the "last" transformation between Ligature and Multiple
substitions. Ie. if you ligate, expand, and ligate again, it
moves the pref, but if you ligate and expand it doesn't. That's
why we clear the MULTIPLIED bit when setting LIGATED.
Micro-test added. Test: U+0D2F,0D4D,0D30 with font from:
[1]
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
2014-06-05 20:36:01 -04:00
Behdad Esfahbod
b5be231720
[gsub] Adjust single-length ligature subst to act like single subst
2014-06-05 19:00:22 -04:00
Behdad Esfahbod
aae69451df
[gsub] Minor shuffling
2014-06-05 19:00:08 -04:00
Behdad Esfahbod
b6b304f12b
[ot] Add TODO re zero-len MultipleSubst sequences
2014-06-05 17:12:54 -04:00
Behdad Esfahbod
f1a72fe7bf
[ot-font] Fix cmap EncodingRecord cmp order
2014-06-04 19:03:16 -04:00
Behdad Esfahbod
ce34f0b07e
[ot-font] Use binary search for format12 cmap subtable
2014-06-04 18:57:46 -04:00
Behdad Esfahbod
257d1adfa1
[ot-font] Work around broken cmap subtable format 4 length
...
Roboto was hitting this. FreeType also has pretty much the
same code for this, in ttcmap.c:tt_cmap4_validate():
/* in certain fonts, the `length' field is invalid and goes */
/* out of bound. We try to correct this here... */
if ( table + length > valid->limit )
{
if ( valid->level >= FT_VALIDATE_TIGHT )
FT_INVALID_TOO_SHORT;
length = (FT_UInt)( valid->limit - table );
}
2014-06-04 18:47:55 -04:00
Behdad Esfahbod
51f563579b
Move try_set to sanitize context
2014-06-04 18:42:32 -04:00
Behdad Esfahbod
500737e8e1
[ot-font] Don't select a Null cmap subtable
...
Can happen either in broken fonts, or as a result of sanitize().
2014-06-04 18:17:29 -04:00
Behdad Esfahbod
dac86026a6
Fix some cppcheck warnings
...
Bug 77800 - cppcheck reports
2014-06-03 17:57:00 -04:00
Behdad Esfahbod
c306410cab
Bug 77732 - Fix unused typedef warning for ASSERT_STATIC with GCC 4.8
2014-06-03 17:00:07 -04:00
Behdad Esfahbod
ae2b854eab
Move code around
2014-06-03 16:59:09 -04:00
Behdad Esfahbod
17c3b809f4
[indic] Treat U+A8E0..A8F1 as OT_A instead of OT_VD
...
Apparently they can intermix with other OT_A.
Test: U+0915,A8E2,1CD0
2014-06-02 15:08:18 -04:00
Behdad Esfahbod
6ae13f257c
[graphite2] Fix cluster mapping
...
Patch from Martin Hosken. I expect this to fix the following bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=75076
https://bugzilla.gnome.org/show_bug.cgi?id=723582
https://bugzilla.redhat.com/show_bug.cgi?id=998812
2014-05-30 17:38:14 -04:00
Behdad Esfahbod
7977ca17aa
[indic] Allow decimal and Brahmi digits as placeholders
...
Tests: U+0967,0951 U+0031,093F
2014-05-29 15:34:26 -04:00
Behdad Esfahbod
e8b5d64039
[indic] Do NOT allow reph formation on placeholders
...
Only allow it on DOTTED CIRCLE. No effect on test numbers.
Test: U+0930,094D,00A0
2014-05-29 15:20:15 -04:00
Behdad Esfahbod
52b562a6a0
[indic] Clean up a bit
...
No functional change intended.
2014-05-27 18:19:52 -04:00
Behdad Esfahbod
3bf652b907
[indic] Treat U+002D and U+2010..2014 as placeholders
2014-05-27 18:07:26 -04:00
Behdad Esfahbod
e0de95f402
[indic] Treat U+00D7 MULTIPLICATION SIGN as placeholder
2014-05-27 17:58:34 -04:00
Behdad Esfahbod
cf78dd483c
[indic/myanmar] Rename OT_NBSP to OT_PLACEHOLDER
2014-05-27 17:53:37 -04:00
Behdad Esfahbod
186ece94c8
[myanmar] Use OT_NBSP instead of OT_DOTTEDCIRCLE for OT_GB
...
No functional change.
2014-05-27 17:49:45 -04:00
Behdad Esfahbod
cf71d28c38
[indic/myanmar] Refactor a few macros
2014-05-27 17:47:43 -04:00
Behdad Esfahbod
2307268e01
[indic] Treat U+0A72..0A73 like regular consonants
...
Unicode 6.x IndicSyllableCategory categorizes them as
placeholders, but they can subjoin.
2014-05-27 17:39:01 -04:00
Behdad Esfahbod
e9b2a4cfe5
[indic] Support U+1CED
2014-05-23 15:49:10 -04:00
Behdad Esfahbod
d19f8e8570
[indic] Support U+A8F2..A8F7,1CE9..1CEC,1CEE..1CF1
2014-05-23 15:47:36 -04:00
Behdad Esfahbod
ddbdfcbf1c
[indic] Simplify grammar
...
No functional change.
2014-05-23 15:39:55 -04:00
Behdad Esfahbod
4e9b1f662b
[indic] Always start new syllable for Avagraha
...
In fact, the previous grammar was ambigious. No functional
change.
2014-05-23 15:38:42 -04:00
Behdad Esfahbod
9f9bd9bf31
[indic] Rename avagraha cluster to symbol cluster
...
In anticipation of adding more characters to that class of clusters.
2014-05-23 15:35:38 -04:00
Behdad Esfahbod
a498565ced
[indic] Support U+1CF2,U+1CF3
2014-05-22 19:39:56 -04:00
Behdad Esfahbod
ecb98babba
[indic] Support U+1CE2..U+1CE8
2014-05-22 19:36:21 -04:00
Behdad Esfahbod
37bf2c9224
Minor
2014-05-22 19:35:17 -04:00
Behdad Esfahbod
131e17ff9a
[indic] Support U+1CF5,1CF6
2014-05-22 19:33:10 -04:00
Behdad Esfahbod
72ead0cc72
[indic] Treat U+1CE1 as a tone-mark too
...
It's spacing, but otherwise the same as the other ones.
2014-05-22 19:12:10 -04:00
Behdad Esfahbod
e848bfae7c
[indic] Recategorize U+A8E0..A8F1 as OT_VD
...
Up to two of them come after all OT_A characters.
2014-05-22 18:50:34 -04:00
Behdad Esfahbod
c519536c34
[indic] Allow up to three tone marks
...
According to Roozbeh, there are valid combinations in Unicode
proposals for up to three. Previously we were allowing up to two.
2014-05-22 18:43:14 -04:00
Behdad Esfahbod
c11fc68339
[indic] Support more extended Devanagari tone marks
...
Also adjust U+0953,0954 handling.
2014-05-22 18:41:49 -04:00
Behdad Esfahbod
26c836e53d
[indic] Handle "Cantillation marks for the Samaveda"
2014-05-21 18:35:48 -04:00
Behdad Esfahbod
29531128f2
[indic] Improve reph formation of Sinhala and Telugu
...
Sinhala and Telugu use "explicit" reph. That is, the reph is formed by
a Ra,H,ZWJ sequence. Previously, upon detecting this sequence, we were
checking checking whether the 'rphf' feature applies to the first two
glyphs of the sequence. This is how the Microsoft fonts are designed.
However, testing with Noto shows that apparently Uniscribe also forms
the reph if the lookup ligates all three glyphs. So, try both
sequences.
Doesn't affect test results for Sinhala or Telugu.
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=232
2014-05-15 14:04:02 -06:00
Oleg Oshmyan
8c703f13bf
Fix build with --coretext on older OS X
...
Fixes https://github.com/behdad/harfbuzz/pull/40
2014-05-14 17:42:20 -06:00
Behdad Esfahbod
439b05867c
[myanmar] Allow MedialYa+Asat in the grammar
...
The grammar in the OT spec, and the existing Windows implementation
seem to be confused around where to allow Asat around the medial
consonants.
The previous grammar for medial group was allowing an Asat after
the medial group only if there was a medial Wa or Ha, but not if
there was only a medial Ya. This doesn't make sense to me and
sounds reversed, as both medial Wa and Ha are below marks while
Asat is an above mark. An Asat can come before the medial group
already (in fact, multiple ones can. Why?!). The medial Ya
however is a spacing mark and according to Roozbeh it's valid
to want an Asat on the medial Ya instead of the base, so it looks
to me like we want to allow an Asat after the medial group if
there *was* a Ya but not if there wasn't any. Not wanting to
produce dotted-circle where Windows is not, this commit changes
the grammar to allow one Asat after the medial group no matter
what comes in the group.
Test: U+1002,103A,103B vs U+1002,103B,103A
2014-05-14 16:44:39 -06:00
Behdad Esfahbod
c95587618c
[ot] Minor note re cmap subtable format 2 and 8
2014-05-14 00:42:18 -04:00
Behdad Esfahbod
b7878cd58e
[ot] Implement cmap subtable format 0
2014-05-13 21:47:51 -04:00
Behdad Esfahbod
ca7b77431d
[ot] Factor out code between cmap sutable format 12 and 13
2014-05-13 21:26:34 -04:00
Behdad Esfahbod
94759e8219
[ot] Factor out code between cmap subtable format 6 and 10
2014-05-13 21:19:49 -04:00
Behdad Esfahbod
1a8ffc5129
Minor
2014-05-13 21:06:39 -04:00
Behdad Esfahbod
91bbfca875
[ot] Implement cmap subtable formats 6 and 10
2014-05-12 18:19:29 -04:00
Behdad Esfahbod
d294a2cb16
[ot] Implement cmap subtable format 13
2014-05-12 17:58:31 -04:00
Behdad Esfahbod
0d75793fae
[ot] Implement cmap subtable format 12
2014-05-12 17:51:15 -04:00
Behdad Esfahbod
3608a6847e
[ot] Hook up cmap table to hb_ot_font_funcs()
2014-05-12 13:46:29 -04:00
Behdad Esfahbod
c8a4745299
[ot] Implement cmap subtable format 4
2014-05-09 19:55:51 -04:00
Behdad Esfahbod
4719621f20
Minor
2014-05-09 16:09:11 -04:00
Behdad Esfahbod
41ca1fbebf
[ot] Start implementing cmap table
2014-05-09 15:35:56 -04:00
Behdad Esfahbod
c7074b8798
[otlayout] Add GenericArrayOf::search()
2014-05-08 18:24:31 -04:00
Behdad Esfahbod
40a479797a
[otlayout] Add GenericSortedArrayOf
2014-05-08 18:21:04 -04:00
Behdad Esfahbod
0ddecabc6d
[main] Minor improvement to output
2014-05-01 16:01:40 -07:00
Behdad Esfahbod
6faff8e413
Add static storage classifier to inline functions
...
Before we were just relying on the compiler inlining them and not
leaving a trace in our public API. Try to fix. Hopefully not
breaking anyone's build.
2014-04-28 14:30:44 -07:00
Behdad Esfahbod
9c9411839b
[tibetan] Reorder PADMA sign to occur after other below marks
...
Based on suggestion from Andrew Glass.
Test: U+0F40,0FC6,0F83
2014-04-28 12:44:14 -07:00
Behdad Esfahbod
b082ef373c
Typo
2014-04-25 11:48:10 -07:00
Behdad Esfahbod
828e109c7a
[indic] Fix-up zero-context matching
...
commit b5a0f69e47
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Oct 17 18:04:23 2013 +0200
[indic] Pass zero-context=false to would_substitute for newer scripts
For scripts without an old/new spec distinction, use zero-context=false.
This changes behavior in Sinhala / Khmer, but doesn't seem to regress.
This will be useful and used in Javanese.
The *intention* was to change zero-context from true to false for scripts that
don't have old-vs-new specs. However, checking the code, looks like we
essentially change zero-context to always be true; ie. we only changed things
for old-spec, and we broke them. That's what causes this bug:
https://bugs.freedesktop.org/show_bug.cgi?id=76705
The root of the bug is here:
/* Use zero-context would_substitute() matching for new-spec of the main
* Indic scripts, but not for old-spec or scripts with one spec only. */
bool zero_context = indic_plan->config->has_old_spec || !indic_plan->is_old_spec;
Note that is_old_spec itself is:
indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FF) != '2');
It's easy to show that zero_context is now always true. What we really meant was:
bool zero_context = indic_plan->config->has_old_spec && !indic_plan->is_old_spec;
Ie, "&&" instead of "||". We made this change supposedly to make Javanese
work. But apparently we got it working regardless! So I'm going to fix this
to only change the logic for old-spec and not touch other cases.
2014-04-18 16:53:34 -07:00
Behdad Esfahbod
66c6a48b6c
Add HB_NO_MERGE_CLUSTERS
...
Disables any cluster-merging. Added for testing purposes while
we investigate what kind of API to add for this.
2014-04-14 15:55:42 -07:00
Behdad Esfahbod
5fd996c4a4
Further adjust check-defs and check-symbols for mipsel
...
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74491
2014-04-09 16:38:26 -07:00
Behdad Esfahbod
75ec6d0bc5
Tighten up check-static-inits.sh check
...
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74490
2014-04-09 16:33:32 -07:00
Behdad Esfahbod
110ec0714a
Typo
2014-04-08 17:32:08 -07:00
Behdad Esfahbod
0682ddd05c
[indic] Support U+17DD KHMER SIGN ATTHACAN
...
As requested by Martin Hosken on the list.
2014-04-08 16:03:35 -07:00
Primiano Tucci
05870ed62e
Use __aarch64__ for 64-bit ARM detection, not __arm64__
...
Many GCC versions don't define __arm64__
2014-04-02 12:41:11 -07:00
Behdad Esfahbod
04d894e897
Minor
2014-03-25 12:11:32 -07:00
Behdad Esfahbod
903648437c
Start fleshing out builtin font functions
2014-03-24 15:19:15 -07:00
Behdad Esfahbod
343a0e4e74
Add "make built-sources"
2014-03-21 14:37:27 -07:00
Konstantin Ritt
b96af03c20
Fix build with --coretext on iOS
...
On iOS CoreText and CoreGraphics are stand-alone frameworks
2014-03-21 10:29:34 -07:00
Behdad Esfahbod
09732cc669
Remove dead warning
2014-03-19 12:00:17 -07:00
Behdad Esfahbod
a949cd329e
Don't use "register" storage class specifier
...
Fixes warnings.
https://bugzilla.mozilla.org/show_bug.cgi?id=984081
2014-03-16 20:22:42 -07:00
jfkthame
0082dbeae6
wrap definition of free_langs() with HAVE_ATEXIT
...
...to avoid an unused function warning; see mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=984081 .
2014-03-16 13:40:33 -07:00
Behdad Esfahbod
a9e25e90a4
[coretext] Add hb_coretext_face_create()
...
Not tested.
2014-03-14 19:55:46 -07:00
Behdad Esfahbod
c79865f90f
[coretext] Add coretext_aat shaper
...
This is a higher-priority shaper than default shaper ("ot"), but
only picks up fonts that have AAT "morx"/"mort" table.
Note that for this to work the font face's get_table() implementation
should know how to return the full font blob.
Based on patch from Konstantin Ritt.
2014-03-14 19:38:58 -04:00
Behdad Esfahbod
af1aa362ca
If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks
...
Useful for Android / Chrome / etc when ICU is built in the same
library as harfbuzz itself.
2014-03-14 15:54:13 -07:00
Behdad Esfahbod
853daf857f
Remove old cruft
2014-03-14 15:49:18 -07:00
Behdad Esfahbod
bb8ffb581b
Use AM_MISSING_PROG for ragel and git
2014-03-04 13:03:51 -08:00
Behdad Esfahbod
a82165248c
Only do fallback Hebrew composition if no GPOS 'mark' available
...
Apparently some modern fonts have proper GPOS mark positioning
tables, but undesirable precomposed forms! See thread
"Hebrew composition to presentation forms" and:
http://tex.stackexchange.com/questions/156775/having-trouble-with-vowel-positioning-in-ezra-sil-xelatex
Test case: U+fb1d,05d9,05b4
2014-02-18 15:53:56 -05:00
Werner Lemberg
db068d81cd
typo in ucdn's Makefile.am
2014-02-10 13:05:48 -05:00
Behdad Esfahbod
fbb2847f54
Improve MemoryBarrier() implementation
...
See thread "[HarfBuzz] compilation error of 0.9.26 with MinGW"
started by Werner.
2014-02-05 08:22:06 -05:00
Jonathan Kew
7691a154e5
Ensure hb_script_t can safely hold any hb_tag_t value it's given.
...
Fixes https://github.com/behdad/harfbuzz/pull/21
2014-01-29 16:09:16 -05:00
Behdad Esfahbod
c29993a181
[coretext] Handle surrogate pairs when generating notdef glyphs
...
Fixes github.com/behdad/harfbuzz/pull/19
2014-01-28 17:29:42 -05:00
Behdad Esfahbod
748b2782e4
[coretext] Minor optimization
2014-01-28 17:10:05 -05:00
Konstantin Ritt
24e6b11f12
Fix double destruction in case of OOM
2014-01-28 11:21:18 -05:00
Konstantin Ritt
083225916a
Micro optimizations
2014-01-28 11:14:12 -05:00
Konstantin Ritt
c9522de233
Make it possible to disable the fallback shaper at configure time
...
The OT shaper supersedes the fallback shaper in every case
and the latter become an extra weight for 99.9% of users.
2014-01-28 11:13:53 -05:00
Behdad Esfahbod
6775da3a7c
Fix clang warning 'private field 'xxx' is not used
...
Fixes https://github.com/behdad/harfbuzz/pull/16
2014-01-23 14:18:49 -05:00
Behdad Esfahbod
62299826f4
Fix typo in _hb_buffer_serialize_glyphs_text()
...
Fixes https://github.com/behdad/harfbuzz/pull/17
2014-01-23 14:11:03 -05:00
Behdad Esfahbod
ae23c24c32
[arabic] Disable 'cswh' by default
...
I believe Windows 8 disables it, and spec update dated
Jan 2014 also clearly says it's disabled by default:
http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm#features
2014-01-22 11:03:02 -05:00
Behdad Esfahbod
08cf5d75ef
[ot] Don't try to compose if normalization is off
2014-01-22 07:53:55 -05:00
Behdad Esfahbod
0596343bfe
Merge pull request #13 from jfkthame/hangul-shaper
...
Tone-mark reordering and improved Old Hangul support
2014-01-22 04:43:51 -08:00
Jonathan Kew
62cb28dfc6
fixup for 64-bit windows build
2014-01-22 07:31:54 -05:00
Jonathan Kew
83d7e7915a
[hangul] Fix ordering of dotted circle with Hangul tone mark (reported by Dohyun Kim).
2014-01-20 19:49:47 +00:00
Jonathan Kew
deef186265
[hangul] Don't force zero-width for marks - this is not wanted for the Jamo Filler glyphs.
2014-01-20 10:38:27 +00:00
Jonathan Kew
391934db0a
[unicode] Exclude the Jamo Filler characters from Default_Ignorable, as some fonts want these to be visible/spacing glyphs.
2014-01-20 10:37:32 +00:00
Jonathan Kew
7244b3fc3b
[hangul] Reorder Hangul tone mark to beginning of syllable, unless font implements it using a zero-width glyph.
2014-01-20 10:35:51 +00:00
Jonathan Kew
103436838d
[hangul] Apply the appropriate *jmo features to decomposed syllables, including Old Hangul sequences that don't have Unicode compositions. Merge clusters in decomposed syllables.
2014-01-20 10:35:07 +00:00
Behdad Esfahbod
8fc1f7fe74
[ot/hangul] Don't decompose Hangul even when combining marks present
...
As discussed on
https://github.com/behdad/harfbuzz/pull/10#issuecomment-31442030
2014-01-02 17:04:04 +08:00
Behdad Esfahbod
64426ec73a
[ot] Simplify composing
...
Not tested. Ouch.
2014-01-02 14:33:10 +08:00
Behdad Esfahbod
8de20b1e8a
Add font->has_glyph()
2014-01-02 14:30:45 +08:00
Behdad Esfahbod
f6298e55ae
[fallback] Minor
2014-01-02 14:23:56 +08:00
Behdad Esfahbod
29ea403d67
[hangul] Fix decomposition logic
...
Seems to be working now.
2014-01-02 14:20:00 +08:00
Behdad Esfahbod
bdb20dafc3
[hangul] Fix decomposition
...
Part of https://github.com/behdad/harfbuzz/pull/10
2014-01-02 14:04:30 +08:00
Behdad Esfahbod
32478656ce
[hangul] Tighten up character categories
...
I had tried to expand to fill the blocks, but that sounds wrong in
retrospect.
2014-01-02 14:01:56 +08:00
Behdad Esfahbod
f14bb7de63
[ot] Separate out hebrew and tibetan shapers from default
...
Now default shaper is truly no-op.
2013-12-31 16:49:15 +08:00
Behdad Esfahbod
6300cd7253
[ot] Define HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
2013-12-31 16:38:47 +08:00
Behdad Esfahbod
3d6ca0d32e
[ot] Simplify normalization_preference again
...
No shaper has more than one behavior re this, so no need for a callback.
2013-12-31 16:35:37 +08:00
Behdad Esfahbod
c98b7183f7
[ot] Add Hangul shaper
...
Not exhaustively tested, but I think I got the intended logic
right.
The logic can perhaps be simplified. Maybe we should disabled
normalization with this shaper. Then again, for now focusing on
correctness.
2013-12-31 16:23:48 +08:00
Behdad Esfahbod
15f67048e4
Reorder Tai Tham SAKOT to ensure it comes after any tone marks
2013-12-27 19:33:28 -05:00
Behdad Esfahbod
3216e44feb
[uniscribe] Fix scratch-buffer accounting
2013-12-23 14:39:23 -05:00
Behdad Esfahbod
beeb12c9af
Add TODO item
2013-12-22 22:53:27 -05:00
Luis de Bethencourt
fbd4acc58a
Clean ht-ob headers
2013-12-22 22:52:57 -05:00
Behdad Esfahbod
5497a8a274
Cache various masks on the shape plan
2013-12-22 20:48:53 -05:00
Behdad Esfahbod
02f909664f
Minor correction to kern mask checking
2013-12-22 19:35:27 -05:00
Behdad Esfahbod
a7e8bbb080
Minor fraction mask setting improvement
2013-12-22 19:33:35 -05:00
Behdad Esfahbod
76fff252a9
Don't form fractions if only one of numr/dnom exist
2013-12-22 17:55:59 -05:00
Behdad Esfahbod
3aeee519f0
Bug 72698 - Automatically support frac / numr / dnom
...
When seeing U+2044 FRACTION SLASH in the text, find decimal
digits (Unicode General Category Decimal_Number) around it,
and mark the pre-slash digits with 'numr' feature, the post-slash
digits with 'dnom' feature, and the whole sequence with 'frac'
feature.
This beautifully renders fractions with major Windows fonts,
and any other font that implements those features (numr/dnom is
enough for most fonts.)
Not the fastest way to do this, but good enough for a start.
2013-12-22 16:17:54 -05:00
Behdad Esfahbod
014f369ec9
Add XXX note
2013-12-22 16:15:30 -05:00
Behdad Esfahbod
739325178a
Initialize masks before mirroring
...
We were throwing away the rtlm feature mask set during
mirroring...
2013-12-21 00:18:18 -05:00
Behdad Esfahbod
2a8c49ade0
Remove unnecessary includes
2013-12-11 20:24:20 -05:00
Behdad Esfahbod
205bf834d8
Revert "Karen" language mapping back to what it was before
...
https://bugzilla.mozilla.org/show_bug.cgi?id=941470
2013-12-02 20:41:41 -05:00
Behdad Esfahbod
f47b921954
Fix unsafe shape_plan->face dependency
2013-12-02 05:57:27 -05:00
Jonathan Kew
ca8d96c8ba
cache shape plans even if (global) user features are set
2013-12-02 05:22:00 -05:00
Behdad Esfahbod
8ffa528f28
Add note about unsafe shape_plan->face
...
Will fix by removing shape_plan->face completely.
2013-12-02 05:17:14 -05:00
Behdad Esfahbod
aec468f01e
[coretext] Add TODO
2013-11-29 19:21:58 -05:00
Behdad Esfahbod
58cc233e8b
[coretext] Cleanup
2013-11-29 19:17:42 -05:00
Khaled Hosny
c8213c6198
[coretext] Avoid font fallback with CoreText shaper
...
CoreText does automatic font fallback (AKA "cascading") for characters
not supported by the requested font, and provides no way to turn it off,
so detect if the returned run uses a font other than the requested one
and fill in the buffer with .notdef glyphs instead of random indices
glyph from a different font.
2013-11-29 19:01:56 -05:00
Behdad Esfahbod
63bae73aef
[fallback] Add TODO note
2013-11-26 22:57:24 -05:00
Behdad Esfahbod
e1ebf01d0c
Minor
2013-11-26 18:00:35 -05:00
Behdad Esfahbod
a182dbc9e4
Minor
2013-11-26 17:53:41 -05:00
Behdad Esfahbod
9174a9db5c
[myanmar] Allow punctuation clusters
...
The spec and Uniscribe don't allow these, but UTN#11
specifically says the sequence U+104B,U+1038 is valid.
As such, allow all "P V" sequences. There's about
eight sequences that match that structure, but Roozbeh
thinks it's fine to allow all of them.
Test case: U+104B, U+1038
https://bugs.freedesktop.org/show_bug.cgi?id=71947
2013-11-25 18:10:38 -05:00
Behdad Esfahbod
096b71e8ef
[myanmar] Mark U+104E MYANMAR SYMBOL AFOREMENTIONED as Consonant
...
The spec and Uniscribe treat it as consonant in the grammar, but
it's not in IndicSyllableCategory.txt, so fix up.
Test sequence: U+1004,U+103A,U+1039,U+104E
https://bugs.freedesktop.org/show_bug.cgi?id=71948
2013-11-25 18:03:34 -05:00
Behdad Esfahbod
d2da5e0b4b
[myanmar] Relax pwo-tone group a bit
...
This is broken sequence according to OpenType spec, Uniscribe,
and current HarfBuzz implementation. But Roozbeh says this
is a valid sequence, so allow it. There are multiple
"(DB As?)?" constructs in the grammar, but Roozbeh thinks only
this one needs changing.
Test case: 1014,1063,103A
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=71949
2013-11-25 17:50:07 -05:00
Roozbeh Pournader
08c2d27d35
Added support for several new languages
...
Based on research into latest SIL and Windows fonts, pulling in
the latest OpenType language tag proposal from Microsoft, and updating
to latest language tags and names from ISO 639.
2013-11-25 06:36:20 -05:00
Roozbeh Pournader
05511acd19
Added language tags for S'gaw Karen and Khamti
...
Tags based on support in Windows 8.1's 'Myanmar Text' font.
2013-11-25 06:36:13 -05:00
Behdad Esfahbod
0bb31e4497
Bug 71845 - Use 64-bit cmpexch on ARM64 iOS
2013-11-20 14:21:07 -05:00
Behdad Esfahbod
02c6c8cd6e
Set buffer content type to INVALID in hb_buffer_set_length(0)
...
Previously we were only setting this in hb_buffer_clear_contents(),
but set_length(0) is a valid way to reinitialize buffer to use with
new text.
2013-11-15 13:07:03 -05:00
Behdad Esfahbod
061cb46493
Use long alignment for scratch buffer
...
Fixes last of scratch alignment warnings in hb-coretext.
2013-11-13 14:50:25 -05:00