Behdad Esfahbod
3c7b3641cf
[indic] Handle Avagraha
...
It can come either at the end(ish!) of the syllable, or independently.
When independent, it accepts a few bits and pieces.
2013-10-15 13:14:31 +02:00
Behdad Esfahbod
5e7432b817
[myanmar] Apply abvm/blwm
2013-10-15 12:33:18 +02:00
Behdad Esfahbod
8acbb6be27
[indic] Some scripts like blwf applied to pre-base characters
...
...while some don't!
Improved Bengali, Devanagari, Gurmukhi, Malayalam.
Updated numbers:
BENGALI: 353732 out of 354188 tests passed. 456 failed (0.128745%)
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: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
MALAYALAM: 1048134 out of 1048334 tests passed. 200 failed (0.0190779%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
2013-10-15 12:29:07 +02:00
Behdad Esfahbod
6b65a76b40
[otlayout] Fix (Chain)Context recursion!
...
Previously we only supported recursive sublookups with
ascending indices. We were also not correctly handling
non-1-to-1 recursed lookups.
Fix all that!
Fixes the three tests in test/shaping/tests/context-matching.tests,
which were derived from NotoSansBengali and NotoSansDevanagari
among others.
2013-10-14 18:54:51 +02:00
Behdad Esfahbod
4e6e53db5d
[otlayout] "Minor"
2013-10-14 13:06:36 +02:00
Behdad Esfahbod
9326d48e43
Don't use g_mapped_file_unref()
...
Was introduced in glib 2.22.
2013-10-10 20:04:42 +02:00
Behdad Esfahbod
27674b4bb3
[OTLayout] Protect against out-of-range lookup indices
...
Filter them out when compiling map.
2013-10-03 14:54:50 -04:00
Behdad Esfahbod
3d2c4f0c2f
Fix hiding of default_ignorables if font doesn't have space glyph
...
Based on patch from Jonathan Kew. See discussion on the list.
2013-09-27 17:06:29 -04:00
Behdad Esfahbod
48360ec03b
Bug 68990 - test-common fails on i686-linux
...
Fix use-after-end-of-scope.
2013-09-26 16:48:42 -04:00
Behdad Esfahbod
2af8262963
Improve library checks
2013-09-16 22:03:59 -04:00
Behdad Esfahbod
882edce48e
[graphite2] Fix include
2013-09-13 20:36:43 -04:00
Behdad Esfahbod
ace5c7eb4c
[introspection] hb-ft annotations
2013-09-13 20:35:19 -04:00
Behdad Esfahbod
a8949df487
[introspection] Annotate Unicode / font callbacks
...
Should move these out of the public header...
We're "clean" of introspection warnings now. Remaining ones are about
graphite2 / freetype types not being introspectable.
2013-09-13 20:31:07 -04:00
Behdad Esfahbod
4b011094d5
Move code around
...
I believe I didn't break anything...
2013-09-13 20:17:42 -04:00
Behdad Esfahbod
e478ebe4d3
[introspection] Add sample.py
2013-09-12 20:53:07 -04:00
Behdad Esfahbod
dfdbe7f932
[introspection] Make hb_blob_create() introspectable
2013-09-12 20:52:20 -04:00
Behdad Esfahbod
085d4291a9
[introspection] Disable constructors for now
...
Since our types are not associated with their methods, marking
constructors makes them inaccessible from bindings. Undo for now.
2013-09-12 17:14:33 -04:00
Behdad Esfahbod
6c48f20eea
[otlayout] Add structs for JSTF table
2013-09-09 15:43:10 -04:00
Behdad Esfahbod
70303cf23b
[docs/introspection] Some more annotations
2013-09-06 17:38:25 -04:00
Behdad Esfahbod
288f289997
[docs/introspection] More annotations
2013-09-06 17:30:54 -04:00
Behdad Esfahbod
17905c54f1
[introspection] Work around g-i limitation with hb_language_t
2013-09-06 17:16:25 -04:00
Behdad Esfahbod
cd361c3cbe
Minor change to hb_language_t
...
Let me know if this breaks anyone's anything.
2013-09-06 17:16:25 -04:00
Behdad Esfahbod
20cbc1f8eb
Annotate hb-set a bit; add HB_SET_VALUE_INVALID
2013-09-06 15:31:22 -04:00
Behdad Esfahbod
c44b81833d
Whitespace
2013-09-06 15:13:16 -04:00
Behdad Esfahbod
5f512017ba
[docs] Document a few symbols
2013-09-05 16:40:32 -04:00
Behdad Esfahbod
e0dbf99b44
[introspection] Pass source files to scanner
2013-09-05 16:18:45 -04:00
Behdad Esfahbod
5a5350b39b
Revert "Round when scaling values"
...
This reverts commit 10f964623f
.
See discussion with Khaled Hosny on mailing list. In short, since
integers here can be negative, and int division is "round towards
zero", proper rounding should take sign into account. Just skip
doing it again, has been serving us well before.
2013-09-03 20:11:01 -04:00
Behdad Esfahbod
213001aa99
[build] Fix EXTRA_DIST
...
I was under the impression that EXTRA_DISTs will happen regardless of
automake conditionals. Apparently I was wrong.
2013-09-03 20:00:16 -04:00
Behdad Esfahbod
ac1b723917
Remove hb-old and hb-icu-le test shapers
...
They've been disabled for a while and no one cared. We're past
the point to need them for testing, and if we ever need to
resurrect them again, well, they're in git graveyard somewhere.
2013-08-30 19:32:10 -04:00
Behdad Esfahbod
b94243d6a9
[g-i] Rename library from harfbuzz to HarfBuzz
2013-08-30 18:41:33 -04:00
Behdad Esfahbod
71ef22b04d
Turn hb-gobject, and introspection off by default
...
Also enable bootstrapping without them.
2013-08-28 12:52:55 -04:00
Behdad Esfahbod
d8f507099b
Hookup harfbuzz-gobject to introspection
2013-08-28 12:38:37 -04:00
Behdad Esfahbod
71439a8c7a
[gobject] Flesh out hb-gobject
...
Move it to new harfbuzz-gobject library. Implement enums and
boxed types for object-types. Still have to do boxed types for
value types.
2013-08-28 12:38:37 -04:00
Behdad Esfahbod
23027f7611
[introspection] Enable gobject-introspection again
2013-08-28 12:38:37 -04:00
Behdad Esfahbod
757a7a9018
[uniscribe] Fixed build with wide chars
...
f65dafa413
2013-08-28 12:38:37 -04:00
Behdad Esfahbod
4dc798de19
Add hb-deprecated.h, and rename a couple enum values
...
Add deprecated alias for old name.
2013-08-27 11:46:08 -04:00
Behdad Esfahbod
2e3a07abdf
Separate face source code from font
...
Makes documentation / introspection easier.
2013-08-27 11:46:08 -04:00
Behdad Esfahbod
d3490761e1
Improve check-includes.sh
2013-08-27 11:46:07 -04:00
Behdad Esfahbod
38b8b40526
Fix possible snprintf OOM
...
https://bugzilla.redhat.com/show_bug.cgi?id=1001645
2013-08-27 11:46:07 -04:00
Behdad Esfahbod
d22548c0e3
[check-*] Minor
2013-08-26 18:46:21 -04:00
Behdad Esfahbod
700a15fe4b
Add HB_DISABLE_DEPRECATED
...
That moment that you have to accept that you made API mistakes...
2013-08-26 17:49:36 -04:00
Anthony Carrico
f7c72b42ef
[gtk-doc] Initial setup
...
Initial setup of gtk-doc. Straight forward setup following the gtk-doc
instructions. Ignore some troublesome types in src/hb-gobject.h. To
build use "./autogen.sh --enable-gtk-doc" then "make". Docs are in
harfbuzz/docs/reference/html/index.html.
2013-08-26 17:32:30 -04:00
Behdad Esfahbod
3409fb1c76
[uniscribe] Ask Uniscribe to return shaping results in logical order
...
See discussion on the list in the thread "Arabic presentation forms
and the uniscribe backend".
Based on patch from Jonathan Kew.
2013-08-21 17:22:21 -04:00
Behdad Esfahbod
1d05fdd09f
[uniscribe] Print run info
2013-08-20 13:22:50 -04:00
Behdad Esfahbod
3613696b57
[coretext] Fully support user features
...
Based on patch from Jonathan Kew and data from Apple.
It's not working correctly though, and I suspect I'm hitting a bug in
CoreText. When I do this:
hb-shape /Library/Fonts/Zapfino.ttf ZapfinoZapfino --shaper coretext \
--features=-liga
I expect both ligatures to turn off, but only the second one does:
[Z_a_p_f_i_n_o=0+2333|Z=7+395|a=8+285|p_f=9+433|i=11+181|n=12+261|o=13+250]
whereas if I disable 'dlig' instead of 'liga', both are turned off.
Smells...
Doesn't resolve conflicting feature settings.
2013-08-12 12:01:05 -04:00
Behdad Esfahbod
54e6f6c588
Clean up list of Unicode scripts
...
Rename HB_SCRIPT_CANADIAN_ABORIGINAL to HB_SCRIPT_CANADIAN_SYLLABICS
and a macro for the old name.
2013-08-09 14:36:18 -04:00
Behdad Esfahbod
515a0ac81e
Fix compiler warning
2013-08-09 09:40:59 -04:00
Behdad Esfahbod
10f964623f
Round when scaling values
...
Doesn't matter for most users since they should be working in a
fixed sub-pixel scale anyway (ie. 22.10, 26.6, 16.16, etc).
2013-08-09 09:40:01 -04:00
Behdad Esfahbod
df8f70ae5d
Minor
2013-08-09 09:35:10 -04:00
Behdad Esfahbod
ce8badf180
Minor
2013-08-09 09:31:06 -04:00
Behdad Esfahbod
d71c0df2d1
Remove vrt2, vkrn, vpal, and valt from default vertical features
...
See thread by John Dagget on the list.
2013-08-09 09:29:29 -04:00
Behdad Esfahbod
a782a5e9a3
[coretext] Start adding support for features
...
Unlike AAT, looks like with CoreText very few OT features can be mapped.
:(
2013-08-07 22:08:29 -04:00
Behdad Esfahbod
bdd8873fd8
Revert "[Indic] don't apply 'calt' by default in Indic shaper"
...
This reverts commit 952121007c
.
In light of discussion on the mailing list...
2013-08-07 17:58:25 -04:00
Behdad Esfahbod
9a175914d7
[uniscribe] Support feature ranges
...
As Khaled pointed out, right now setting any features, turns kern
and possibly other features off.
2013-08-07 17:29:32 -04:00
Behdad Esfahbod
38d5c58d23
[uniscribe] Half-support user features
...
Turning features on globally works now.
2013-08-06 14:45:36 -04:00
Behdad Esfahbod
639afdc690
Minor
2013-08-06 14:28:12 -04:00
Jonathan Kew
952121007c
[Indic] don't apply 'calt' by default in Indic shaper
2013-08-06 10:36:14 -04:00
Behdad Esfahbod
625678436c
Fix glyph closure with class==0
...
As reported by cibu. Untested.
2013-08-05 22:44:18 -04:00
Behdad Esfahbod
580d5eb93a
Don't apply 'dlig' by default
...
Windows 8 doesn't, and the spec will be fixed.
2013-08-04 16:55:21 -04:00
Behdad Esfahbod
48382e2f41
Minor
2013-07-30 18:25:39 -04:00
Behdad Esfahbod
c461371419
[CoreText] Don't leak the CTLine object (and everything that hangs off it)
...
Patch from Jonathan Kew.
2013-07-30 14:48:23 -04:00
Behdad Esfahbod
6fadd9dd7c
Apply 'mark' to Myanmar
...
According to Andrew Glass: "The issue with Myanmar <mark> feature was
fixed via a servicing patch as soon as Windows 8 became available."
2013-07-26 10:33:06 -04:00
Behdad Esfahbod
86522e493d
Fix glyph closure recursion!
2013-07-22 19:07:53 -04:00
Behdad Esfahbod
74439d0aa1
Minor
2013-07-22 19:02:29 -04:00
Behdad Esfahbod
8b427c78ef
[uniscribe] Sanitize font file
2013-07-22 10:57:05 -04:00
Behdad Esfahbod
12ff69df21
[uniscribe] Handle TTC when renaming font
2013-07-22 10:52:12 -04:00
Behdad Esfahbod
05bad3b8c2
[uniscribe] Use OT::* types
2013-07-21 17:19:09 -04:00
Behdad Esfahbod
bdeea605fe
[uniscribe] Move name generation into separate function
2013-07-21 17:19:09 -04:00
Behdad Esfahbod
73f947e2a7
[uniscribe] Use blob to pass data around
2013-07-21 17:19:09 -04:00
Behdad Esfahbod
8ac2e88def
[uniscribe] Use unique font name
...
When installing per-process fonts using AddFontMemResourceEx(),
if a font with the same family name is already installed, sometimes
that one gets used. Which is problematic for us. As such, we
now mangle the font to install a new 'name' table with a unique
name, which we then use to choose the font.
Patch from Jonathan Kew.
2013-07-21 17:17:44 -04:00
Behdad Esfahbod
8751de5083
Followup fix for 3f9e2dced2
...
During GSUB, if a ligation happens, subsequence context input matching
matches the new indexing. During GPOS however, the indices never
change. So just go one by one.
Fixes 'dist' positioning with mmrtext.ttf and the following sequence:
U+1014,U+1039,U+1011,U+1014,U+1039,U+1011,U+1014,U+1039,U+1011
Reported by Jonathan Kew.
2013-07-18 16:29:50 -04:00
Behdad Esfahbod
e509d35cf1
[ft] hb_ft_get_glyph_from_name fails for the name of glyph id 0
...
Based on patch from Jonathan Kew, as reported on the mailing list.
2013-07-11 14:56:45 -04:00
Behdad Esfahbod
29b596ac67
[uniscribe] Fix buffer allocation
...
Email from Jonathan Kew:
My cygwin build kept aborting on certain test words when run with the
uniscribe backend. Turned out this was caused by a bug in the allocation
of scratch buffers in hb-uniscribe.cc.
Commit 2a17f9568d
introduced a new line
ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size);
but it failed to account for this in the computation of glyphs_size
(the number of glyphs for which scratch buffer space is available),
with the result that the vis_clusters array ends up overrunning the
end of the scratch buffer and clobbering the beginning of the buffer's
info[].
AFAICS, the vis_attr array is not actually used, so the simple fix is
to remove the line that allocates it. (If/when we -do- need to use
vis_attr for something, we'll need to add another term to the earlier
calculation of glyphs_size.)
With this patch, the uniscribe backend runs reliably again.
JK
2013-07-08 08:37:15 -06:00
Behdad Esfahbod
9245e98742
[Indic] Add Javanese config
...
We should add for other scripts too, send me the virama codepoint
and script name...
2013-06-26 20:57:58 -04:00
Behdad Esfahbod
5f85c80a07
[OT] Collect requiredFeature only if features are not provided
...
As per Werner's report on the list.
2013-06-26 20:14:18 -04:00
Behdad Esfahbod
3f9e2dced2
Fix contextual lookup recursion indexing
...
See email thread "Skipping Control for Attaching Marks using OpenType"
from earlier this month.
2013-06-26 19:46:55 -04:00
Bradley Grainger
89312b7417
Destroy lookups before blobs.
...
'layout->gsub' may depend on data owned by 'layout->gsub_blob', so it must
be deinitialized before the blob is destroyed.
2013-06-21 15:02:18 -07:00
Behdad Esfahbod
79d1007a50
If variation selector is not consumed by cmap, pass it on to GSUB
...
This changes the semantics of get_glyph() callback and expect that
callbacks return false if the requested variant is not available, and
then we will call them back with variation_selector=0 and will retain
the glyph for the selector in the glyph stream.
Apparently most Mongolian fonts implement the Mongolian Variation
Selectors using GSUB, not cmap.
https://bugs.freedesktop.org/show_bug.cgi?id=65258
Note that this doesn't fix the Mongolian shaping yet, because the way
that's implemented is that the, say, 'init' feature ligates the letter
and the variation-selector. However, since currently the variation
selector doesn't have the 'init' mask on, it will not be matched...
2013-06-13 19:01:07 -04:00
Behdad Esfahbod
c7a8491720
Skip over multiple variation selectors in a row
2013-06-10 15:08:49 -04:00
Behdad Esfahbod
7235f33f9e
Fix misc warnings reported by cppcheck
...
https://bugs.freedesktop.org/show_bug.cgi?id=65544
2013-06-10 15:08:49 -04:00
Behdad Esfahbod
2fd0e02706
Minor
2013-06-06 17:16:01 -04:00
Behdad Esfahbod
4ddf937242
Remove unnecessary stdint.h include
2013-06-03 18:36:26 -04:00
Chun-wei Fan
93a04b8b5e
hb-uniscribe.cc: Re-enable build under Visual Studio
...
-Declare hinstLib at the top of block
-Fix the definitions of the typedefs of ScriptItemizeOpenType,
ScriptShapeOpenType and ScriptPlaceOpenType
2013-06-03 18:32:59 -04:00
Behdad Esfahbod
d70be29831
Fix dist
2013-05-28 17:27:31 -04:00
Behdad Esfahbod
22ce096174
Generate harfbuzz-icu.pc
...
Currently it only works with ICU that has .pc files. I'll
wait till someone complains before fixing it for icu-config
systems.
2013-05-28 17:18:30 -04:00
Behdad Esfahbod
d9afa11133
Build hb-icu into libharfbuzz-icu.so
2013-05-28 15:27:40 -04:00
Behdad Esfahbod
2a17f9568d
Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
...
Fallback to older API if OpenType variants are not available.
2013-05-28 13:13:46 -04:00
Behdad Esfahbod
61e7775fa7
Remove hb-icu dependency from hb-icu-le shaper
2013-05-27 18:24:56 -04:00
Behdad Esfahbod
7e08f1258d
Don't zero advance of mark-non-mark ligatures
...
If there's a mark ligating forward with non-mark, they were
inheriting the GC of the mark and later get advance-zeroed.
Don't do that if there's any non-mark glyph in the ligature.
Sample test: U+1780,U+17D2,U+179F with Kh-Metal-Chrieng.ttf
Also:
Bug 58922 - Issue with mark advance zeroing in generic shaper
2013-05-27 14:50:00 -04:00
Behdad Esfahbod
cf059ac69d
[icu_le] Support non-BMP text
2013-05-24 15:28:11 -04:00
Behdad Esfahbod
a447c528e6
[icu_le] A bit better scaling
2013-05-23 17:05:39 -04:00
Behdad Esfahbod
fb502a2278
Merge commit '9d9e72e94e7914f82ce62a304e7242f79c13edaf'
2013-05-23 15:54:52 -04:00
Behdad Esfahbod
b9408d24f3
[icu_le] Fix scaling
...
Seems to work...
2013-05-23 15:43:02 -04:00
Behdad Esfahbod
601526392d
Copy stdint.h boilerplate to ucdn
2013-05-21 17:22:13 -04:00
Behdad Esfahbod
d785fa0c45
Minor refactoring
2013-05-20 09:18:52 -04: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
fa3d0a0ce6
Bug 64476 - Typo in hb_set_t.get_min()
...
Fixes previous commit's test.
2013-05-14 15:30:55 -04:00
Behdad Esfahbod
9d9e72e94e
[OTLayout] Use is_inplace() when flipping buffers
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
45f3d980c9
[OTLayout] Merge / templateize apply_string()
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
e015b8f218
[OTLayout] Minor
2013-05-04 16:04:04 -04:00