Behdad Esfahbod
8450f43ae1
[buffer] HB_NODISCARD next_glyph()
2021-03-15 16:01:35 -06:00
Behdad Esfahbod
34a1204f10
[buffer] HB_NODISCARD output_glyph()
...
Also, generalize and use replace_glyphs() in morx where output_glyph() was used
in a loop.
2021-03-15 16:01:35 -06:00
Behdad Esfahbod
3f1998a065
[buffer] HB_NODISCARD replace_glyph()
2021-03-15 13:33:44 -06:00
Behdad Esfahbod
7aad53657e
[config] Add HB_NO_OT_SHAPE / HB_NO_OT
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 13:21:03 -07:00
Behdad Esfahbod
227d85e138
Minor
2019-05-10 23:16:14 -07:00
Behdad Esfahbod
fe0018f7ef
Add HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 09:35:29 -04:00
Behdad Esfahbod
17335a8161
Clean up buffer->swap_buffers() calls
...
That function checks for buffer->successful already. No need
to check at call site.
2018-11-04 02:25:07 -05:00
Behdad Esfahbod
4eea2e279b
[thai] Set continuation on decomposed nikhahit
2018-10-03 20:19:42 +02:00
Behdad Esfahbod
1b8d5e9991
[thai] Minor
2018-10-03 15:31:33 +02:00
Behdad Esfahbod
48c513fec9
Minor
2018-10-02 14:19:34 +02:00
Behdad Esfahbod
c77ae40852
Rename hb-*private.hh to hb-*.hh
...
Sorry for the noise, downstream custom builders. Please adjust.
2018-08-25 22:36:36 -07:00
Behdad Esfahbod
7185b273b3
Rename in_error to !successful
...
Towards possibly using Null pool for some nil objects.
2018-05-31 20:03:34 -07:00
Ebrahim Byagowi
f24b0b9728
Update the links and revive the dead ones
2018-04-12 13:44:32 +04:30
Behdad Esfahbod
7036f1d22c
[ot] Remove shaper name
...
In ten years we never used them...
2017-10-27 14:42:59 -06:00
Behdad Esfahbod
dbdbfe3d7b
Use nullptr instead of NULL
2017-10-15 12:11:08 +02:00
Behdad Esfahbod
ab8d70ec70
[arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53
...
Fixes https://github.com/behdad/harfbuzz/issues/509
2017-10-04 14:47:10 +02:00
Behdad Esfahbod
e43aad5552
[unsafe-to-break] Flag in Thai PUA shaping
2017-08-10 20:54:15 -07:00
Ebrahim Byagowi
3b0e47ca00
Fix arm-none-eabi build ( fixes #451 ) ( #496 )
2017-06-19 14:47:09 +04:30
Behdad Esfahbod
e2b878055b
Disable OTL processing for Hebrew if GPOS doesn't have Hebrew subtable
...
New approach to fix this:
69f9fbc420
Previous approach was reverted as it was too broad. See context:
https://github.com/behdad/harfbuzz/issues/347#issuecomment-267838368
With U+05E9,U+05B8,U+05C1,U+05DC and Arial Unicode, we now (correctly) disable
GDEF and GPOS, so we get results very close to Uniscribe, but slightly different
since our fallback position logic is not exactly the same:
Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434]
After: [gid1166=3+991|gid1142=0@402,-26+0|gid5798=0+1434]
Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]
2016-12-22 14:43:23 -06:00
Behdad Esfahbod
d14fea4bdc
Remove default clause in minor switch statements
...
Bending to clang warnings...
https://bugs.chromium.org/p/chromium/issues/detail?id=593057
2016-03-08 12:16:41 -08:00
Behdad Esfahbod
b3582a8ee8
Change default mark advance zeroing behavior from Unicode to GDEF
...
See thread at:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html
2016-02-10 18:10:15 +07:00
Behdad Esfahbod
fc06cff40f
Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
...
The DEFAULT naming wasn't helpful, so just remove it.
2015-12-17 17:47:35 +00:00
Behdad Esfahbod
abadc1717d
Try to better handle OOM situations
...
Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161
with libharfbuzz-fuzzing.
2015-11-18 17:52:08 -08:00
Behdad Esfahbod
136863371c
Add new shaper method postprocess_glyphs()
...
Unused currently. To be used for Syriac stretch implementation.
https://github.com/behdad/harfbuzz/issues/141
2015-11-05 13:24:15 -08:00
Behdad Esfahbod
8259669fbd
Minor
2015-11-02 17:44:05 -08:00
Behdad Esfahbod
305d2fbf5a
Add HB_FALLTHROUGH
...
Borrowed from https://bugzilla.mozilla.org/show_bug.cgi?id=1215411
2015-10-21 11:04:28 -02:00
Behdad Esfahbod
bdc8215949
[thai] Respect cluster-level > 0
2015-09-01 16:24:54 +01: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
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
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
71b4c999a5
Revert "Zero marks by GDEF for Tibetan"
...
This reverts commit d5bd0590ae
.
The reasoning behind that logic was flawed and made under
a misunderstanding of the original problem, and caused
regressions as reported by Jonathan Kew in thread titled
"tibetan marks" in Oct 2013. Apparently I have had fixed
the original problem with this commit:
7e08f1258d
So, revert the faulty commit and everything seems to be in good
shape.
2013-10-28 00:43:27 +01:00
Behdad Esfahbod
d5bd0590ae
Zero marks by GDEF for Tibetan
...
See:
http://lists.freedesktop.org/archives/harfbuzz/2013-April/003101.html
2013-10-18 18:17:29 +02:00
Behdad Esfahbod
127daf15e0
Arabic mark width-zeroing regression
...
Mozilla Bug 873902 - Display Arabic text with diacritics is bad
https://bugzilla.mozilla.org/show_bug.cgi?id=873902
2013-05-20 09:11:35 -04:00
Behdad Esfahbod
568000274c
Adjust mark advance-width zeroing logic for Myanmar
...
Before, we were zeroing advance width of attached marks for
non-Indic scripts, and not doing it for Indic.
We have now three different behaviors, which seem to better
reflect what Uniscribe is doing:
- For Indic, no explicit zeroing happens whatsoever, which
is the same as before,
- For Myanmar, zero advance width of glyphs marked as marks
*in GDEF*, and do that *before* applying GPOS. This seems
to be what the new Win8 Myanmar shaper does,
- For everything else, zero advance width of glyphs that are
from General_Category=Mn Unicode characters, and do so
before applying GPOS. This seems to be what Uniscribe does
for Latin at least.
With these changes, positioning of all tests matches for Myanmar,
except for the glitch in Uniscribe not applying 'mark'. See preivous
commit.
2013-02-12 09:44:57 -05:00
Behdad Esfahbod
0beb66e3a6
Fix warnings
2012-12-05 19:14:28 -05:00
Behdad Esfahbod
d1aa143ca4
[Thai] Remove U+0E2C from "AC" consonants
...
WinXP doesn't include it.
2012-11-15 15:38:08 -08:00
Behdad Esfahbod
1eb3e94fe9
[Thai] Implement PUA-based fallback shaping
...
As explained here:
http://linux.thai.net/~thep/th-otf/shaping.html
Our output now matches Uniscribe for old fonts (eg. XP Tahoma) with no
Thai GSUB table.
2012-11-14 17:53:09 -08:00
Behdad Esfahbod
851784f837
Improve shaper selection
2012-11-14 17:53:09 -08:00
Behdad Esfahbod
43f04a7456
Move Thai shaper into a separate file
2012-11-14 15:51:54 -08:00