|
bcba8b45
|
2014-07-16T14:59:04
|
|
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.
|
|
625dbf14
|
2014-07-16T14:49:55
|
|
[buffer] Templatize UTF-* functions
|
|
e634fed4
|
2014-07-16T14:17:26
|
|
[buffer] Validate UTF-32 input
Same as what we do for UTF-8 and UTF-16.
|
|
b98c5db3
|
2014-07-16T13:44:01
|
|
Minor refactoring
|
|
3b861421
|
2014-07-16T13:22:05
|
|
Fix Mongolian Variation Selectors for fonts without GDEF
Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740.
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
|
|
878a2537
|
2014-07-16T13:21:26
|
|
Minor
|
|
ec181e50
|
2014-07-16T13:10:03
|
|
Minor moving around
|
|
e7ce50d9
|
2014-07-16T12:30:39
|
|
[indic] Fix access past end of array
|
|
73e23b0a
|
2014-07-15T18:43:49
|
|
Whitespace
|
|
c09a607a
|
2014-07-11T15:05:36
|
|
Use hb_in_range() for arabic and indic tables
Though, looks like gcc was smart enough to produce the same code
before...
|
|
7627100f
|
2014-07-11T14:54:42
|
|
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.
|
|
b7bc0b67
|
2014-07-11T16:20:28
|
|
Simplify / speed up UTF-8 code
|
|
af2490c0
|
2014-07-11T16:10:58
|
|
Only accept well-formed UTF-8 sequences
Enable tests that were disabled before, and adjust one test,
and add more tests.
|
|
7323d385
|
2014-07-11T15:10:05
|
|
Simplify hb_utf_prev<16> to call hb_utf_next<16>
|
|
a8b89a09
|
2014-07-11T14:18:01
|
|
Simplify hb_in_range()
It's both faster and produces smaller code. Now I feel stupid for
not writing it this way before.
|
|
db8934fa
|
2014-07-11T13:58:36
|
|
Simplify hb_utf_prev<8> to call hb_utf_next<8>
|
|
efe74214
|
2014-07-11T11:59:48
|
|
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
|
|
6f13b6d6
|
2014-07-10T19:31:40
|
|
When parsing UTF-16, generate invalid codepoint for lonely low surrogate
Test passes now.
|
|
6334495a
|
2014-07-10T19:22:07
|
|
Use zh-Hans / zh-Hant when converting OT language tag to hb_language_t
|
|
f381e320
|
2014-07-10T19:20:35
|
|
Fix lang matching logic
Previous code was broken logically, but harmless.
|
|
ee5350d6
|
2014-07-10T19:06:45
|
|
Accept BCP 47 zh-Hans / zh-Hant language tags
|
|
8b16ff12
|
2014-07-09T17:40:52
|
|
[uniscribe] Fix build after recent changes to Offset
|
|
73f7f891
|
2014-07-09T17:17:18
|
|
Define _POSIX_C_SOURCE only if it is not defined
Fixes https://github.com/behdad/harfbuzz/pull/45
|
|
0cd94491
|
2014-07-09T16:51:38
|
|
[ucdn] Update to Unicode 7.0.0 data
From http://github.com/behdad/ucdn
|
|
68f72448
|
2014-06-30T15:46:53
|
|
[indic] Remove some more now-unused special-cases
|
|
e79c9489
|
2014-06-30T15:39:39
|
|
[indic] Remove special-casing of U+1CF2,1CF3
These were introduced in a498565cedf0441ae723c5e5969f637d792a15e7,
but IndicSyllabicCategory has had the correct value already, so the
special code was never needed.
|
|
d743ce78
|
2014-06-30T15:24:02
|
|
[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.
|
|
5fa21b3a
|
2014-06-30T14:30:54
|
|
[indic-table] Fix category frequency counts in comments
|
|
5c4e3e9a
|
2014-06-30T14:25:18
|
|
Whitespace
|
|
af528b66
|
2014-06-27T18:07:00
|
|
Fix typo; ouch!
|
|
7d4ada66
|
2014-06-27T17:30:59
|
|
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...
|
|
23afcff1
|
2014-06-27T17:22:36
|
|
[ot-font] Implement Unicode variation selectors
|
|
a5a47369
|
2014-06-27T17:03:22
|
|
[cmap] Implement subtable format 14
|
|
586b6062
|
2014-06-27T15:39:47
|
|
Minor: final bits of cleanup
|
|
51d9ba09
|
2014-06-27T15:27:15
|
|
Minor
|
|
3084767e
|
2014-06-27T15:24:35
|
|
Minor: Remove LongArrayOf
|
|
41ea5949
|
2014-06-27T15:23:18
|
|
Minor: Remove LongSortedArrayOf
|
|
bb6ecf2c
|
2014-06-27T15:13:44
|
|
Minor: Remove LongOffsetArrayOf and LongOffsetLongArrayOf
|
|
99d28171
|
2014-06-27T15:12:52
|
|
Minor: Remove GenericOffset
|
|
9da552dc
|
2014-06-27T15:09:42
|
|
Minor: Remove some GenericXXX templates
|
|
36073ede
|
2014-06-27T14:48:54
|
|
Minor: Reorder template parameter order
|
|
0394ec1b
|
2014-06-27T14:40:35
|
|
Minor: Introduce GenericOffset
|
|
0d1b3419
|
2014-06-26T19:13:34
|
|
Minor: Use template parameter default values for OffsetTo
|
|
546b1adc
|
2014-06-26T19:10:21
|
|
Minor: Use template parameter default values for hb_prealloced_array_t
|
|
911ca386
|
2014-06-24T10:20:36
|
|
Add back API removed recently
Add hb_ot_layout_language_get_required_feature_index() again, which
is used in Pango. This was removed in
da132937989acb4d8ca9bd41c79f98750e7dda30 in favor of
hb_ot_layout_language_get_required_feature().
API changes:
- Added hb_ot_layout_language_get_required_feature_index back.
|
|
89e49469
|
2014-06-22T11:32:13
|
|
Add new IndicSyllabicCategory short forms for Unicode 7.0
|
|
dcee838e
|
2014-06-22T11:29:59
|
|
Minor
|
|
f2ad86e6
|
2014-06-21T15:31:10
|
|
[indic-table-gen] Minor
|
|
2ec62279
|
2014-06-21T15:25:59
|
|
[indic-table] Update to Unicode 6.3.0
Was from 6.2.0. It's a no-op. Committing for the record.
|
|
5d4d7384
|
2014-06-21T14:53:21
|
|
Minor: format
|
|
44243ae5
|
2014-06-21T14:19:34
|
|
[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.
|
|
cd86ab9b
|
2014-06-21T14:10:38
|
|
[arabic-table] Add ZWJ/ZWNJ now that table is segmented
|
|
2390d9b6
|
2014-06-21T14:07:00
|
|
[arabic-table] Further tune
In anticipation of Unicode 7.0 data coming in the next commit.
|
|
a133e606
|
2014-06-20T18:01:34
|
|
[indic-table] Minor
|
|
b900fa2c
|
2014-06-20T17:59:43
|
|
[arabic-table] Use segmented table
No functional change.
|
|
c2e11340
|
2014-06-20T17:57:03
|
|
[indic-table] Make output stable
|
|
55abfbd2
|
2014-06-20T16:47:43
|
|
[indic-table] Minor
No output change.
|
|
f8867074
|
2014-06-20T16:30:10
|
|
[arabic-table] Don't write comments
No functional change.
|
|
200dfe3e
|
2014-06-20T16:20:59
|
|
[arabic-table] Use short names for values
No functional change.
|
|
3f5327a4
|
2014-06-20T16:17:42
|
|
[arabic-table] Read Blocks.txt and shuffle code around
No functional change.
|
|
171f970e
|
2014-06-20T15:25:30
|
|
[indic-table] Black-list Thai, Lao, and Tibetan
We don't need Indic table for those.
|
|
65ac2dae
|
2014-06-20T15:12:49
|
|
[indic-table] Speed up lookup
|
|
64442a3f
|
2014-06-20T14:58:53
|
|
[indic-table] Fix compiler warning
|
|
0436e1d5
|
2014-06-20T14:56:22
|
|
[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% */
|
|
190a2514
|
2014-06-20T14:41:39
|
|
[indic-table] Remove block range from data table
No functional change.
|
|
2b051c60
|
2014-06-20T14:09:57
|
|
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
|
|
cabfa538
|
2014-06-20T13:51:21
|
|
Adjust unused doc symbols
|
|
da132937
|
2014-04-27T14:05:24
|
|
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
|
|
df554af9
|
2014-06-19T15:39:18
|
|
Rename search() to bsearch() and lsearch()
Such that the complexity of the algorithm used is clear at
call site.
|
|
fb8cc86f
|
2014-06-19T15:30:18
|
|
Rename sort() to qsort()
In an effort to make the algorithm used clear.
|
|
577ca481
|
2014-06-18T12:29:23
|
|
[unicode7] Update list of Default_Ignorable codepoints
|
|
7cfee382
|
2014-04-28T15:09:30
|
|
[unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper
Still needs update to joining table to fully work.
|
|
a4a7899c
|
2014-04-28T15:06:42
|
|
[unicode7] Mark right-to-left scripts
|
|
62587bfc
|
2014-04-28T15:07:21
|
|
[unicode7] Declare Unicode 7 scripts
|
|
dc61294a
|
2014-04-28T14:58:28
|
|
[unicode7] Add missing ISO 15924 tags
|
|
7526373e
|
2014-06-17T11:45:26
|
|
[coretext] Remove unused var
|
|
798e4185
|
2014-06-10T13:10:30
|
|
When zeroing mark widths for LTR, also adjust offset...
...so that they overstrike preceding glyph.
https://github.com/behdad/harfbuzz/pull/43
|
|
80f7405a
|
2014-06-10T13:10:02
|
|
[Thai] set the correct general category on Nikhahit when decomposing Sara-Am.
|
|
1d634cbb
|
2014-06-06T17:55:02
|
|
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
|
|
04dc52fa
|
2014-06-06T17:28:38
|
|
[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.
|
|
39c8201f
|
2014-06-06T17:19:35
|
|
[indic] Improve base re-finding
No test numbers change.
|
|
c04d5f0d
|
2014-06-06T17:02:39
|
|
[indic] Minor
|
|
832a6f99
|
2014-06-04T16:57:42
|
|
[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
|
|
b5be2317
|
2014-06-05T19:00:22
|
|
[gsub] Adjust single-length ligature subst to act like single subst
|
|
aae69451
|
2014-06-05T18:54:44
|
|
[gsub] Minor shuffling
|
|
b6b304f1
|
2014-06-05T17:12:54
|
|
[ot] Add TODO re zero-len MultipleSubst sequences
|
|
f1a72fe7
|
2014-06-04T19:00:29
|
|
[ot-font] Fix cmap EncodingRecord cmp order
|
|
ce34f0b0
|
2014-06-04T18:57:46
|
|
[ot-font] Use binary search for format12 cmap subtable
|
|
257d1adf
|
2014-06-04T18:47:55
|
|
[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 );
}
|
|
51f56357
|
2014-06-04T18:42:32
|
|
Move try_set to sanitize context
|
|
500737e8
|
2014-06-04T18:17:29
|
|
[ot-font] Don't select a Null cmap subtable
Can happen either in broken fonts, or as a result of sanitize().
|
|
dac86026
|
2014-06-03T17:57:00
|
|
Fix some cppcheck warnings
Bug 77800 - cppcheck reports
|
|
c306410c
|
2014-06-03T16:59:41
|
|
Bug 77732 - Fix unused typedef warning for ASSERT_STATIC with GCC 4.8
|
|
ae2b854e
|
2014-06-03T16:59:09
|
|
Move code around
|
|
17c3b809
|
2014-06-02T15:08:18
|
|
[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
|
|
6ae13f25
|
2014-05-30T17:38:14
|
|
[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
|
|
7977ca17
|
2014-05-29T15:34:26
|
|
[indic] Allow decimal and Brahmi digits as placeholders
Tests: U+0967,0951 U+0031,093F
|
|
e8b5d640
|
2014-05-29T15:18:27
|
|
[indic] Do NOT allow reph formation on placeholders
Only allow it on DOTTED CIRCLE. No effect on test numbers.
Test: U+0930,094D,00A0
|
|
52b562a6
|
2014-05-27T18:18:23
|
|
[indic] Clean up a bit
No functional change intended.
|
|
3bf652b9
|
2014-05-27T18:07:26
|
|
[indic] Treat U+002D and U+2010..2014 as placeholders
|