Commit Graph

2938 Commits

Author SHA1 Message Date
Behdad Esfahbod b70c96dbe4 Enable applying GSUB/GPOS features in multiple segments
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=644184
among others.

Shapers now can request segmented feature application by calling
add_gsub_pause() or add_gpos_pause().  They can also provide a
callback to be called at the pause.  Currently the Arabic shaper
uses pauses to enforce certain feature application.  The Indic
shaper can use the same facility to pause and do reordering in the
callback.
2011-07-07 21:12:15 -04:00
Behdad Esfahbod f6d7a9bb4c Shuffle code around 2011-07-07 16:20:35 -04:00
Behdad Esfahbod 2e18c6dbdf Fix reverse_range() position loop
Mozilla Bug 669175 - Slow rendering of text sometimes in this case,
using direction: rtl
2011-07-06 16:05:45 -04:00
Behdad Esfahbod fa2befa46f Minor 2011-07-04 17:18:57 -04:00
Behdad Esfahbod d69d5ceaa0 [Indic] Well, at least finding syllables works now :)
Still not much there.
2011-07-04 12:56:38 -04:00
Behdad Esfahbod 4ec30aec30 [Indic] Optimize Indic table storage 2011-06-28 14:13:38 -04:00
Behdad Esfahbod c4a59de6d8 [Indic] Generate a single data table instead of multiple ones 2011-06-28 14:03:29 -04:00
Behdad Esfahbod 8fdba506f0 [Indic] Define indic_position_t 2011-06-24 20:45:55 -04:00
Behdad Esfahbod 65988a145b [Indic] Add a table of consonant positions
Copied form HarfBuzz.old Indic data.  These are below and post
consonants.  This is temporary.  Read the comment in the patch.
2011-06-24 19:05:52 -04:00
Behdad Esfahbod c7fe56a1d5 [Indic] Some of the basic features are global; Mark them so 2011-06-24 19:05:34 -04:00
Behdad Esfahbod 867361c3ad [indic] Add syllable recognition state machine
Using an incredible tool called Ragel.
2011-06-17 18:35:46 -04:00
Behdad Esfahbod 422e08dbb8 Better categorize Indic character classes
Matches OT types now.
2011-06-15 17:22:48 -04:00
Behdad Esfahbod 31f18abecb Minor compiler warning fixes 2011-06-15 09:49:58 -04:00
Behdad Esfahbod e3693b72f0 Change a couple strstr() to strchr() 2011-06-15 09:33:52 -04:00
Behdad Esfahbod b9452bfc16 Fix compiler warnings with -pedantic 2011-06-14 14:47:07 -04:00
Behdad Esfahbod 970e092dc2 Remove extra semicolon 2011-06-14 14:35:44 -04:00
Behdad Esfahbod 8142680802 Cosmetic 2011-06-13 16:12:56 -04:00
Behdad Esfahbod 902ab866f2 GNOME Bug 652227 - Unconditional use of stdint.h 2011-06-10 23:08:54 -04:00
Behdad Esfahbod 20503ccd57 More Indic data shuffling 2011-06-07 17:02:48 -04:00
Behdad Esfahbod 63b177e45c Minor 2011-06-07 15:51:40 -04:00
Behdad Esfahbod b9ddbd5593 [Indic] Start an Indic shaper
Nothing functional in there yet.

So far, we're parsing IndicSyllabicCategory.txt and IndicMatraCategory.txt
fils from Unicode Character Database and store them in an array to be used
by the shaper.  Also hooked up the shaper, but it does not do anything
right now.
2011-06-02 17:43:12 -04:00
Behdad Esfahbod 697a65c5f5 Minor 2011-06-01 23:15:48 -04:00
Behdad Esfahbod 9de1481f2b Update to ArabicShaping-6.1.0d2.txt 2011-06-01 20:45:14 -04:00
Behdad Esfahbod 9d49433efb Minor rename 2011-06-01 18:10:10 -04:00
Behdad Esfahbod 89a2bc9ba6 [Vertical] Apply vertical features
We apply all of vert, vrt2, vkrn, valt, and vpal.
2011-05-31 15:18:13 -04:00
Behdad Esfahbod 0c6a9767c8 [hb-view] Add --face-index to choose a face in a TrueType Collection 2011-05-31 12:59:17 -04:00
Behdad Esfahbod 4f28fbdd80 Fix TTC header handling
Also change the Version type to avoid similar bugs in the future.

Reported by Grigori Goronzy.
2011-05-31 12:33:11 -04:00
Behdad Esfahbod 21deab2bdc Fixed inifinite loop introduced in 7403e055cd
k is the index, not j.

Reported by Tom Hacohen.
2011-05-30 11:08:40 -04:00
Behdad Esfahbod 51881a61ca Shrink code size 2011-05-27 18:15:56 -04:00
Behdad Esfahbod 90645fb24b [OT] Separate map_builder from the actual map
Respectively, separate planner from the actual plan.
2011-05-27 18:13:31 -04:00
Behdad Esfahbod 5560a19e2b Minor 2011-05-27 17:49:16 -04:00
Behdad Esfahbod 5bc18195d5 Add check-includes.sh 2011-05-27 15:58:54 -04:00
Behdad Esfahbod 376dafa6ed Hide internal symbols 2011-05-27 03:40:04 -04:00
Behdad Esfahbod 329c15714b Add libtool versioning
The versioning is automatic.  For now, soname-major is 0.  With
the 1.0.0 release it will jump to 1 and stay there forever.
2011-05-25 16:07:07 -04:00
Behdad Esfahbod 2d8ebcb9d0 [API] One last font-funcs API change
Now that vertical text works correctly, I'm doing a last round
modification of the font-funcs API to simplify.  Expect no more
changes around here.
2011-05-25 11:27:33 -04:00
Behdad Esfahbod 7403e055cd [Vertical] fix vertical gpos
Wow, it took me a few days to find the right fix!

We now set the advance for attached marks to zero, but we
do this in the _finish() state of gpos, so it shouldn't
regress with fonts like DejaVuSansMono that explicitly
decrease the mark advance width to set it to zero.
2011-05-25 10:52:15 -04:00
Behdad Esfahbod 3b0bb855e0 [Vertical] GPOS x/y advance adjustments only apply in hori/vert respectively 2011-05-20 15:59:59 -04:00
Behdad Esfahbod cc2086d67c [Vertical] Fix GPOS y-advance direction 2011-05-19 19:19:50 -04:00
Behdad Esfahbod 67d51ff961 [Vertical] Do fallback origin calculation 2011-05-19 19:08:57 -04:00
Behdad Esfahbod 60fbb36096 [Vertical] GPOS is always done with horizontal origin 2011-05-19 18:46:15 -04:00
Behdad Esfahbod 8b38faeede More vertical
Starting to get there, but not without yet another round of changes.

I think I know wheere to go now.
2011-05-19 13:08:00 -04:00
Behdad Esfahbod e609aeb1e2 [hb-view] Add --annotate
Currently it only marks glyph origins.
2011-05-18 10:17:02 -04:00
Behdad Esfahbod b8d76dd74e Vertical: Adjust origin in glyph_extents() and glyph_contour_point()
The base for vertical is almost ready now.
2011-05-17 23:31:00 -04:00
Behdad Esfahbod 190981851f Cosmetic 2011-05-17 23:27:22 -04:00
Behdad Esfahbod 2c3f51a11c Minor 2011-05-17 23:23:27 -04:00
Behdad Esfahbod 7e2c85de30 [API] Vertical support, take 2
I like this API *much* better.  Implementation still incomplete, but
horizontal works.
2011-05-17 17:55:03 -04:00
Behdad Esfahbod 744970af4d [API] Add support for vertical text
Design not final yet, and in fact I'm going to change it immediately,
but this is an standalone change for itself.
2011-05-17 17:12:34 -04:00
Behdad Esfahbod 4053f3f788 Cosmetic 2011-05-16 17:03:27 -04:00
Behdad Esfahbod 56d12e0356 Remove unnecessary TODO item 2011-05-16 16:01:58 -04:00
Behdad Esfahbod 1883af3796 [hb-view] Start work on vertical support 2011-05-16 15:18:16 -04:00
Behdad Esfahbod 9aa6f96af5 [hb-view] No need to allocate an extra glyph item at the end 2011-05-16 15:08:31 -04:00
Behdad Esfahbod 1a64f6e19a [API] Add HB_LANGUAGE_INVALID 2011-05-13 22:55:32 -04:00
Behdad Esfahbod 40b5c2e86c [test/test-ot-tag] Test hb-ot-tag.h, fix many bugs
I'm in awe with how many bugs this test revealed.  All fixed.
2011-05-13 22:46:36 -04:00
Behdad Esfahbod 7fc5a30cb4 [API] Add hb_face_make/is_immutable() 2011-05-12 17:48:20 -04:00
Behdad Esfahbod 20c8b908dd Finish off previous change 2011-05-12 15:19:33 -04:00
Behdad Esfahbod 0fd8c2f1be [API] Make get_glyph() callback return a boolean
We need to know whether the glyph exists, so we can fallback to
composing / decomposing.  Assuming that glyph==0 means "doesn't exist"
wouldn't work for applications like Pango that want to use different
"doesn't exist" glyph codes for different characters.  An explicit
return value fixes that.
2011-05-12 15:14:13 -04:00
Behdad Esfahbod 805af72405 Rename get_kernings() arguments from first/second_glyph to left/right_glyph
Makes it clear that kerning is in visual order.
2011-05-12 12:39:40 -04:00
Behdad Esfahbod df077fadd7 [object] Make object inert during destruction
Such that user_data and other finalizers cannot resurrect object
2011-05-12 01:19:39 -04:00
Behdad Esfahbod 52df150efe Fix font subclass chainup
Test passing now.
2011-05-12 00:46:57 -04:00
Behdad Esfahbod 7033518f75 [API] Pass face to get_table() 2011-05-11 23:31:15 -04:00
Behdad Esfahbod b467827806 [API] Remove const from font user_data 2011-05-11 23:25:28 -04:00
Behdad Esfahbod 9a14688e40 [API] Rename hb_face_create_for_data() to hb_face_create() 2011-05-11 22:49:29 -04:00
Behdad Esfahbod 46d6a21cc8 [API] Add hb_ot_layout_substitute_start/finish() 2011-05-11 22:33:13 -04:00
Behdad Esfahbod c84d15f52e Remove unused hb_set_t 2011-05-11 22:23:15 -04:00
Behdad Esfahbod 389a7c9e67 Remove hb_static_threadsafe_set_t 2011-05-11 22:21:38 -04:00
Behdad Esfahbod e06d4eda7b Use constructor/destructor for hb_ot_shape_plan_t 2011-05-11 22:18:31 -04:00
Behdad Esfahbod daa446f184 Fix compile with no mutex available 2011-05-11 21:31:25 -04:00
Behdad Esfahbod 1e56c476c1 Free static mutex'es 2011-05-11 21:28:01 -04:00
Behdad Esfahbod 831886a9b4 Streamline mutex stuff 2011-05-11 21:27:52 -04:00
Behdad Esfahbod 438c4eee35 Remove unused hb_mutex_trylock() 2011-05-11 21:14:34 -04:00
Behdad Esfahbod 80a6833b03 [API] Add hb_*_get_empty() for all objects 2011-05-11 18:21:58 -04:00
Behdad Esfahbod d3b30be378 [API] Add HB_UNTAG()
Useful in C API only.
2011-05-11 18:06:12 -04:00
Behdad Esfahbod 3cc6e9dcb4 Minor 2011-05-11 18:02:48 -04:00
Behdad Esfahbod 4101ca7dbb Plug more leaks
All good now.
2011-05-11 14:30:56 -04:00
Behdad Esfahbod 6a7ac79e26 Plug leaks 2011-05-11 14:19:18 -04:00
Behdad Esfahbod 7aa12ebdff [unicode] Simplify method setting 2011-05-11 11:55:11 -04:00
Behdad Esfahbod d5bfd02721 Minor 2011-05-11 11:48:28 -04:00
Behdad Esfahbod 6a4e7e1372 Add maxp table
Not used for anything right now.  Will use to get num_glyphs in the future.
2011-05-11 10:31:33 -04:00
Behdad Esfahbod a513dbcf73 [API] Change signature of get_contour_point and get_kerning ffuncs
get_contour_point now takes glyph id before point_index.

get_kerning now takes a vector to fill-in.
2011-05-11 00:38:22 -04:00
Behdad Esfahbod 63d646fb29 [font] Do user-space conversion when chaining up to parent font 2011-05-11 00:15:37 -04:00
Behdad Esfahbod b6f902a1a9 Minor 2011-05-11 00:04:15 -04:00
Behdad Esfahbod abcfe9b59b Remove hb_ot_layout_context_t, simplify code 2011-05-11 00:02:02 -04:00
Behdad Esfahbod 1ded6d8bbf Make default font-funcs chain-up to the parent 2011-05-10 20:50:06 -04:00
Behdad Esfahbod b9d975b931 [API] Pass down closure user_data to font funcs 2011-05-10 20:41:13 -04:00
Behdad Esfahbod 446df9cdb1 Whitespace 2011-05-10 20:14:44 -04:00
Behdad Esfahbod 686c2d165d [API] Remove font_funcs func getter functions 2011-05-10 20:04:26 -04:00
Behdad Esfahbod defc45be6d [API] Add hb_font_create_sub_font() and hb_font_get_parent()
Not quite useful just yet.
2011-05-10 20:02:49 -04:00
Behdad Esfahbod 11bb8fe7b3 [font] Fix internal sign of x/y_scale
Should have been done as part of da97541988
2011-05-10 19:57:00 -04:00
Behdad Esfahbod 85e6218e33 [API] Remove broken-by-design hb_font_unset_funcs() 2011-05-10 19:40:44 -04:00
Behdad Esfahbod 74f1d896f2 Add hb_font_make/is_immutable() 2011-05-10 19:39:32 -04:00
Behdad Esfahbod 8c7a100a4d Fix build without mutex 2011-05-10 19:21:07 -04:00
Behdad Esfahbod 19d3035c40 Remove duplicate atomic_int implementation 2011-05-10 19:18:12 -04:00
Behdad Esfahbod 45bfa99034 Fix set implementation to be truly threadsafe even with destroy() callbacks
The test/object test is passing again, instead of deadlocking.
2011-05-10 19:15:49 -04:00
Behdad Esfahbod 1c9f8717eb [API] Simplify blob API, remove lock 2011-05-06 22:59:42 -04:00
Behdad Esfahbod a0f337a1cc Remove unused hb_blob_try_writable_inplace() 2011-05-06 19:20:52 -04:00
Behdad Esfahbod 08611d5194 Add note re deadlocks 2011-05-06 16:28:10 -04:00
Behdad Esfahbod 34fb5521a5 [API] Add hb_language_get_default()
It uses locale information to detect default language.  It's used by
hb_shape() whenever language is not set on the buffer.

Not sure how to properly test it in the test suite.  Tested by observing
that with DejaVu Sans we select the proper local glyph version for U+431
under Serbian locale.  See http://www.pango.org/ScriptGallery
2011-05-06 00:05:08 -04:00
Behdad Esfahbod c78f448558 [API] Add version macros and functions
Step version up to 0.5.0.

Also, fix to pass "make distcheck"
2011-05-05 21:31:04 -04:00
Behdad Esfahbod 3935af1c0d [buffer] Remove wrong optimization
While the cluster fields of the glyph string are usually sorted, they
wouldn't be in special cases (for example for non-native direction).
Blindly using bsearch is plain wrong.  If we want to reintroduce this
optimization we have to make sure we know the buffer clusters are
monotonic and in which direction.  Not sure it's worth it though.
2011-05-05 16:09:45 -04:00
Behdad Esfahbod 46df682851 Make user_data access threadsafe
For now, by taking a global user_data mutex.
2011-05-05 15:33:19 -04:00
Behdad Esfahbod 218e67b9ee Shrink code 2011-05-05 15:28:37 -04:00
Behdad Esfahbod b8d6183ebc Use threadsafe set implementation for hb_language lookups
Note that the static variable has to be a global static, as gcc
implements local statics differently and that would require linking
to libstdc++, which we don't want.
2011-05-05 15:14:04 -04:00
Behdad Esfahbod d37486d87b Add hb_threadsafe_set_t 2011-05-05 15:07:54 -04:00
Behdad Esfahbod b45f32ee4e Use hb_array_t for hb_language_t mapping 2011-05-05 15:00:43 -04:00
Behdad Esfahbod 21d2c92fdf Move code around 2011-05-05 14:47:53 -04:00
Behdad Esfahbod 265ac614ea Replace fixed-size lookup_maps array with hb_array_t 2011-05-05 14:38:16 -04:00
Behdad Esfahbod 6843569d2c Replace fixed-size feature_maps array with hb_array_t 2011-05-05 14:30:51 -04:00
Behdad Esfahbod 44b0a4d2fc Replace fixed-size feature_infos array with hb_array_t 2011-05-05 13:42:19 -04:00
Behdad Esfahbod b214ec3ac0 Minor 2011-05-05 13:24:07 -04:00
Behdad Esfahbod 811482bd65 Replace hb_map_t with hb_set_t which is more intuitive and flexible 2011-05-05 13:21:04 -04:00
Behdad Esfahbod 478a42536f Make array/map implementation more generic 2011-05-05 12:39:51 -04:00
Behdad Esfahbod b81bd42951 Make hb_mutex_*() macros take a pointer
More intuitive.
2011-05-05 00:21:16 -04:00
Behdad Esfahbod a4b1900913 Add hb_static_mutex_t 2011-05-05 00:17:43 -04:00
Behdad Esfahbod 56eb5ad6f9 Move code around
Mutex (and Windows.h by extension) are fairly isolated now.
2011-05-04 19:27:37 -04:00
Behdad Esfahbod d292885893 [ft] Fix font->face handling
Don't use _cached()
2011-05-03 01:03:53 -04:00
Behdad Esfahbod 2000179487 Move Win32 thread-safety stuff to hb-object-private.h
The Win32 definitions for LONG, ULONG, etc conflicts with
hb-open-type.h.  Avoid that by making sure hb-object-private.h
and hb-open-type.h are not included in the same compilation unit.
2011-05-03 00:49:06 -04:00
Behdad Esfahbod 266b34418c Refactor to keep hb-object-private.h and hb-open-type.h separate
Needed to be able to include <Windows.h> from hb-object-private.h.
2011-05-03 00:35:53 -04:00
Behdad Esfahbod d4141a44b9 [blob] Implement sub_blob() in terms of create()
Fixes problem with uninitialized sub_blob->mutex among other things.

Reported by Bradley Grainger.
2011-05-03 00:19:18 -04:00
Behdad Esfahbod fc52e9e44c Implement win32 thread-safety stuff
Patch from Bradley Grainger.
2011-05-03 00:09:16 -04:00
Behdad Esfahbod f55272ecde Add hb_mutex_free() and use it
Based on patch by Bradley Grainger.
2011-05-02 20:57:28 -04:00
Behdad Esfahbod 8d5186484b Cosmetic 2011-05-02 20:52:21 -04:00
Behdad Esfahbod 72657e4ce7 [API] Make hb_font_create() take a face and reference it 2011-05-02 20:47:23 -04:00
Behdad Esfahbod cec6611c5c Protect NULL in a couple places 2011-05-02 20:18:58 -04:00
Behdad Esfahbod 5a5030366e Fix bug in array growth implementation
With this, test/object is now passing.  Yay!
2011-05-02 19:54:29 -04:00
Behdad Esfahbod 16123e1070 Fix bug in map implementation 2011-05-02 19:54:17 -04:00
Behdad Esfahbod 1cd5969f25 [object] Fix bug in get_user_data() implementation 2011-05-02 19:53:39 -04:00
Behdad Esfahbod 4911062d5b [API] Rename hb_blob_create_empty() to hb_blob_get_empty() 2011-05-02 19:36:39 -04:00
Behdad Esfahbod 1ab1d3e38c [face] Return nil face if blob is inert 2011-05-02 19:35:53 -04:00
Behdad Esfahbod e87867cb88 [buffer] Fail in _create() if we cannot pre-allocate the requested size 2011-05-02 19:35:05 -04:00
Behdad Esfahbod c784c67a28 [unicode] Make _get_parent() return _nil object instead of NULL 2011-05-02 15:59:57 -04:00
Behdad Esfahbod 03034acb8a [icu] Make sure we return script UNKNOWN instead of INVALID 2011-05-02 12:37:45 -04:00
Behdad Esfahbod d02985ec5a ISO 15924 fixes
Update to http://unicode.org/iso15924

Fixes some of the test failures in test-unicode with ICU.  Still
one more to fix before the test passes.
2011-05-02 12:35:14 -04:00
Behdad Esfahbod 6af9cff5e1 [test/unicode] Use text fixture instead of static variables 2011-04-29 12:12:37 -04:00
Behdad Esfahbod 243673d601 [test/buffer] Add more extensive UTF-8 test data from glib 2011-04-28 19:37:51 -04:00
Behdad Esfahbod c7ffe2ad5f [API Remove hb_font_funcs_copy()
Will be adding font_funcs subclassing instead.
2011-04-28 16:03:29 -04:00
Behdad Esfahbod 30f34d08d4 [TODO] Remove finished items 2011-04-28 16:02:40 -04:00
Behdad Esfahbod 080a0eb7d8 Add _hb_unsigned_int_mul_overflows 2011-04-28 16:01:01 -04:00
Behdad Esfahbod 3264042873 [test/buffer] Test pre_allocate() and allocation_successful() 2011-04-28 14:24:16 -04:00
Behdad Esfahbod 123aa04f7b Fix possible but improbable overflow in hb_array_t 2011-04-28 12:58:28 -04:00
Behdad Esfahbod e0db4b868f [buffer] More error handling
Should be all set now.
2011-04-28 12:56:49 -04:00
Behdad Esfahbod 5fa849b77d [API] Add _set/get_user_data() for all objects 2011-04-27 21:46:01 -04:00
Behdad Esfahbod 852e08ec8f Move code around 2011-04-27 21:45:51 -04:00
Behdad Esfahbod 29c67d3f70 Add initial implementation of user_data to objects 2011-04-27 21:27:40 -04:00
Behdad Esfahbod 47e71d9661 [object] Remove unnecessary use of macros 2011-04-27 16:41:08 -04:00
Behdad Esfahbod 8be1420f8f [blob] Use HB_FUNC instead of __FUNCTION__ 2011-04-27 16:16:43 -04:00
Behdad Esfahbod ae008b90cf [object] Add tracing support back in 2011-04-27 16:16:39 -04:00
Behdad Esfahbod 39a840ae65 [API] Add hb_direction_from/to_string()
And hb-view --direction argument.
2011-04-27 14:48:19 -04:00
Behdad Esfahbod f1425a549f Rename hb-view.c and test.c to .cc files 2011-04-27 12:15:06 -04:00
Behdad Esfahbod 65e0063eae Make buffer size growth start from 32 instead of 8 2011-04-27 09:38:23 -04:00
Behdad Esfahbod d4bee9f813 [API] Add hb_unicode_funcs_get_default() 2011-04-27 09:38:19 -04:00
Behdad Esfahbod 153142dac8 Replace simple macros with inline functions for better type safety
Now that we use C++ for all source code, lets benefit from it!

The hb_be_int16/32_get/put/eq() macros grow code size if replaced with
inline functions, so leave them as is.
2011-04-27 02:07:46 -04:00
Behdad Esfahbod 40a9b8154f Add TODO item 2011-04-27 01:48:56 -04:00
Behdad Esfahbod ebdc83467c Don't return in void function
Would have been nice if gcc had warned...
2011-04-27 01:41:24 -04:00
Behdad Esfahbod ec6f9c2fd0 Further simplify object handling 2011-04-21 18:35:58 -04:00
Behdad Esfahbod fca368c468 Add hb_object_header_t which is the common part of all objects
Makes way for adding arbitrary user_data support.
2011-04-21 18:24:02 -04:00
Behdad Esfahbod a9f24c8029 Move hb_reference_count_t to hb-private.h 2011-04-21 17:18:22 -04:00
Behdad Esfahbod 2409d5f8d7 Update Copyright headers 2011-04-21 17:14:28 -04:00
Behdad Esfahbod 08da7a3841 [hb-view] Accept numbers in feature tag name
Reported by Adam Twardoch.
2011-04-21 16:59:10 -04:00
Behdad Esfahbod 24229eb132 Remove obsolete comment
Talking to Ryan Lortie, he thinks my comment doesn't make sense.

So I'm making the getter const.  Note that g_atomic_int_get()
casts that away itself, so we don't need to worry about that
(which kinda makes me uncomfortable actually).
2011-04-21 16:55:17 -04:00
Behdad Esfahbod dcb7026f33 Add ASSERT_STATIC_EXPR macro
Unused right now.
2011-04-21 16:34:22 -04:00
Behdad Esfahbod 3e8bdbf941 Cleanup hb_refrence_count_t 2011-04-21 16:16:21 -04:00
Behdad Esfahbod 783a7d6969 [TODO] Remove finished items 2011-04-21 16:03:59 -04:00
Behdad Esfahbod da97541988 [API] Allow negative font x_scale/y_scale
I was reconsidering whether y should grow down, since all three/four
times I've used this API I was tricked and got that wrong in my use.
So I was very inclined to make y grow down instead of up.  However,
considering that the font space has y up and it would be very confusing
for callbacks to work against that, I decided that what I really want
is for the user to be able to set y_scale to a negative number to imply
that user-space y grows down.

Changing x_scale/y_scale from unsigned int to int allows that, and I've
made pango to use that instead of negating glyph y_offset later.  hb-ft
however still has y group up.  I *guess* that's how FreeType works?
I'm not sure, FreeType docs don't make this clear...

I'm happy with the resolution :-).
2011-04-21 15:15:02 -04:00
Behdad Esfahbod 4d559cddbb [icu] Remove big script switch(), rely on reverse-lookup 2011-04-21 14:58:23 -04:00
Behdad Esfahbod d18431b4cd Move hb_reference_count_t from macros to inline methods 2011-04-20 18:59:10 -04:00
Behdad Esfahbod c57d454acc Rename all private sources and headers to C++ files
So we can liberally use the simple features of C++ that parts of the
codebase is already using.
2011-04-20 18:50:27 -04:00
Behdad Esfahbod f19f4f9b09 Rename hb-blob.c to hb-blob.cc in preparation of more changes 2011-04-20 18:25:56 -04:00
Behdad Esfahbod 9417c1c0d2 [API] Make hb_face_reference_table() return empty blob instead of NULL
The idea here is that:

  - Like pretty much all other API in harfbuzz, user does not have to
    check for NULL.

  - In any caller code, the case of missing table should be handled
    exactly the same way that a too-short table is handled.  Turning
    a non-existent talbe into a table of size 0 makes the user code
    safer.
2011-04-20 17:21:23 -04:00
Behdad Esfahbod c035812feb [API] Rename hb_face_get_table() to hb_face_reference_table()
That correctly reflects the reference ownership transfer happening.
2011-04-20 17:03:00 -04:00
Behdad Esfahbod 2d7b61a4b0 [TODO] Remove done items 2011-04-20 16:40:56 -04:00
Behdad Esfahbod af02933739 [API] Remove hb_*_get_reference_count()
This was a bizzare piece of API that I inherited from cairo.  It has
been wrong adding them to cairo in the first place.  Remove them before
someone uses them!
2011-04-20 15:49:31 -04:00
Behdad Esfahbod 440a76b630 [OT] Fix script to ot-script-tag conversion 2011-04-20 14:20:00 -04:00
Behdad Esfahbod a3036a3e97 Minor 2011-04-20 14:13:23 -04:00
Behdad Esfahbod 5668189c12 [API] font: move user_data before destroy()
This is the common convention for language binding tools.
2011-04-20 03:03:32 -04:00
Behdad Esfahbod e5847f75fb [API] blob: move user_data before destroy()
This is the common convention for language binding tools.
2011-04-20 02:59:28 -04:00
Behdad Esfahbod f144a8ea84 [icu] Add two-way script conversion functions
Also optimizes the common-direction script lookup.
2011-04-20 02:54:42 -04:00
Behdad Esfahbod 0809aadd4b [glib] Add two-way script conversion functions
Also optimizes the common-direction script lookup to be an array lookup.
2011-04-20 02:44:29 -04:00
Behdad Esfahbod 5c8c1b680c Remove verbose comments 2011-04-20 02:29:22 -04:00
Behdad Esfahbod fb194b8794 unicode: Cleanup implementation 2011-04-20 02:27:39 -04:00
Behdad Esfahbod ecfb773829 Cosmetic 2011-04-20 01:34:51 -04:00
Ryan Lortie 2fd0c577e3 [API] unicode: rework virtual functions for subclassing
Unicode data providers can now be subclassed, including support for
chain-up.  The interface should now be nicely bindable, as well.

Also fix glib unicode funcs that where broken after hb_script_t
changes.  Nicely caught by the test-unicode.c added in this commit.
2011-04-20 00:19:20 -04:00
Behdad Esfahbod f85faee9b3 [API] Rename hb_buffer_add_glyph() to hb_buffer_add() 2011-04-19 00:38:01 -04:00
Behdad Esfahbod aab0de50e2 [API] Add hb_buffer_allocation_successful()
Returns the error status of the buffer.
2011-04-19 00:32:19 -04:00
Ryan Lortie 02a534b23f [API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate()
The new name is self-documenting.
2011-04-19 00:05:43 -04:00
Ryan Lortie 70566befc5 [API} hb_buffer_get_glyph_{infos,positions}: Add length out parameter
Return the length, whenever we return an array.  Makes it easier on the
language bindings.
2011-04-19 00:03:44 -04:00
Behdad Esfahbod 62879eebd9 [API] Use ISO 15924 tags for hb_script_t
This simplifies the code, reduces static data, and makes the design
more extensible to future additions of new scripts.
2011-04-18 23:40:21 -04:00
Behdad Esfahbod c0af193c8e Change buffer default properties to invalid
This includes HB_DIRECTION_INVALID and HB_SCRIPT_INVALID.

The INVALID will cause a "guess whatever from the text" in hb_shape().
While it's not ideal, it works better than the previous defaults at
least (HB_DIRECTION_LTR and HB_SCRIPT_COMMON).
2011-04-15 19:26:24 -04:00
Behdad Esfahbod 00bec2c969 Move enum types to hb-common.h 2011-04-15 19:16:54 -04:00
Behdad Esfahbod b54cd07b26 Mark internal buffer variables private 2011-04-15 19:12:01 -04:00
Behdad Esfahbod 0e8d35c093 Add hb_script_from_string() 2011-04-15 19:08:43 -04:00
Behdad Esfahbod 8f0d7e0c3f Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start() 2011-04-15 19:08:43 -04:00
Behdad Esfahbod 2fc56edff6 [API] Remove hb_buffer_clear()
One should use hb_buffer_reset() really.
2011-04-15 19:08:38 -04:00
Behdad Esfahbod 5814dfa3f5 Cosmetic 2011-04-15 14:41:04 -04:00
Behdad Esfahbod 3cbdf70e0a Make hb_language_t typesafe 2011-04-15 12:33:14 -04:00
Behdad Esfahbod c910bec863 Add hb_buffer_reset() and hb_buffer_set_length() 2011-04-13 15:49:06 -04:00
Behdad Esfahbod 69ea23cb5d Minor 2011-04-13 15:02:40 -04:00
Behdad Esfahbod 8e4bb3cacc Fold hb-language.[ch] into hb-common.[ch] 2011-04-11 17:55:58 -04:00
Behdad Esfahbod 316b7a1afb Make hb_language_from_string("") return NULL language 2011-04-11 17:49:10 -04:00
Behdad Esfahbod 99b74760a4 Rename hb_category_t to hb_unicode_general_category_t 2011-04-11 15:47:40 -04:00
Behdad Esfahbod 4188096a77 Make HB_TAG_CHAR4 private
It's just sugar.
2011-04-11 14:58:28 -04:00
Behdad Esfahbod 7ff7401c92 Make hb_tag_from_string(NULL) return HB_TAG_NONE 2011-04-11 13:27:30 -04:00
Behdad Esfahbod db5227c40e Move macros around 2011-04-11 13:16:08 -04:00
Behdad Esfahbod 07233581c9 Rename HB_TAG_STR() to HB_TAG_CHAR4()
The problem with HB_TAG_STR() was that it expected a string of size 4
exactly, and unlike hb_tag_from_string() it doesn't pad the tag with
space characters.  So, the new name is more appropriate.
2011-04-11 13:12:37 -04:00
Behdad Esfahbod d77b76200e Add few more paratheses to the HB_TAG macro
Never hurts.
2011-04-11 12:29:52 -04:00
Behdad Esfahbod b13640de69 A few more ASSERTs 2011-04-11 12:29:31 -04:00
Behdad Esfahbod ae9eeaff93 Remove warning message from public header file
Since we now assert thos in hb-private.h, the int types cannot be wrong.
(Except for when someone else includes hb-common.h in a very broken
configuration, but that's not our problem!)

Plus, we don't use inline in the public headers, so remove that too.
2011-04-11 12:09:13 -04:00
Behdad Esfahbod 6fd5364bdc Assert int types 2011-04-11 11:47:14 -04:00
Behdad Esfahbod a71b9c8579 Disable 'cswh' by default except for Arabic shaper
That better matches OpenType spec.  Note that we enable it for all
Arabic-shaper scripts.  Ie. we enable it by default for Syriac too,
but the SyriacOT spec does not require it.  I think this is a more
useful compromise than special-casing for Arabic script alone.
2011-04-06 14:04:56 -04:00
Behdad Esfahbod cab6f65bba [hb-view] setlocale (LC_ALL, "")
For now we don't use anything from the locale, but we should default
to using $LANG, etc, if --language is not specified.  Right?
2011-04-04 15:36:51 -04:00
Behdad Esfahbod fb9ca1bfab [hb-view] Rewrite --features parsing, with range support
The --features parsing handles errors now.  More importantly, it
allos limiting individual features to specific byte ranges.  The
format is Python-esque.  Here is how it all works:

  Syntax:	Value:	Start:	End:

Setting value:
  "kern"	1	0	∞	# Turn feature on
  "+kern"	1	0	∞	# Turn feature off
  "-kern"	0	0	∞	# Turn feature off
  "kern=0"	0	0	∞	# Turn feature off
  "kern=1"	1	0	∞	# Turn feature on
  "kern=2"	2	0	∞	# Choose 2nd alternate

Setting index:
  "kern[]"	1	0	∞	# Turn feature on
  "kern[:]"	1	0	∞	# Turn feature on
  "kern[5:]"	1	5	∞	# Turn feature on, partial
  "kern[:5]"	1	0	5	# Turn feature on, partial
  "kern[3:5]"	1	3	5	# Turn feature on, range
  "kern[3]"	1	3	3+1	# Turn feature on, single char

Mixing it all:

  "kern[3:5]=0"	1	3	5	# Turn feature off for range
2011-04-04 14:50:09 -04:00
Behdad Esfahbod ccc6745afa [hb-view] Use cached hb-ft face creation
Avoids recreating the face the second time we call draw().
2011-04-04 14:49:50 -04:00
Behdad Esfahbod 1b4a2cc095 [hb-view] Add --debug
Frees all allocated memory before exiting.  Useful for valgrind run.
2011-04-04 14:45:28 -04:00
Behdad Esfahbod b2da26d1e3 [hb-view] Support --features
Accepts values like:

  --features="-mkmk,aalt=2,calt=1,+cswh"

A minus sign means "=0", a plus sign means "=1".  Default is "=1".
A minus sign overrides an explicit value.
2011-04-01 15:48:43 -04:00
Behdad Esfahbod f48ff19b62 Sort options for clarity 2011-04-01 14:19:10 -04:00
Behdad Esfahbod 5d91c3d547 Add script to/from ISO 15924 tag support
Also adds --script support to hb-view.

If a script tag is not known to us, we pass the ISO 15924 tag around.
Right now, the OT layer ignores that, but we can fix it to blindly
convert that to an OT script tag.
2011-03-16 17:36:32 -03:00
Behdad Esfahbod 3286fc0e9a Let hb_shape() guess script and direction...
- Rename HB_SCRIPT_INVALID_CODE to HB_SCRIPT_INVALID

- Add HB_DIRECTION_INVALID

- Make hb_script_get_horizontal_direction() public

- Make hb_shape() guess script from buffer text (first non-common
  non-inherit script) if buffer script is set to HB_SCRIPT_INVALID (this
  is NOT the default.)

- Make hb_shape() guess direction from buffer script if buffer direction
is set to HB_DIRECTION_INVALID (this is NOT the default.)

- Make hb-view.c set INVALID script and direction on the buffer.

The above changes are meant to make hb-view fairly useful for uni-script
uni-direction text.  The guessing behavior however is NOT the default of
hb_shape() and must be asked for explicitly.  This is intended, because
the guess is not a suitable substitute to full-fledged bidi and script
segmentation.  It's just a testing tool.
2011-03-16 14:53:32 -03:00
Behdad Esfahbod b7b29684df [hb-view] Handle write_to_png errors 2011-03-02 01:01:03 -05:00
Behdad Esfahbod c2cb98c818 [hb-view] Link with -lm 2011-03-01 23:18:09 -05:00
Behdad Esfahbod b5dd44e246 Fix possible overflow 2011-02-28 10:13:52 -08:00
Behdad Esfahbod a4b781e93a Default background color shall either be white or transparent
Definitely not black!
2011-02-23 12:47:56 -05:00
Behdad Esfahbod 5353bf439c Add initial hb-view tool
Currently doesn't handle script or direction.
2011-02-22 18:06:19 -05:00
Bradley Grainger 82438c6ad5 Fix #pragma message for MSVC.
__LOC__ was renamed to _HB__LOC__ in cd7555 but the corresponding
change wasn't made in hb-private.h.
2011-02-15 18:37:29 -05:00
Behdad Esfahbod ba9ab8d6d9 Fix language extension matching 2011-01-10 07:45:41 -05:00
Behdad Esfahbod 7bbe14bed8 Fix 'make distcheck' 2011-01-09 22:29:14 -05:00
Behdad Esfahbod cc1a8a938b Fix ChanContext backtrack matching with GPOS
Reported on mailing list by Keith Stribley and Khaled Hosny.
2011-01-06 14:58:52 -05:00
Behdad Esfahbod 1c3183027f Remove unused realloc
We always allocate and grow str and pos together.
2011-01-06 14:44:14 -05:00
Behdad Esfahbod 756f794a1f Remove Graphite backend
It was unmaintained and the code has to be replaced to use the new
grphite-ng code base.
2010-12-26 20:52:40 -05:00
Behdad Esfahbod f3d9d98793 Docs 2010-12-22 01:39:29 -05:00
Behdad Esfahbod d86a5b3c57 Bug 32274 - classic mongolian shaper
Add support for classic Mongolian script to the Arabic shaper.

Still work to be done around U+180E MONGOLIAN VOWEL SEPARATOR as it
should not be included in the final glyph stream the same way that
ZWNJ, etc should not appear in the final glyph stream.

But the joining part should be done.

There remains the question of how should the U+18A9 MONGOLIAN LETTER ALI
GALI DAGALGA be handled as it has General Category NSM but a letter
nonetheless.  For now, our generic logic makes this a joining T instead
of joining D as other Mongolian letters are.
2010-12-21 18:36:25 -05:00
Behdad Esfahbod b0e7378fa9 Reroute Mandaic shaping through the Arabic shaper
We added Mandaic joining data to the Arabic shaper a while ago, but
were not actually using the Arabic shaper for Mandaic.  Fixed.
2010-12-21 14:19:32 -05:00
Behdad Esfahbod 88e7f37488 Annotate the Arabic joining table with block information 2010-12-21 14:18:24 -05:00
Behdad Esfahbod 1482a39e56 Rename remaining metrics uses to extents 2010-12-17 20:15:05 -05:00
Behdad Esfahbod 22c537657c Rename TableDirectory to TableRecord as per OpenType 1.6 2010-12-14 23:51:29 -05:00
Behdad Esfahbod 33e8b86197 Update 'head' table to OpenType 1.6 2010-12-13 15:54:56 -05:00
Behdad Esfahbod b768333514 Disallow ligature substitutions replacing one glyph 2010-12-13 14:22:35 -05:00
Behdad Esfahbod 7eb875118d Mozilla Bug 618592 - freeze on typekit
Fix apply_lookup() for zero-input broken fonts.
2010-12-13 14:13:35 -05:00
Behdad Esfahbod bbbbe80ec9 Rename original_direction to target_direction 2010-12-07 16:22:02 -05:00
Behdad Esfahbod ee8aaf976a Fix arabic shaping of LTR text
We should ensure-direction before doing any complex work.  The only
exception is mirroring that needs to see the original / final direction,
not the native.  Handle that.
2010-12-07 16:20:42 -05:00
Behdad Esfahbod 4f9e4a40bc Fix failing checks 2010-11-22 11:30:32 -05:00
Behdad Esfahbod 9da26d6669 Remove email address from Copyright headers 2010-11-22 11:03:18 -05:00
Behdad Esfahbod a45f000192 Clarify copyright notice 2010-11-18 13:59:10 -05:00
Behdad Esfahbod 0884a8d9cd Move generated table to its own file 2010-11-17 16:58:21 -05:00
Behdad Esfahbod 14d784116b Update Arabic joining table to include Mandaic
Mandaic was added to Unicode 6.0, but the joining data was not updated.
Draft ArabicShaping.txt from 6.1 includes the joining data for Mandaic.
Use that.
2010-11-17 16:52:58 -05:00
Behdad Esfahbod 43bf2f7f1e Add OpenType script tags for Unicode 5.2 and Unicode 6.0 scripts
Based on tags proposed by Microsoft for inclusion in OpenType.
2010-11-17 14:49:40 -05:00
Behdad Esfahbod afab01cf7c Add Unicode 6.0 scripts 2010-11-17 14:35:34 -05:00
Behdad Esfahbod f234b68d18 Change HB_SCRIPT_MEITEI_MAYEK to HB_SCRIPT_MEETEI_MAYEK
The new name matches the Unicode name.  Reported by Jonathan Kew.
2010-11-17 14:25:44 -05:00
Behdad Esfahbod 300cb41417 Add XXX marks 2010-11-17 12:57:23 -05:00
Behdad Esfahbod 3a852ae7fe Save general category and combining class in the buffer for reuse 2010-11-03 16:37:24 -04:00
Behdad Esfahbod a5ab682b9b More "unreached code" warning fixes
Ugly :(.
2010-11-03 16:10:12 -04:00
Behdad Esfahbod 4e22c7e941 Add comment 2010-11-03 16:10:12 -04:00
Behdad Esfahbod 0342034d1c Pedantic 2010-11-03 16:10:12 -04:00
Behdad Esfahbod 4a2d844c2f Minor code shuffling 2010-11-03 15:28:56 -04:00
Behdad Esfahbod 11e3ec444a Fix a few more "unreachable code" warnings 2010-11-03 15:11:04 -04:00
Behdad Esfahbod 2304856340 Remove another couple lines of dead code 2010-11-03 12:47:27 -04:00
Behdad Esfahbod b8783c85ac Fix unreachable-code warning 2010-11-03 11:51:43 -04:00
Behdad Esfahbod c2709119c8 Move things around some more 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 194d4566ec Move buffer var allocation local 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 1e7c1fcbc3 Move code around 2010-11-02 19:12:59 -04:00
Behdad Esfahbod bf94b3ad22 Move some more code around 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 6334658fe7 Simplify mark skipping logic 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 8c69e65abe Rename lookup_flags to lookup_props since it's more than just flags 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 98370e89d1 WIP removing external synthesized GDEF support and implementing it internally 2010-11-02 19:12:58 -04:00
Behdad Esfahbod 870e2d6eac Remove unused function 2010-11-02 19:12:58 -04:00
Behdad Esfahbod 1115890b90 More cleanup 2010-11-02 19:12:58 -04:00
Behdad Esfahbod dbf56b1d94 More lig-id cleanup 2010-11-02 19:12:58 -04:00
Behdad Esfahbod f6a23a0b91 More removal of lig-id code from buffer 2010-11-02 19:12:58 -04:00
Behdad Esfahbod dd2ffd282c Minor renaming 2010-11-02 19:12:58 -04:00
Behdad Esfahbod fe263272a2 Move setting lig_id/component out of buffer and to the gsub code 2010-11-02 19:12:58 -04:00
Behdad Esfahbod 2e2b2480c0 Always allocate new ligature id
No practical point in reusing ligature ids.
2010-11-02 19:12:58 -04:00
Behdad Esfahbod bf07d5a29c Set component=0 for ligature glyph 2010-11-02 19:12:58 -04:00
Behdad Esfahbod 37ab877149 Remove comment 2010-11-02 19:12:58 -04:00
Behdad Esfahbod 88474c6fda Get rid of the OpenType-specific internal buffer representation
Add variant integers to buffer item types.  More cleanup coming.
2010-11-02 19:12:58 -04:00
Behdad Esfahbod 6cb8c34930 Add hb_var_int_t 2010-11-02 19:12:57 -04:00
Behdad Esfahbod f22802431a Remove trailing comma 2010-11-02 19:12:57 -04:00
Behdad Esfahbod 13528d0c78 Supposedly implement vertical support in GPOS
Not tested at all.
2010-10-27 14:09:27 -04:00
Behdad Esfahbod 9624de5b49 Clarify cursive_chain (and change its sign) 2010-10-27 13:44:59 -04:00
Behdad Esfahbod d6c9eadb88 Remove more pointless LONGTERMTODO items 2010-10-27 12:34:50 -04:00
Behdad Esfahbod e204674fe3 Rename hb_ot_layout_get_lig_carets() to hb_ot_layout_get_ligature_carets() 2010-10-27 12:32:02 -04:00
Behdad Esfahbod 3357d145f8 Implement vertical support in get_lig_carets() 2010-10-27 12:30:46 -04:00
Behdad Esfahbod 8eeed7eddc Remove LONGTERMTODO item that I'll never fix 2010-10-27 12:07:49 -04:00
Behdad Esfahbod 184a5279c6 Remove unused macro 2010-10-27 12:00:49 -04:00
Behdad Esfahbod af5d02a269 Rewrite Cursive joining to act more like other pair lookups
Look forward for next character instead of joining to the last character.
2010-10-27 11:54:26 -04:00
Behdad Esfahbod ea22c749c7 Fix Cursive positioning
Test case: "مرا" rendered using IranNastaliq.
2010-10-27 11:09:48 -04:00
Behdad Esfahbod aefdb64689 Fix segfault with Arabic combining marks 2010-10-27 10:40:39 -04:00
Behdad Esfahbod 248e3c2ba4 Oops, remove extra mask setting that broke complex shaping 2010-10-27 01:23:14 -04:00
Behdad Esfahbod 502f4cba3e Divide get_metrics into get_advance and get_extents
Graphite module not updated.
Bump version to 0.3.
2010-10-27 01:13:56 -04:00
Behdad Esfahbod ec6c0e54d3 Fix blob leak 2010-10-26 11:28:14 -04:00
Behdad Esfahbod bd7378b2ef Massage mask setting a bit more
Still finding the exact correct way the masks should be set.
2010-10-13 18:33:16 -04:00
Behdad Esfahbod 961f9baa7b Oops, actually set global mask 2010-10-13 17:17:00 -04:00
Behdad Esfahbod 39dede9fff Make sure boolean features always use value=1
Previously boolean features turned on the entire feature mask.  This is
wrong if feature is Alternate and user has provided values bigger than one.
Though, I don't think other engines support such corner cases.
2010-10-13 15:54:06 -04:00
Behdad Esfahbod 3506b2e78d Return early if mask is 0 2010-10-13 15:38:52 -04:00
Behdad Esfahbod 5c1c8c9c50 Make sure feature values don't leak out of their mask 2010-10-13 15:36:38 -04:00
Behdad Esfahbod 852912fc2d Fix applying default-value for features
Previously if a default global feature was overrided by a non-global
user feature, we were not setting any default mask for the feature,
essentially disabling the feature by default.  Fix that.
2010-10-13 15:34:50 -04:00
Behdad Esfahbod 2989be4919 Set user masks after complex masks 2010-10-13 15:18:29 -04:00
Behdad Esfahbod 3111b8a0d5 Fix stupid bug, oops 2010-10-13 10:41:53 -04:00
Behdad Esfahbod 758f68b860 Fix Arabic shaper
It's tested now.  It works!
2010-10-12 17:37:44 -04:00
Behdad Esfahbod 13403bc67a Hookup Arabic shaper!
Not tested yet.
2010-10-12 17:23:54 -04:00
Behdad Esfahbod 57ac0ecb78 Merge clearing masks and setting global masks 2010-10-12 17:07:02 -04:00
Behdad Esfahbod fc96596b7c Form clusters before setting masks 2010-10-12 17:00:40 -04:00
Behdad Esfahbod 1e80782244 Clear masks before setting them up, not after! 2010-10-12 17:00:07 -04:00
Behdad Esfahbod fd3d32d31c Add hb_ot_shape_execute()
Not public yet.
2010-10-12 16:57:47 -04:00
Behdad Esfahbod 49baa1f69e Add hb_ot_complex_shaper_t stuff and start hooking Arabic shaper up 2010-10-12 16:50:36 -04:00
Behdad Esfahbod 605ed468f3 Add hb_ot_shape_plan_t
This is the object that a separate plan/execute shaping API will use in
between the two stages.
2010-10-12 16:19:38 -04:00
Behdad Esfahbod 895fb5d364 Refactor, in a different direction 2010-10-12 16:00:21 -04:00
Behdad Esfahbod d2ba016ca1 More refactoring 2010-10-12 15:35:45 -04:00
Behdad Esfahbod 66e487dfbf Update Arabic shaping table to Unicode 6.0.0. 2010-10-12 13:51:19 -04:00
Behdad Esfahbod f4792d99ee Fix infinite loop!
Untested code is indeed buggy code.

Mozilla bug #603352.
2010-10-12 12:32:18 -04:00
Behdad Esfahbod 993d1e786a Fix missing negation in unreachable code!
Mozilla bug #603346
2010-10-12 11:17:30 -04:00
Behdad Esfahbod 52601275d5 More separation 2010-10-08 20:38:46 -04:00
Behdad Esfahbod 6b7e675862 Minor 2010-10-08 20:30:04 -04:00
Behdad Esfahbod aa9c450bb2 Enable 'rtlm' mirroring 2010-10-08 20:27:38 -04:00
Behdad Esfahbod 36925f695d Rename hb_mask_allocator_t to hb_ot_map_t
hb_ot_plan_t may be a better name, donno.
2010-10-08 20:21:09 -04:00
Behdad Esfahbod f5dd3be46b Improve checks 2010-10-08 20:16:23 -04:00
Behdad Esfahbod 5a2b0b3878 Add hb-ot-map.cc 2010-10-08 20:14:57 -04:00
Behdad Esfahbod ecc4550ed7 Fix feature overriding 2010-10-08 20:05:29 -04:00
Behdad Esfahbod 8f08c32750 Minor cleanup 2010-10-08 19:51:03 -04:00
Behdad Esfahbod a806762a31 Add hb-ot-shape-private.hh 2010-10-08 19:21:46 -04:00
Behdad Esfahbod 4924affe0f Add hb-ot-map-private.hh 2010-10-08 19:18:16 -04:00
Behdad Esfahbod a7c5046d6b Add private hb_segment_properties_t 2010-10-08 18:47:47 -04:00
Behdad Esfahbod b897c607d9 Flip the OT bit-allocation vs gsub/gpos inside-out
We now build our entire attack plan before jumping in.
2010-10-08 18:41:57 -04:00
Behdad Esfahbod e89b7d2a61 Logically separate feature collection 2010-10-08 12:29:59 -04:00
Behdad Esfahbod 5b88908f12 Minor 2010-10-08 12:23:01 -04:00
Behdad Esfahbod 5360ce0c5c Move some more code around 2010-10-07 21:21:11 -04:00
Behdad Esfahbod d9c7260788 Minor 2010-10-07 21:19:54 -04:00
Behdad Esfahbod efe0d682e8 Simplify compiling lookups 2010-10-07 21:12:46 -04:00
Behdad Esfahbod 476c94218b Rename 2010-10-07 17:47:33 -04:00
Behdad Esfahbod 34db6f031d Add XXX note 2010-10-07 01:21:19 -04:00
Behdad Esfahbod 98aa3f6544 Call hb_ot_shape_setup_lookups_complex() 2010-10-06 00:23:36 -04:00
Behdad Esfahbod f1d07885dc Rename setup_lookups() 2010-10-06 00:21:37 -04:00
Behdad Esfahbod affc5abac7 Move table_tag to hb_ot_shape_context_t 2010-10-06 00:18:16 -04:00
Behdad Esfahbod 967240dd8b Add internal hb_ot_shape_context_t 2010-10-05 23:00:05 -04:00
Behdad Esfahbod 3eb936f153 Add Arabic/Syriac/N'ko shaping logic
Not hooked up just yet.
2010-10-05 19:22:06 -04:00
Behdad Esfahbod e81d7afe6e Add hb_face_get_upem() 2010-10-04 18:18:48 -04:00
Behdad Esfahbod bd361945a8 Add API comments 2010-10-04 17:22:57 -04:00
Behdad Esfahbod 645f6f265b Add is_mutable() functions
Correspond to the make_mutable() ones.
2010-10-04 17:01:01 -04:00
Behdad Esfahbod 19c0eab8cf Add getters for all setter APIs
One in particular is not a straight getter: hb_font_unset_funcs() is
special because of the specific needs of the lifecycle management of
the user_data object.
2010-10-04 16:45:21 -04:00
Behdad Esfahbod f0feb084b0 Minor 2010-10-03 19:09:39 -04:00
Behdad Esfahbod ac0c1663fa Avoid div-by-zero, validate upem 2010-10-01 19:09:23 -04:00
Behdad Esfahbod 7f97d2cd90 Pedantic 2010-10-01 19:09:01 -04:00
Behdad Esfahbod 2841436926 Don't zero glyph advances in MarkToBase and similar lookups
See email thread "Should MarkToBase attachment zero the mark advance?"
started by Jonathan Kew on 23 August 2010 for details.
2010-10-01 18:32:45 -04:00
Behdad Esfahbod 36b3862009 One fewer cmp() implementation... 2010-09-29 12:10:24 -04:00
Behdad Esfahbod 4e573715ae Improve cmp function parameter namings and casts
No semantic change.
2010-09-28 16:28:57 -04:00
Behdad Esfahbod dca8aff246 Add comment re DejaVu Sans Mono having 'dflt' script 2010-09-28 16:25:45 -04:00
Behdad Esfahbod 9dc45401c0 Fix stupid bug in bsearch cmp function! 2010-09-28 16:23:28 -04:00
Behdad Esfahbod f2a30bd605 Remove unimplemented method hb_font_get_funcs()
Got to add a suitable replacement.
2010-09-23 10:27:08 -04:00
Behdad Esfahbod 7b9a38a112 Add test.c using public API 2010-09-22 17:42:59 -04:00
Behdad Esfahbod 9ea7368fce Fix hb_ot_layout leak 2010-09-22 17:38:44 -04:00
Behdad Esfahbod 8e577acae2 Fix blob refcounting with insane SFNT table directories 2010-09-22 17:37:02 -04:00
Behdad Esfahbod 5bd1e95236 Speedup Device table delta computation for common cases 2010-09-22 16:46:18 -04:00
Behdad Esfahbod ed4acbde9c Fix NULL dereference
Reported by Jonathan Kew.  Face table handling needs to be redone
anyway, but fix this for now.
2010-08-16 14:36:27 -04:00
Behdad Esfahbod 258305c2a5 [GPOS] Fix div-by-zero
Patch by Jonathan Kew.  Mozilla bug #465728.
2010-08-13 14:10:02 -04:00
Behdad Esfahbod 2422c4b96d Add TODO 2010-08-13 14:00:34 -04:00
Behdad Esfahbod 27f0b092a1 Logically separate feature allocation from application 2010-07-23 17:35:54 -04:00
Behdad Esfahbod 6cf63132dc Minor 2010-07-23 17:32:26 -04:00
Behdad Esfahbod 4e4ef24e46 Towards separating bit allocation from shaping 2010-07-23 17:22:11 -04:00
Behdad Esfahbod acdba3f90b Prefer C linkage 2010-07-23 15:39:27 -04:00
Behdad Esfahbod cc6d52279d De-C++ where possible
Helps with avoiding many "extern C" declarations in source files.
2010-07-23 15:00:13 -04:00
Behdad Esfahbod 0dd200d28f Header dep cleanup 2010-07-23 14:56:29 -04:00
Behdad Esfahbod fb0d252462 dos2unix 2010-07-23 14:54:22 -04:00
Behdad Esfahbod 81408cd51c Don't use "operator ="
Some compilers don't like operator = defined on members of union members
either.  Reported by Ginn Chen for Sun Studio compilers.
2010-07-23 14:46:57 -04:00
Behdad Esfahbod 4f801bd658 Mozilla bug 580233 - check for zero-length record in hb sanitizer.
Patch / report by Jonathan Kew.
2010-07-21 16:37:01 -04:00
Behdad Esfahbod 17e9ff938b Fix 64bit issues with debug prints 2010-07-15 11:21:34 -07:00
Behdad Esfahbod fd56ae4963 Don't bother sorting, it's a safe font error if the array is not sorted 2010-07-08 00:53:40 -04:00
Behdad Esfahbod cc8a4abea6 Use bsearch where applicable 2010-07-08 00:40:04 -04:00
Behdad Esfahbod 2f418f5709 Remove useless TODO 2010-07-07 22:07:40 -04:00
Behdad Esfahbod da8edbb622 Fix header 2010-06-09 07:15:39 -04:00
Behdad Esfahbod d05d13df02 Add a test for header preprocessor guards 2010-06-09 07:15:03 -04:00
Behdad Esfahbod 0f0cd9d361 Fix header tags 2010-06-09 06:32:56 -04:00
Behdad Esfahbod f2a1b411b1 Followup fix for variation-selectors
Patch from Jonathan Kew
2010-06-03 11:37:51 -04:00
Behdad Esfahbod a224b4d502 Fix skipping variation-selectors 2010-06-02 22:31:41 -04:00
Behdad Esfahbod 81a77b115d Make feature sorting stable 2010-06-01 23:03:54 -04:00
Behdad Esfahbod fdc322a820 Minor 2010-05-28 20:55:52 -04:00
Behdad Esfahbod f062ec6bb2 Further simplify mask allocator 2010-05-28 20:54:43 -04:00
Behdad Esfahbod 8af45fda47 Fix global feature handling 2010-05-28 20:41:20 -04:00
Behdad Esfahbod e04685ee7b Simplify mask allocation 2010-05-28 20:37:06 -04:00
Behdad Esfahbod 0e235d0fc9 Towards a mask allocator 2010-05-28 20:27:30 -04:00
Behdad Esfahbod 81c5e8724b Allow disabling default features
Patch from Jonathan Kew
2010-05-28 18:31:16 -04:00
Behdad Esfahbod 2163afbf35 Add note about UTF-8 decoder 2010-05-27 14:04:15 -04:00
Behdad Esfahbod 226faa58f4 Fix loop 2010-05-27 11:42:34 -04:00
Martin Hosken 56bef5680c Fixes to Python and Graphite from Martin 2010-05-27 11:41:47 -04:00
Behdad Esfahbod b485da0b71 Disable Graphite as it crashes all over the place... 2010-05-27 11:39:19 -04:00
Behdad Esfahbod 93ac709b1f Cypriot is RTL 2010-05-26 16:22:00 -04:00
Behdad Esfahbod 15c7379c16 Revert "Merge remote branch 'martin/master'"
This reverts commit 80af2812fb, reversing
changes made to c442672ec2.
2010-05-26 10:48:10 -04:00
Behdad Esfahbod 80af2812fb Merge remote branch 'martin/master' 2010-05-24 18:14:24 +01:00
Behdad Esfahbod c442672ec2 Fix struct initializers 2010-05-24 18:02:32 +01:00
Behdad Esfahbod f5ac9de259 Minor 2010-05-24 18:01:09 +01:00
Behdad Esfahbod f97bf4f812 Make sure we initialize all callbacks upon creation
Also fixes issue with unicode callbacks never being set really.
2010-05-24 17:50:19 +01:00
Behdad Esfahbod bf36a1074a Move all callback functions in a vtable structs 2010-05-24 17:46:21 +01:00
Martin Hosken 3109a86add hb-graphite now no longer has -ve advances within clusters. Fix infinite loop in tag_to_script(). python fixed to use tag_to_script and allow hbtestfont to be passed font files, where fontconfig knows about them. 2010-05-24 13:25:37 +01:00
Martin Hosken 72631c9d06 Merge branch 'master' of git://git.freedesktop.org/~behdad/harfbuzz-ng 2010-05-22 09:38:02 +01:00
Martin Hosken 1432ab15c1 Add graphical output to hbtestfont 2010-05-22 00:56:40 +01:00
Behdad Esfahbod bbc7a99d01 Move mirroring around a bit 2010-05-21 18:25:08 +01:00
Behdad Esfahbod bd0987386b Add a few more standard features 2010-05-21 18:06:35 +01:00
Behdad Esfahbod 75f3469ca6 Add note 2010-05-21 17:59:04 +01:00
Behdad Esfahbod 1094a294f6 Add rtlm 2010-05-21 17:58:20 +01:00
Behdad Esfahbod 074ea78749 Add ltra, ltrm, and rtla features 2010-05-21 17:53:10 +01:00
Behdad Esfahbod 1ce7b87c4d Cleanup bitmask allocation 2010-05-21 17:31:45 +01:00
Behdad Esfahbod dd22a8f7bf Add note 2010-05-21 16:43:17 +01:00
Martin Hosken cbd1d6a63a Rename Grxxx to HbGrxxx 2010-05-21 15:16:43 +01:00
Martin Hosken 0375bdd202 Rename classes from Grxxx to HbGrxxx 2010-05-21 15:13:26 +01:00
Behdad Esfahbod a5a72e004b Add hb-ot-shape.h, oops. 2010-05-21 15:12:52 +01:00
Behdad Esfahbod aa62a402a7 Fix Makefile to install hb-ot-shape.h 2010-05-21 14:42:11 +01:00
Behdad Esfahbod 9722b8f005 Simple renames 2010-05-21 14:37:47 +01:00
Behdad Esfahbod 02f28550d7 Graphite also forces us to link to libstdc++ currently 2010-05-21 14:37:28 +01:00
Behdad Esfahbod ca663bb23c Move main shaper code into hb_ot_shape() 2010-05-21 14:34:23 +01:00
Behdad Esfahbod 7acd232d36 Fix test failing 2010-05-21 14:20:48 +01:00
Behdad Esfahbod dd47924d88 Fix warnings 2010-05-21 14:18:08 +01:00
Behdad Esfahbod 305ba86715 Import Graphite shaping backend by Martin Hosken 2010-05-21 14:15:39 +01:00
Behdad Esfahbod 83f34677bc Add hb_tag_from_string() 2010-05-21 13:43:49 +01:00
Behdad Esfahbod 4a9a5c0b06 Don't allocate bits for features not available 2010-05-21 13:33:46 +01:00
Behdad Esfahbod e53d77142a Speed up feature mask setting
Patch from Jonathan Kew.
2010-05-21 13:32:38 +01:00
Behdad Esfahbod 4fa67f34ec Add Unicode 5.2 scripts 2010-05-21 13:29:12 +01:00
Behdad Esfahbod ee1b322100 Fix feature mask setting 2010-05-21 12:55:57 +01:00
Behdad Esfahbod b490fa3433 Add hb_ot_tag_to_script() 2010-05-21 11:15:07 +01:00
Behdad Esfahbod 280af1bddb Let hb_face_get_table() return NULL if table not found 2010-05-20 18:33:35 +01:00
Behdad Esfahbod 1cdbfd944e Fix alternate, again 2010-05-20 17:47:28 +01:00
Behdad Esfahbod fdca3d5160 Fix alternate off-by-one 2010-05-20 17:46:20 +01:00
Behdad Esfahbod b634beb39e Fix delta scale, again... 2010-05-20 17:44:52 +01:00
Behdad Esfahbod 40335d4533 Remove unused operator 2010-05-20 17:35:14 +01:00
Behdad Esfahbod f7acd8df51 Do alternate glyph selection!
Kinda hand-wavy right now.  Not tested.
2010-05-20 17:26:35 +01:00
Behdad Esfahbod 750a229455 get_table() is allowed to return NULL. Use that to simplify code 2010-05-20 16:23:27 +01:00
Behdad Esfahbod 99d9ef785f Write hb_face_create_for_data() in terms of hb_face_create_for_tables()
Fixes lack of head_table initialization in create_for_tables() also.
2010-05-20 15:47:49 +01:00
Behdad Esfahbod 6774463883 Apply user features to ranges! 2010-05-20 15:41:20 +01:00
Behdad Esfahbod 9b60233385 Add _hb_bit_storage() 2010-05-20 15:31:12 +01:00
Behdad Esfahbod 6b1b957f6d Add lookup_map 2010-05-20 15:14:44 +01:00
Behdad Esfahbod 60010a0c4d Update always-apply mask from 0xFFFF to 1
We plan to use the first bit to be always on.
2010-05-20 14:05:02 +01:00
Behdad Esfahbod 009aad5678 Invert the mask logic
Before, the mask in the buffer was inverted.  That is, a 0 bit meant
feature should be applied and 1 meant not applied, whereas in the
lookups, the logic was positive.

Now both are in sync.  When calling hb_buffer_add_glyph() manually,
the mask should be 1 instead of 0.
2010-05-20 14:00:57 +01:00
Behdad Esfahbod 7f411dbfd9 Apply user features
No ranges yet
2010-05-20 13:40:18 +01:00
Behdad Esfahbod 0db299ccad Change hb_feature_t to keep tag/int instead of string 2010-05-20 13:30:09 +01:00
Behdad Esfahbod 0a4399ca22 Fix scale issues
hb_font_set_scale() now sets the value to be used to represent a unit
pixel.  For example, if rendering a 10px font with a 26.6 representation,
you would set scale to (10 << 6).  For 10px in 16.16 you would set it to
(10 << 16).  This space should be the same space that the get_glyph_metrics
and get_kerning callbacks work in.
2010-05-19 15:45:06 -04:00
Behdad Esfahbod cf5585cfa6 Add 'head' table 2010-05-19 12:03:35 -04:00
Behdad Esfahbod e29caf3f94 Add LONGDATETIME 2010-05-19 11:47:17 -04:00
Behdad Esfahbod f415755fdf Minor 2010-05-17 15:14:14 -04:00
Behdad Esfahbod 73af7756dc Indent 2010-05-14 23:38:08 -04:00
Behdad Esfahbod 3567b87cce Add an inline version of hb_buffer_ensure() 2010-05-14 23:28:44 -04:00
Behdad Esfahbod a6a79df5fe Handle malloc failture in the buffer 2010-05-14 23:20:16 -04:00
Behdad Esfahbod ca54a12658 Minor 2010-05-14 22:25:42 -04:00
Behdad Esfahbod 910a33fe84 Update buffer docs 2010-05-14 22:13:38 -04:00
Behdad Esfahbod 36b73c80df Shortening buffer accessors: rename buffer->in_pos to buffer->i 2010-05-14 22:10:39 -04:00
Behdad Esfahbod 29427c5c51 Shortening buffer accessors: rename buffer->out_length to buffer->out_len 2010-05-14 22:08:22 -04:00
Behdad Esfahbod 6960350be9 Shortening buffer accessors: rename buffer->in_length to buffer->len 2010-05-14 22:07:46 -04:00
Behdad Esfahbod 1b621823f3 Shortening buffer accessors: rename buffer->positions to buffer->pos 2010-05-14 22:05:53 -04:00
Behdad Esfahbod 9d5e26df08 Shortening buffer accessors: rename buffer->out_string to buffer->out_info 2010-05-14 22:03:11 -04:00
Behdad Esfahbod 7e7007a1c9 Shortening buffer accessors: rename buffer->in_string to buffer->info 2010-05-14 22:02:37 -04:00
Behdad Esfahbod 8e6b6bb293 Merge buffer->out_pos and buffer->out_length 2010-05-14 21:58:22 -04:00
Behdad Esfahbod 22f668eb9a Remove the unused BUFFER macro 2010-05-14 21:41:04 -04:00
Behdad Esfahbod 7e53ebe478 Remove the IN_CURGLYPH() macro 2010-05-14 21:38:46 -04:00
Behdad Esfahbod d784da1923 Remove the IN_CURINFO() macro 2010-05-14 21:37:18 -04:00
Behdad Esfahbod 281f59b4fb Remove IN_INFO() and IN_NEXTGLYPH() macros 2010-05-14 21:34:22 -04:00
Behdad Esfahbod 6e489cdf76 Remove the IN_GLYPH() macro 2010-05-14 21:07:35 -04:00
Behdad Esfahbod 01feb74c78 Remove the IN_CLUSTER() macro 2010-05-14 21:00:08 -04:00
Behdad Esfahbod d63a1e089a Remove the IN_MASK() macro 2010-05-14 20:30:07 -04:00
Behdad Esfahbod 89e2834dab Remove the IN_LIGID() macro 2010-05-14 20:26:44 -04:00
Behdad Esfahbod 4a871041f4 Remove IN_COMPONENT() macro 2010-05-14 20:25:04 -04:00
Behdad Esfahbod 27da6dd89a Remove OUT_GLYPH() and OUT_INFO() macros 2010-05-14 20:17:50 -04:00
Behdad Esfahbod cc6ae7ff91 Fix lookahead matching. Oops! 2010-05-14 20:09:48 -04:00
Behdad Esfahbod 3109375b84 Remove POSITION() and CURPOSITION() macros 2010-05-14 19:55:27 -04:00
Behdad Esfahbod d7cfb3b2d1 s/\<context\>/c/g 2010-05-13 14:18:49 -04:00
Behdad Esfahbod f679635893 Don't use variable-length-arrays 2010-05-13 13:34:17 -04:00
Behdad Esfahbod 72071a8afa Add a few more buffer convenience methods 2010-05-13 13:22:24 -04:00
Behdad Esfahbod 11a81612e5 Minor 2010-05-13 00:01:40 -04:00
Behdad Esfahbod 3f93518a63 Improve check for internal symbols 2010-05-12 23:48:40 -04:00
Behdad Esfahbod 357d0f29c4 Make HB_PRIVATE more useful
So we can apply it to class methods also.  Not sure if that works!
2010-05-12 23:46:16 -04:00
Behdad Esfahbod 1d5e780136 Add a few other buffer methods 2010-05-12 23:43:00 -04:00
Behdad Esfahbod d0316a81f5 Add buffer->swap() 2010-05-12 23:34:52 -04:00
Behdad Esfahbod 3b649a38b5 Add check for internal symbols 2010-05-12 23:28:38 -04:00
Behdad Esfahbod eee8598d75 Hide internal symbols 2010-05-12 23:22:55 -04:00
Behdad Esfahbod 8951fc2c82 Add buffer->allocate_lig_id() 2010-05-12 23:13:39 -04:00
Behdad Esfahbod 1ce4dc95db Use bit tricks for HB_DIRECTION_IS_*
We already depend on the exact values of the direction enum
in HB_DIRECTION_REVERSE(), so we may as well use that.
2010-05-12 18:29:25 -04:00
Behdad Esfahbod 22da7fd94d Rename a few files to be C++ sources
In anticipation for buffer revamp coming.
2010-05-12 18:23:21 -04:00
Behdad Esfahbod c3df649f25 Fix comment 2010-05-11 13:54:12 -04:00
Behdad Esfahbod 281f08954a Remove obsolete friend 2010-05-11 11:37:58 -04:00
Behdad Esfahbod 70c9bfd564 Simplify PairSet 2010-05-11 00:36:30 -04:00
Behdad Esfahbod 97e7f8f305 Add CONST_FUNC annotation 2010-05-11 00:11:36 -04:00
Behdad Esfahbod 494d28ad98 Simplify likely() implementation
Shrinks .text by 1%!
2010-05-10 23:50:07 -04:00
Behdad Esfahbod 75651b2087 Fix warnings 2010-05-10 23:44:51 -04:00
Behdad Esfahbod 4c20d8c057 Sprinkle a few strategic likely()'s
Shrinks the code size by some 2% even.
2010-05-10 23:27:54 -04:00
Behdad Esfahbod 69cb28bc13 Remove a few likely()'s 2010-05-10 23:13:08 -04:00
Behdad Esfahbod 24552ecf92 Remove excess sub_format sanitize 2010-05-10 23:08:41 -04:00
Behdad Esfahbod f7adc5e9be Shrink NullPool now that we have accurate size tracking 2010-05-10 22:41:50 -04:00
Behdad Esfahbod 3d44fb6f15 Fix warning 2010-05-10 22:22:54 -04:00
Behdad Esfahbod b5db4f1e4e Clean up NO_INDEX 2010-05-10 22:22:22 -04:00
Behdad Esfahbod fe9bc070e1 Fix awful confusion between lookup format and subtable format
As reported by John Daggett.
2010-05-10 21:39:24 -04:00
Behdad Esfahbod 458ecbb60b Fix tracing order 2010-05-10 21:11:35 -04:00
Behdad Esfahbod 48146e5612 Don't fail sanitize on NULL data 2010-05-10 20:07:56 -04:00
Behdad Esfahbod d2c2ca8faf Fix comment 2010-05-10 19:58:25 -04:00
Behdad Esfahbod b435ab7e29 Fix accessing tables from NULL pointer 2010-05-10 19:51:57 -04:00
Behdad Esfahbod dacebcadae Simplify unions 2010-05-10 19:45:41 -04:00
Behdad Esfahbod fd671e0243 Remove unused macro 2010-05-10 19:02:32 -04:00
Behdad Esfahbod 0eb9fc6e37 Change DEFINE_SIZE_VAR to DEFINE_SIZE_ARRAY 2010-05-10 19:01:17 -04:00
Behdad Esfahbod 596e471aa5 Cleanup DEFINE_SIZE_VAR2 2010-05-10 18:48:29 -04:00
Behdad Esfahbod 33afa4e2dc Minor 2010-05-10 18:35:02 -04:00
Behdad Esfahbod b961518b96 Simplify array access 2010-05-10 18:20:54 -04:00
Behdad Esfahbod 54842374c2 Fix check_struct to check min_size instead of sizeof 2010-05-10 18:13:32 -04:00
Behdad Esfahbod ed07422c33 Further cleanup of sizeof 2010-05-10 18:08:46 -04:00
Behdad Esfahbod a82ef7a893 Remove CastP completely 2010-05-10 17:55:03 -04:00
Behdad Esfahbod 40cbefe858 Remove unnecessary casts 2010-05-10 17:47:22 -04:00
Behdad Esfahbod 09766b1ec5 Make StructAtOffset take a pointer
Is safer.
2010-05-10 17:36:03 -04:00
Behdad Esfahbod bea34c7cbb Further cleanup of DEFINE_SIZE 2010-05-10 17:28:16 -04:00
Behdad Esfahbod 0abcc3b48c Cleanup 2010-05-10 17:04:20 -04:00
Behdad Esfahbod b3651231bf Remove ASSERT_SIZE in favor of the safer DEFINE_SIZE_STATIC 2010-05-10 16:59:57 -04:00
Behdad Esfahbod 569da92bc6 Cleanup ASSERT_SIZE_VAR 2010-05-10 16:46:36 -04:00
Behdad Esfahbod 99bf03459f Whitespace 2010-05-06 19:37:32 -04:00
Behdad Esfahbod 65f46b0033 Simplify DEFINE_NULL_DATA
Using ::min_size.
2010-05-06 19:35:19 -04:00
Behdad Esfahbod e45d3f86f9 Start cleaning up get_size()
So we know when the size is static and when dynamic.
2010-05-06 19:33:31 -04:00
Behdad Esfahbod b157617644 Remove the last of SANITIZE macros: SANITIZE_SELF 2010-05-06 14:48:27 -04:00
Behdad Esfahbod 4f252fedc7 Remove SANITIZE macro 2010-05-06 13:30:23 -04:00
Behdad Esfahbod c2ddfd2d26 Cleanup Value casts 2010-05-06 13:21:54 -04:00
Behdad Esfahbod 41a93d2c1f Remove SANITIZE_WITH_BASE 2010-05-06 12:55:14 -04:00
Behdad Esfahbod f5fab0c718 Remove SANITIZE_MEM 2010-05-06 10:26:52 -04:00
Behdad Esfahbod 4ad2cc5dec Rename check to check_range 2010-05-06 09:24:56 -04:00
Behdad Esfahbod 1cd1e117d0 Remove SANITIZE_ARRAY 2010-05-05 20:15:14 -04:00
Behdad Esfahbod 583d7f9586 Cosmetic 2010-05-05 01:49:22 -04:00
Behdad Esfahbod 705e215268 Minor 2010-05-05 01:40:25 -04:00
Behdad Esfahbod b18eafd0f6 Minor 2010-05-05 01:39:26 -04:00
Behdad Esfahbod 4169710911 Simplify chaining 2010-05-05 01:37:58 -04:00
Behdad Esfahbod 1911b9d21b Remove APPLY_ARG_DEF and APPLY_ARG 2010-05-05 01:32:04 -04:00
Behdad Esfahbod 6c42cddfe5 Port apply to use hb_trace_t 2010-05-05 01:30:48 -04:00
Behdad Esfahbod 969c9705ae Move context_length into apply_context 2010-05-05 01:23:44 -04:00
Behdad Esfahbod 94a23aaeca Move buffer into apply_context 2010-05-05 01:13:09 -04:00
Behdad Esfahbod 63493f956d Move layout_context into apply_context 2010-05-05 01:01:05 -04:00
Behdad Esfahbod fff9aa263d Minor 2010-05-05 00:32:21 -04:00
Behdad Esfahbod 27e302dc8e I keep changing my mind about this 2010-05-05 00:26:16 -04:00
Behdad Esfahbod 39840474af Remove SANITIZE_ARG_DEF and SANITIZE_ARG 2010-05-05 00:23:19 -04:00
Behdad Esfahbod b261e2ad5c Remove trace from sanitize_shallow() 2010-05-05 00:20:16 -04:00
Behdad Esfahbod dfc8cbe854 Add hb_trace_t 2010-05-05 00:19:46 -04:00
Behdad Esfahbod 20e3dd5d29 Make sanitize_depth variable automatic and not passed through function args 2010-05-04 23:32:49 -04:00
Behdad Esfahbod 4a446ac351 Use function template for pass-thru argument 2010-05-04 22:56:20 -04:00
Behdad Esfahbod 98daaf183d Make _hb_sanitize_*() methods of the context object 2010-05-04 22:42:49 -04:00
Behdad Esfahbod bb029af943 Remove SANITIZE_THIS 2010-05-04 15:28:52 -04:00
Behdad Esfahbod 2226fc93d1 Rename SANITIZE_BASE to SANITIZE_WITH_BASE 2010-05-04 15:12:17 -04:00
Behdad Esfahbod 89da1346ec Remove SANITIZE_OBJ 2010-05-04 15:01:45 -04:00
Behdad Esfahbod 4d4cce9626 Remove SANITIZE_THIS2 2010-05-04 14:57:55 -04:00
Behdad Esfahbod 26bfcb64e4 Cosmetic 2010-05-04 14:49:45 -04:00
Behdad Esfahbod be74284673 Remove SANITIZE_THIS3 2010-05-04 14:47:05 -04:00
Behdad Esfahbod fbab9f9bd8 Remove SANITIZE_BASE2 2010-05-04 14:42:10 -04:00
Behdad Esfahbod 73c7dbf7f5 Remove SANITIZE2 2010-05-04 14:40:55 -04:00
Behdad Esfahbod c9f14687a3 Remove the NEUTER macro, move code to a method 2010-05-04 14:38:08 -04:00
Behdad Esfahbod 30fa2821c2 Make internal method private 2010-05-04 14:28:18 -04:00
Behdad Esfahbod ce5694c796 [main] Recognize Apple SFNTs 2010-05-04 14:10:18 -04:00
Behdad Esfahbod 710500a93e Comment new SFNT tags 2010-05-03 23:11:16 -04:00
Behdad Esfahbod 64d3fc8d0d Cosmetic: Rename HB_LIKELY/HB_UNLIKELY to likely/unlikely 2010-05-03 22:51:19 -04:00
Behdad Esfahbod fa3b3d5844 Mark a couple functions as inline 2010-05-03 22:47:22 -04:00
Behdad Esfahbod 6b84198f9d Merge remote branch 'jrmuizel/master' 2010-05-03 22:46:52 -04:00
Jeff Muizelaar eaf29edb8f HB_UNUSED is unneeded on static inline functions 2010-05-03 22:27:56 -04:00
Jeff Muizelaar 4ce578ed36 Include the tags from the Apple specification for TrueType fonts 2010-05-03 15:03:53 -04:00
Behdad Esfahbod 631d10b728 Remove unused method 2010-05-02 21:14:21 -04:00
Behdad Esfahbod f0abcd6940 Whitespace 2010-05-02 18:14:25 -04:00
Behdad Esfahbod a8d960bd26 [GPOS] Speedup apply_value() 2010-04-29 14:31:56 -04:00
Behdad Esfahbod 2cd1ea4411 [ft] Disallow getting the entire font data with tag=0 2010-04-29 14:16:43 -04:00
Behdad Esfahbod 33d13fdda9 Rename HB_GNUC_UNUSED -> HB_UNUSED 2010-04-29 13:56:44 -04:00
Behdad Esfahbod 7d3a126334 Define HB_FUNC for portability to non-gcc 2010-04-29 13:54:01 -04:00
Behdad Esfahbod fa030175ca [sanitize] Make debug code always available to the compiler
Such that we don't break debug build all the time.
2010-04-29 13:48:26 -04:00
Behdad Esfahbod fde6f5bd68 Convert to uppercase in hb_ot_tag_from_language() 2010-04-29 04:41:41 -04:00
Behdad Esfahbod 6f729b45b0 More contour point use 2010-04-29 03:59:06 -04:00
Behdad Esfahbod 3840b6b505 [gdef] Fix delta scale 2010-04-29 03:48:27 -04:00
Behdad Esfahbod 4ac6cc284b [gdef] Fix rounding 2010-04-29 03:48:11 -04:00
Behdad Esfahbod b52fbb1bab [gdef] Implement getting contour point 2010-04-29 03:47:00 -04:00
Behdad Esfahbod 4c5fbae011 Make sure mirroring is done in original direction
Reported by Jonathan Kew.
2010-04-29 03:39:39 -04:00
Behdad Esfahbod ce23c9234b Use BCP47 private-use tags for OpenType tag language string mapping 2010-04-29 03:31:03 -04:00
Behdad Esfahbod eaf1d9a46c Minor 2010-04-29 03:11:32 -04:00
Behdad Esfahbod 3a4784fe88 Fix bug in hb_language_from_string()
Reported by Jonathan Kew.
2010-04-29 02:58:38 -04:00
Behdad Esfahbod 602e4f8d55 Use const_cast 2010-04-29 02:28:54 -04:00
Behdad Esfahbod abff3580a5 Add const 2010-04-29 02:27:20 -04:00
Behdad Esfahbod 6617eada95 Rename apply_context -> context 2010-04-29 02:25:30 -04:00
Behdad Esfahbod b4c7fab762 Rename 2010-04-29 02:24:25 -04:00
Behdad Esfahbod 1376fb7bf9 [apply] Use a context object to reduce number of parameters passed around 2010-04-29 02:19:21 -04:00
Behdad Esfahbod 173fde7087 Further simplify tracing 2010-04-29 01:47:30 -04:00
Behdad Esfahbod bc20045743 Simplify trace code 2010-04-29 01:40:26 -04:00
Behdad Esfahbod 807c5b03a2 [sanitize] Make debug code always available to the compiler
Such that we don't break debug build all the time.
2010-04-28 23:28:07 -04:00
Behdad Esfahbod 74e313c016 [gsubgpos] Make debug code always available to the compiler
Such that we don't break debug build all the time.
2010-04-28 15:15:09 -04:00
Behdad Esfahbod 41011a6ed7 Fix compiler warning about value unused 2010-04-28 13:33:09 -04:00
Behdad Esfahbod 863df68e89 [object] Make debug code always available to the compiler
Such that we don't break debug build all the time.
2010-04-28 13:29:55 -04:00
Behdad Esfahbod 1d52151a19 Minor 2010-04-28 13:20:31 -04:00
Behdad Esfahbod 444fffb1ab [blob] Make debug code always available to the compiler
Such that we don't break debug build all the time.
2010-04-28 13:16:38 -04:00
Behdad Esfahbod ba51b25c7b Fix build. Ouch! 2010-04-28 13:10:36 -04:00
Behdad Esfahbod a92f0fda7f Fix debug build 2010-04-28 13:09:40 -04:00
Behdad Esfahbod c165f25410 [object] Actually handle malloc() failure
Caught by John Daggett.
2010-04-27 23:28:10 -04:00
Behdad Esfahbod caff7db93d Fix Device::get_size() calculation 2010-04-26 10:07:35 -04:00
Behdad Esfahbod 66d6eb30eb Rename Var to Obj 2010-04-25 23:01:45 -04:00
Behdad Esfahbod 690b919461 Remove use of flexible arrays
Also remove wrong ASSERT_SIZE that would trigger only when not using
flexible arrays (which was the case on win32, but not with gcc).
2010-04-25 22:52:22 -04:00
Behdad Esfahbod 1cebfbb063 Cleanup hb_face_create_for_data() 2010-04-23 20:49:18 -04:00
Behdad Esfahbod d6b3c83a90 Allow get_table() to return NULL 2010-04-23 19:59:53 -04:00
Behdad Esfahbod ad3653751b Typo 2010-04-23 19:43:40 -04:00
Behdad Esfahbod 990443e5f2 Remove lock_instance() 2010-04-23 17:53:32 -04:00
Behdad Esfahbod 187454c595 Add different casts from pointer and ref to avoid bugs 2010-04-23 17:44:28 -04:00
Behdad Esfahbod efb324a46f Remove GET_FOR_DATA macros
The major-version check is now handled by sanitize.  If major
doesn't match, we reject and fall back to the Null object.
2010-04-23 16:28:27 -04:00
Behdad Esfahbod f1aaa2a436 Add TODO 2010-04-23 15:19:50 -04:00
Behdad Esfahbod 33d4d4325e Zero glyph metrics before calling user callback 2010-04-23 14:56:55 -04:00
Behdad Esfahbod 4206e9511a More warning fixes 2010-04-23 14:54:01 -04:00
Behdad Esfahbod ef66ebeabc Remove unused parameter 2010-04-23 14:40:36 -04:00
Behdad Esfahbod 1d720192b1 Fix compile warnings (HB_GNUC_UNUSED) 2010-04-23 14:39:10 -04:00
Behdad Esfahbod 8dfdca599c No need to keep blob in sanitize context 2010-04-23 14:07:34 -04:00
Behdad Esfahbod 254933c397 When sanitizing, delay making writable
Before, as soon as we needed to make an edit, we tried to make the blob
writable inplace.  That grows code unnecessarily though.  We can simply
fail, make writable, then start again.  That's indeed what the fallback
was doing anyway.
2010-04-23 13:57:10 -04:00
Behdad Esfahbod 71e735e915 [blob] Fallback to copying if mprotect() fails 2010-04-23 13:48:06 -04:00
Behdad Esfahbod 1aa4666b91 Cleanup OpenTypeFontFile 2010-04-23 13:32:03 -04:00
Behdad Esfahbod ae4190cafe Properly define separate structs for TTCHeader and TTCHeaderVersion1 2010-04-23 12:33:02 -04:00
Behdad Esfahbod a065f471b3 Cleanup Extension lookups
Two things:

1. Allow nested Extension lookups.  The offset is always positive, so
it can't loop circularly.

2. Move the check for all Extension subtables having the same lookup
type to the correct place.  Before it wasn't really working.
2010-04-22 20:15:11 -04:00
Behdad Esfahbod a0bb49c583 Add comment re bsearch effect on sanitize 2010-04-22 18:47:03 -04:00
Behdad Esfahbod d632ec4000 Cosmetic 2010-04-22 18:42:05 -04:00
Behdad Esfahbod a3263aa773 Convert the last set of cast macros to templates 2010-04-22 18:42:01 -04:00
Behdad Esfahbod c38188a191 Remove unused macro 2010-04-22 16:52:09 -04:00
Behdad Esfahbod 3b2c2df41b Cleanup Extension sanitize() 2010-04-22 16:51:42 -04:00
Behdad Esfahbod 1856184b93 Fail sanitize on major version mismatch
We handle major-version differences via get_for_data(), so sanitize
should never see a major version mismatch.
2010-04-22 14:21:17 -04:00
Behdad Esfahbod df3f505dcf More sanitize cleanup 2010-04-22 14:11:33 -04:00
Behdad Esfahbod 278a91f0cd Minor cleanup of sanitize
Done with an audit of all sanitize()
2010-04-22 13:59:39 -04:00
Behdad Esfahbod 9ac7dc73bc Check for (impossible) overflow 2010-04-22 13:50:22 -04:00
Behdad Esfahbod 9fc8684fd8 Cleanup ContextFormat3 sanitize 2010-04-22 13:37:58 -04:00
Behdad Esfahbod e77302c61f Add comment 2010-04-22 13:34:00 -04:00
Behdad Esfahbod 7c469c3ca4 Minor 2010-04-22 13:26:21 -04:00
Behdad Esfahbod dc228048a8 Remove integrity check in Tag sanitize
Serves no useful purpose.
2010-04-22 13:22:41 -04:00
Behdad Esfahbod 8015a8c762 Don't sanitize raw table data
That part is performed by individual table sanitize.
2010-04-22 13:21:12 -04:00
Behdad Esfahbod c293581e96 Add coment 2010-04-22 11:20:28 -04:00
Behdad Esfahbod 1faa76c6e8 Remove unnecessary casts 2010-04-22 10:54:26 -04:00
Behdad Esfahbod 079dc40112 Avoid overflow in TableDirectory sanitize 2010-04-22 10:47:12 -04:00
Behdad Esfahbod fb5904ec93 Make casts more explicit 2010-04-22 10:43:30 -04:00
Behdad Esfahbod 565c80bd29 Make sure semicolon is expected after DEFINE_NULL_DATA() 2010-04-22 10:26:35 -04:00
Behdad Esfahbod bb1e16335e Improve Subst/Pos SubTable access and sanitize 2010-04-22 01:01:35 -04:00
Behdad Esfahbod 81f2af40f9 Simplify Extension offset now that our int types have no alignment 2010-04-22 00:58:49 -04:00
Behdad Esfahbod 19828ad42d Sanitize shallow in Lookup since the generic SubLookup has no methods 2010-04-22 00:50:19 -04:00
Behdad Esfahbod e5546a4352 Watch for overflow in Array sanitize 2010-04-22 00:48:54 -04:00
Behdad Esfahbod 4f5f1c34dd Rename const_sub_array to sub_array since all consts are implicit now 2010-04-22 00:27:39 -04:00
Behdad Esfahbod 0795b784dd Cosmetic 2010-04-22 00:23:14 -04:00
Behdad Esfahbod 2d98d3bbaa Simplify Lookup sanitize 2010-04-22 00:19:30 -04:00
Behdad Esfahbod c755cb3e3a Change header comment 2010-04-22 00:11:43 -04:00
Behdad Esfahbod 243d20e011 More cast simplification 2010-04-21 23:57:01 -04:00
Behdad Esfahbod 0dfcc13a46 Rename ConstCharP to CharP (overloaded now) 2010-04-21 23:41:26 -04:00
Behdad Esfahbod 62c0fd7573 Cleanup de-const-casting during sanitize 2010-04-21 23:30:48 -04:00
Behdad Esfahbod dd15587056 Add more comments 2010-04-21 23:13:33 -04:00
Behdad Esfahbod c85c362067 Add comment 2010-04-21 23:12:54 -04:00
Behdad Esfahbod 2467c669c2 Add comment 2010-04-21 23:11:45 -04:00
Behdad Esfahbod 29c3f5e1b6 Improve comment 2010-04-21 23:01:00 -04:00
Behdad Esfahbod 01c01618e9 Further simplify IntType struct defs 2010-04-21 22:49:56 -04:00
Behdad Esfahbod 2cb08458f6 Rename const_array() to array() (overloaded) 2010-04-21 22:37:31 -04:00
Behdad Esfahbod 2e2f43edf2 Remove ArrayAfter, use StructAfter in place 2010-04-21 22:30:36 -04:00
Behdad Esfahbod e961c86c57 Convert NEXT() and ARRAY_AFTER() macros to templates 2010-04-21 15:56:11 -04:00
Behdad Esfahbod 198facdc55 Use templates for const char * casts 2010-04-21 13:35:36 -04:00
Behdad Esfahbod 1922ffe701 Const correctness 2010-04-21 04:52:11 -04:00
Behdad Esfahbod e032ed9f75 Use templates for defining int typess 2010-04-21 04:51:55 -04:00
Behdad Esfahbod 2c9fd2adce Remove unused macro 2010-04-21 02:15:39 -04:00
Behdad Esfahbod 7a52f28117 Rename macros 2010-04-21 02:14:44 -04:00
Behdad Esfahbod ffff7dc44c Minor 2010-04-21 02:13:55 -04:00
Behdad Esfahbod f60f2166c4 Move macros around 2010-04-21 02:12:45 -04:00
Behdad Esfahbod 649a4344ca Remove unused macros 2010-04-21 02:11:59 -04:00
Behdad Esfahbod eba8b4f644 GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords 2010-04-21 02:04:02 -04:00
Behdad Esfahbod 673a4efcbc WIP 2010-04-21 02:02:57 -04:00
Behdad Esfahbod 40d73bc68d Improve comments 2010-04-21 01:55:20 -04:00
Behdad Esfahbod 394bad41a7 Remove stale TODO item 2010-04-21 01:55:17 -04:00
Behdad Esfahbod 9d3677899f Use a function template instead of struct template for Null 2010-04-21 01:55:12 -04:00
Behdad Esfahbod ffd321afd9 Simplify Tag struct 2010-04-21 01:55:09 -04:00
Behdad Esfahbod 00e23fcc6f Cosmetic 2010-04-21 01:55:03 -04:00
Behdad Esfahbod a87072db5d Fix Class operator return type 2010-04-21 01:54:57 -04:00
Behdad Esfahbod f9b3772798 Add couple consts to operators 2010-04-21 01:54:53 -04:00
Behdad Esfahbod 53d237ec63 Remove ASSERT_SIZE_DATA 2010-04-21 01:54:49 -04:00
Behdad Esfahbod 06558d2a74 Round instead of trunc 2010-04-21 01:50:15 -04:00
Behdad Esfahbod 0e206de986 Fix warnings 2010-04-21 01:48:41 -04:00
Behdad Esfahbod d5943407a4 Fix debug build 2010-04-21 01:42:11 -04:00
Behdad Esfahbod 12b27ed91d Fix leak when duplicating blob 2010-04-21 01:41:53 -04:00
Behdad Esfahbod 4b8487d83e Fix the mystery bug!
A couple bugs joined forces to exhibit the mystery behavior of
crashes / infinite loops on OS X / wrong kerning / invalid memory
access.  Pooh!

The bugs were involved:

  - Wrong pointer math with ValueRecord in PairPosFormat1

  - Fallout from avoiding flex arrays, code not correctly updated
    to remove sizeof() usage.

We strictly never use sizeof() directly now.  And the PairPos code
is cleaned up.  Should fix them all.  Bugs are:

  Bug 605655 - Pango 1.26.2 introduces kerning bug
  Bug 611229 - Pango reads from uninitialized memory
  Bug 593240 - (pangoosx) Crash / infinite loop with Mac OS X

We were also doing wrong math converting Device adjustments to
hb_position_t.  Fallout from FreeType days.  Should shift 16, not
6.  Fixed that too.

There's still another bug: we don't sanitize Device records
referenced from value records.  Fixing that also.
2010-04-21 01:41:29 -04:00
Behdad Esfahbod 9b39755d10 Typo 2010-04-15 14:00:25 -04:00
Behdad Esfahbod f85ec1c7da Cosmetic 2010-03-10 04:14:40 -05:00
Behdad Esfahbod e48ed72230 [ft] Check stream->read instead of stream->base
The former is more robust.  See discussion on freetype-devel.
2010-03-01 22:33:45 -05:00
Behdad Esfahbod 917c227500 Make blob unlocking 64bit-safe
GNOME Bug 604128 - Applications crash when displaying Hebrew characters
2010-02-23 16:47:51 -05:00
Behdad Esfahbod ecd2e996d2 Improve the alignment for NullPool 2010-02-23 02:42:00 -05:00
Behdad Esfahbod bc7830e425 Use __attribute__((unused)) only with gcc 4 and later
See discussion at:
https://bugzilla.gnome.org/show_bug.cgi?id=610183
2010-02-17 15:14:57 -05:00
Behdad Esfahbod 555d11273e [GDEF] Fix bug in building synthetic GDEF 2010-01-26 12:58:59 -05:00
Behdad Esfahbod cd11a98fa1 Fix compile with older FreeType 2009-12-20 23:05:02 +01:00
Behdad Esfahbod 7f7448a354 Indent 2009-12-20 21:42:14 +01:00
Behdad Esfahbod e70f45eb52 Revert "Fallback to 'kern' if no GPOS applied"
This reverts commit d740c8f78b.

The change is wrong.  If there is a GPOS table, we should not use 'kern'.
2009-12-20 21:26:24 +01:00
Behdad Esfahbod d740c8f78b Fallback to 'kern' if no GPOS applied 2009-12-20 21:23:56 +01:00
Behdad Esfahbod 2f78c17197 Remove glibism! 2009-12-20 21:03:11 +01:00
Behdad Esfahbod 907e67da13 Oops, add file. 2009-12-20 20:59:51 +01:00
Behdad Esfahbod 2014b8d110 Hook OpenType shaping up
Default features only for now.
2009-12-20 20:58:26 +01:00
Behdad Esfahbod 196610ba4c Pass features down 2009-12-20 19:02:23 +01:00
Behdad Esfahbod 51f141a7f3 Avoid overflow 2009-12-20 18:22:52 +01:00
Behdad Esfahbod 26d7a75752 Refactor hb_shape a bit 2009-12-20 17:58:25 +01:00
Behdad Esfahbod 001fc2d2aa Add TrueType kern support 2009-12-20 17:24:05 +01:00
Behdad Esfahbod 2c1b85cf66 Direct unicode->get_mirroring directly 2009-12-20 16:29:17 +01:00
Behdad Esfahbod 6a2ef5aa54 Do mirroring 2009-12-20 16:28:01 +01:00
Behdad Esfahbod 0465e69832 Protect against NULL funcs 2009-12-20 16:25:18 +01:00
Behdad Esfahbod 5ceefa1d8d Add hb_unicode_get_*() functions 2009-12-20 15:29:16 +01:00
Behdad Esfahbod b8a53e44ce We'll have to link to libstdc++ if linking to ICU, so disable test for now
We have to get rid of the ICU in main lib.  Still thinking about best way
to do it.
2009-12-20 14:56:25 +01:00
Behdad Esfahbod 314905d754 Explicitly track whether the buffer has positions 2009-12-20 14:50:42 +01:00
Behdad Esfahbod 314b460d8a Add HB_DIRECTION_IS_FORWARD/BACKWARD 2009-12-20 13:58:50 +01:00
Behdad Esfahbod bdd0ff5290 Make main.cc compile without glib 2009-12-15 04:07:40 -05:00
Behdad Esfahbod 807b8aa486 Another C++ strictness fix
Pango Bug 602408 - Invalid C++ code breaks compile with Sun C++ Compiler
(Error: A union member cannot have a user-defined assignment operator)

According to the bug:

C++ Programming Language by Bjarne Stroustrup: Chapter 10.4.12 forbids
explicitly using of union members with constructors, destructors or assignment
operations.

So we use a set() method instead of the assignment operator.  Ugly, but hey,
that's life.
2009-11-19 20:35:01 -05:00
Behdad Esfahbod 8b9b866d3e Fix warning 2009-11-19 20:27:57 -05:00
Behdad Esfahbod c65b26acf2 Use autoconf FLEXIBLE_ARRAY_MEMBER when available 2009-11-18 11:27:33 -05:00
Behdad Esfahbod d33f674cb7 Add Mongolian variation selectors 2009-11-18 09:47:44 -05:00
Behdad Esfahbod d6387757de Fix sanitize 2009-11-11 17:15:03 -05:00
Behdad Esfahbod 636f017e38 Remove obsolete TODO item 2009-11-10 12:56:35 -05:00
Behdad Esfahbod bf2b25dd85 Remove done item 2009-11-06 19:52:47 -05:00
Behdad Esfahbod 4a86053159 Reverse buffer at the end if RTL 2009-11-06 19:52:01 -05:00
Behdad Esfahbod ff44f88df2 Handle shaping in non-native direction 2009-11-06 19:48:16 -05:00
Behdad Esfahbod b4b4272c8d Oops, wrong change 2009-11-06 17:46:33 -05:00
Behdad Esfahbod 52ea47767c Change order of font and face for API consistency 2009-11-06 17:45:38 -05:00
Behdad Esfahbod f4f1fc970b Remove debug info that crept in 2009-11-06 17:42:38 -05:00
Behdad Esfahbod aa196d6026 [GSUB] More ligature/component fixing
We can only reuse the ligid if it belongs to a previous ligature, not a
component!
2009-11-06 17:23:31 -05:00
Behdad Esfahbod 25e7ef7046 Add _hb_buffer_add_output_glyphs() that takes codepoint_t* 2009-11-06 17:21:01 -05:00
Behdad Esfahbod 9db8ad7531 Add hb_ot_layout_position_finish()
We expect buffer to be setup with default positions before GPOS.
2009-11-06 16:47:31 -05:00
Behdad Esfahbod edb54e9aec Fix FT_Face finalizer call 2009-11-06 15:19:22 -05:00
Behdad Esfahbod 3d14528b8b Rename hb_buffer_get_len() to hb_buffer_get_length() 2009-11-06 15:13:17 -05:00
Behdad Esfahbod 1ff7775051 Minor. 2009-11-06 13:52:57 -05:00
Behdad Esfahbod 3648bdf5b2 Fix FT_Face generic finalizer 2009-11-05 20:17:53 -05:00
Behdad Esfahbod 5a11c875d8 Cosmetic 2009-11-05 20:08:17 -05:00
Behdad Esfahbod 44533e773f Fix warning 2009-11-05 19:58:02 -05:00
Behdad Esfahbod bcc0406a52 include errno.h 2009-11-05 19:54:23 -05:00
Behdad Esfahbod 799b3c375a Add debugging to object lifecycle 2009-11-05 19:37:58 -05:00
Behdad Esfahbod 25edb940ab Cosmetic 2009-11-05 19:20:06 -05:00
Behdad Esfahbod 850dc5bb55 Return 0 from get_glyph_nil 2009-11-05 18:26:52 -05:00
Behdad Esfahbod 85555a9533 Initialize font->klass 2009-11-05 18:25:56 -05:00
Behdad Esfahbod bcd26bd7b1 Add TODO item 2009-11-05 18:03:26 -05:00
Behdad Esfahbod f4281e0a92 Fix ref counting 2009-11-05 17:58:41 -05:00
Behdad Esfahbod 6358ff45ae Add hb_ft_face_create_cached 2009-11-05 17:39:16 -05:00
Behdad Esfahbod 2027f74b28 Add default positioning to hb-shape 2009-11-05 16:34:47 -05:00
Behdad Esfahbod c3f9f7e59d Fix MarkMark issue with ligid and components 2009-11-05 16:16:14 -05:00
Behdad Esfahbod d0351314cd Include stdio.h if debugging 2009-11-05 16:16:06 -05:00
Behdad Esfahbod 2e33669291 Add hb_font_get_* 2009-11-05 13:55:41 -05:00
Behdad Esfahbod 9bef3611f0 Rename [xy]_pos to [xy]_offset since we don't accumulate positions 2009-11-05 12:20:11 -05:00
Behdad Esfahbod 2daa47e9cd Cosmetic 2009-11-05 12:08:34 -05:00
Behdad Esfahbod 2f50d87368 Start filling hb_shape() in 2009-11-04 21:07:03 -05:00
Behdad Esfahbod ae070b7d39 Add script and language to buffer 2009-11-04 20:29:54 -05:00
Behdad Esfahbod 8a3511ac6c Add hb_language_t as well as language/script conversion to OT tags 2009-11-04 19:45:39 -05:00
Behdad Esfahbod 4591753ad4 Define ARRAY_LENGTH 2009-11-04 18:15:59 -05:00
Behdad Esfahbod 214ac7c1ff Another one 2009-11-04 18:12:32 -05:00
Behdad Esfahbod 1e91434569 Minor 2009-11-04 18:12:09 -05:00
Behdad Esfahbod 48de3730cd Fix previous commit, ouch! 2009-11-04 16:59:50 -05:00
Behdad Esfahbod e21899bc35 Fix array query API
The array query APIs now all do:

  - Return the total number of items
  - Take a start_offset, such that individual items can be fetched
  - The _count IN/OUT variable always has number of items written
    into the array upon return of the function
2009-11-04 16:36:14 -05:00
Behdad Esfahbod 3b59306b85 Finish FT glue. Rough and untested 2009-11-04 15:48:32 -05:00
Behdad Esfahbod 7951279b4a Implement nil font functions 2009-11-03 20:27:05 -05:00
Behdad Esfahbod 8fb3d1aa4e Start ft glue 2009-11-03 18:34:20 -05:00
Behdad Esfahbod d94647e2cd Add ICU glue 2009-11-03 16:35:10 -05:00
Behdad Esfahbod b7dd4b945b Fix hb_be_uint16() 2009-11-03 15:21:15 -05:00
Behdad Esfahbod cd7555eef2 Namespace MSVC defines in public header 2009-11-03 15:16:10 -05:00
Behdad Esfahbod 5ebabecef3 Move unicode_funcs to buffer 2009-11-03 15:15:07 -05:00
Behdad Esfahbod d5a8e46099 [Makefile] Install hb-unicode.h
Separate OT headers also.
2009-11-03 15:14:40 -05:00
Behdad Esfahbod 21d0fce3d5 Add check for not linking to libstdc++ 2009-11-03 14:28:32 -05:00
Behdad Esfahbod ca95ce460a Use the C linker, not C++ linker
Such that we don't link to libstdc++.
2009-11-03 14:18:33 -05:00
Behdad Esfahbod ffbe0a853d More MSVC fixes from Jonathan Kew 2009-11-03 10:52:45 -05:00
Behdad Esfahbod d3480ba37f Don't use zero-sized arrays
It's not part of the standard and MSVC doesn't like it.  It makes the code
a lot less elegant than it used to be, but I think it should work now.
2009-11-03 10:47:29 -05:00
Behdad Esfahbod 6bec81aa3a Cosmetic 2009-11-02 19:17:36 -05:00
Behdad Esfahbod 2f3e69f3cb Fix build without glib, again 2009-11-02 18:53:15 -05:00
Behdad Esfahbod 63a792a811 Update Makefile to build without glib 2009-11-02 18:34:26 -05:00
Behdad Esfahbod 68a2c771e2 Build without glib
Thready-safety disabled in that case, until we add support for pthread, etc.
Fun...
2009-11-02 18:31:53 -05:00
Behdad Esfahbod cc4c096a7e MSVC has no stdint.h 2009-11-02 18:14:48 -05:00
Behdad Esfahbod 9a204c7ab5 Remove use of GINT16_FROM_BE 2009-11-02 18:11:55 -05:00
Behdad Esfahbod 1f0ceeb8cf Install library 2009-11-02 16:51:24 -05:00
Behdad Esfahbod 29aa400183 Add build system 2009-11-02 16:34:59 -05:00
Behdad Esfahbod c09ed9801e [HB] Add glyph_metrics typedef 2009-11-02 14:40:48 -05:00
Behdad Esfahbod 91b1e03e03 [HB] Add point_index to get_contour_point()
Pointed out by Keith Stribley on HarfBuzz list.
2009-11-02 14:40:48 -05:00
Behdad Esfahbod aa87d95173 [HB] Fix lookup_flag ignoring
Reported by Keith Stribley on HarfBuzz list.
2009-11-02 14:40:48 -05:00
Behdad Esfahbod 52e9a71d57 [HB] Add comment 2009-11-02 14:40:48 -05:00
Behdad Esfahbod f9c0a2dad0 [HB] Fix apply_lookup() loop
Part of Bug 595539 - Regressions in rendering certain Thai sequences with
OpenType font
2009-11-02 14:40:48 -05:00
Behdad Esfahbod c0ab43c058 [HB] Fix bug in chain_context_lookup() invocations
Part of Bug 595539 - Regressions in rendering certain Thai sequences with
OpenType font
2009-11-02 14:40:48 -05:00
Behdad Esfahbod e6bd4e93bd [HB] Add TODO item 2009-11-02 14:40:48 -05:00
Behdad Esfahbod 3e2401f6c5 [HB] Rename DEBUG to TRACE where appropriate 2009-11-02 14:40:48 -05:00
Behdad Esfahbod 0535b50f43 [HB] Add GSUB/GPOS tracing 2009-11-02 14:40:48 -05:00
Behdad Esfahbod 95e202403f [HB] Allow enabling different debug facilities individually 2009-11-02 14:40:48 -05:00
Behdad Esfahbod 37006bd1bd Fix stupid array growing bug 2009-11-02 14:40:47 -05:00
Behdad Esfahbod 9897749113 [HB] Simplify counting 2009-11-02 14:40:47 -05:00
Behdad Esfahbod 81a5c4df94 [HB] Indent 2009-11-02 14:40:47 -05:00
Behdad Esfahbod c91facd83b [HB] Bug 593231 - < c99 compiler dislikes ValueRecord 2009-11-02 14:40:47 -05:00
Behdad Esfahbod f0c7540c4e Bug 592484 - invalid write in HB
Fix off-by-one.
2009-11-02 14:40:47 -05:00
Behdad Esfahbod b614b00472 [HB][glib] Make glib unicode funcs static 2009-11-02 14:40:47 -05:00
Behdad Esfahbod 8b53461304 [HB] Fix more casts 2009-11-02 14:40:47 -05:00
Behdad Esfahbod 9d2e02db74 [HB] Rename CAIRO_ in macro prefix to HB_
Hiss!
2009-11-02 14:40:46 -05:00
Behdad Esfahbod 388ad037ff [HB] Remove HB_MEMORY_MODE_READONLY_NEVER_DUPLICATE
Unlike the rest of the memory-mode enum, this one didn't only
describe the access mode of the input memory region.  Remove it.

If someone wants to inhibit duplicating, they can lock the blob
and throw away the key.

Based on mailing list discussion with Carl Worth.
2009-11-02 14:40:46 -05:00
Behdad Esfahbod 977eeb7144 [HB] s/writeable/writable/g 2009-11-02 14:40:46 -05:00
Behdad Esfahbod 2f5931e404 [HB] Hide lig_id and component members of hb_glyph_info_t 2009-11-02 14:40:46 -05:00
Behdad Esfahbod 6b600dd619 [HB] Fix typo 2009-11-02 14:40:45 -05:00
Behdad Esfahbod 32c65a5ca3 [HB] Add font funcs prototypes 2009-11-02 14:40:45 -05:00
Behdad Esfahbod 8f034d5849 Fix a few other pedantic warnings 2009-11-02 14:40:45 -05:00
Behdad Esfahbod 864e2560b6 [HB] Fix pedantic warnings 2009-11-02 14:40:45 -05:00
Behdad Esfahbod 3e09722214 [HB] Fix more wrong method signatures 2009-11-02 14:40:44 -05:00
Behdad Esfahbod 822e99fe9a [HB] Fix wrong method signature 2009-11-02 14:40:44 -05:00
Behdad Esfahbod 4ff2a58952 Bug 592194 - Fix missing _SC_PAGE_SIZE macro
Autoconfiscate a simple call to mprotect() even more.
2009-11-02 14:40:44 -05:00
Behdad Esfahbod 3c69bd46e2 [HB] Avoid int overflow in GPOS
Bug 592036 - integer overflow bug causes misrendering of Nepali characters
2009-11-02 14:40:44 -05:00
Behdad Esfahbod b2b18ef43c [HB] Simplify loop 2009-11-02 14:40:44 -05:00
Behdad Esfahbod b41f210d12 [HB] Merge mark positionin code between three types of lookups 2009-11-02 14:40:44 -05:00
Behdad Esfahbod cd33cb9ed8 [HB] More minor shuffling 2009-11-02 14:40:43 -05:00
Behdad Esfahbod 80e2aa2e1b [HB] Move code around 2009-11-02 14:40:43 -05:00
Behdad Esfahbod 3564ee5216 [HB] Correctly sanitize LigatureAttach 2009-11-02 14:40:43 -05:00
Behdad Esfahbod cb71a2fb76 [HB] Simplify MarkBase and MarkLig too 2009-11-02 14:40:43 -05:00
Behdad Esfahbod dfa54f4440 [HB] Simplify MarkMark 2009-11-02 14:40:43 -05:00
Behdad Esfahbod 815a73e420 [HB] Fix possible int overflows during sanitize 2009-11-02 14:40:43 -05:00
Behdad Esfahbod ae728e51e9 [HB] Debug output for SANITIZE_MEM() 2009-11-02 14:40:43 -05:00
Behdad Esfahbod 41895506cb [HB] Use inline function for SANITIZE_MEM() 2009-11-02 14:40:43 -05:00
Behdad Esfahbod 95528131b5 [HB] Use SANITIZE_THIS() when applicable 2009-11-02 14:40:43 -05:00
Behdad Esfahbod 5769538abf [HB] Add note about auditing sanitize code for overflows 2009-11-02 14:40:43 -05:00
Behdad Esfahbod 15232e26f4 [HB] Add empty hb_shape() API 2009-11-02 14:40:42 -05:00
Behdad Esfahbod 2866d2974b [HB] Bitfield packing *is* very delicate
Fix the second instance.
2009-11-02 14:40:42 -05:00
Behdad Esfahbod ec90ee23b2 Bug 591511 – hh-blob.c does not compile using mingw on windows
Check for sys/mman.h, not mprotect().
2009-11-02 14:40:42 -05:00
Behdad Esfahbod 12eae6d55d [HB] Fix buffer sizing issue with mingw gcc
Bit field packing is a delicate field.  Issue reported in comment 3 here:
http://bugzilla.gnome.org/show_bug.cgi?id=591511
2009-11-02 14:40:42 -05:00
Behdad Esfahbod 6936706cd7 Bug 591413 – needs to link with libstdc++
Enforce -fno-exceptions better.
2009-11-02 14:40:42 -05:00
Behdad Esfahbod c486ea9c35 Bug 591511 – hb-blob.c does not compile using mingw on windows
Only call mprotect() when available.  For optimal performance, a win32
way to make memory writeable needs to be added.
2009-11-02 14:40:42 -05:00
Behdad Esfahbod a579584594 [HB] Add comment 2009-11-02 14:40:42 -05:00
Behdad Esfahbod b6e66ee102 [HB] Always clear positions if dirty, before returning to user 2009-11-02 14:40:41 -05:00
Behdad Esfahbod e4679d9fae [HB] Fix _hb_buffer_next() when positioning
We were copying glyphs to output.  This should not happen when in
GPOS.  Back then it was fine, then some optimizations broke then
assumption.
2009-11-02 14:40:41 -05:00
Behdad Esfahbod 5ccf1ba339 [HB] Fixed signedness warnings 2009-11-02 14:40:41 -05:00
Behdad Esfahbod f71329147b [HB] Ouch. Fix compilation. 2009-11-02 14:40:40 -05:00
Behdad Esfahbod 0532ed160c [HB] Fix invalid access / overflow on x86-64
Bug 591557 – [HB] crash scrolling the evolution message list
Bug 591576 – crashed with SIGSEGV at pango
2009-11-02 14:40:40 -05:00
Behdad Esfahbod 8d70312c7b [HB] Add hb_font_funcs_make_immutable() 2009-11-02 14:40:40 -05:00
Behdad Esfahbod 3284d05da2 [HB] Add missing initializer 2009-11-02 14:40:40 -05:00
Behdad Esfahbod 081819ea8b [OT] Hookup glib unicode funcs 2009-11-02 14:40:39 -05:00
Behdad Esfahbod 49f261df2a [HB] Add hb-glib 2009-11-02 14:40:39 -05:00
Behdad Esfahbod eb27ec0cef [HB] Add hb_unicode_funcs_make_immutable() 2009-11-02 14:40:39 -05:00
Behdad Esfahbod af9e104028 [HB] Use nil unicode funcs in nil face 2009-11-02 14:40:38 -05:00
Behdad Esfahbod 48910f8f00 [HB] Initialize unicode funcs to nil getters 2009-11-02 14:40:38 -05:00
Behdad Esfahbod 04cc0a29ee [HB] Flesh out Unicode funcs 2009-11-02 14:40:38 -05:00
Behdad Esfahbod 299f08961f [HB] Implement buffer UTF-X input 2009-11-02 14:40:37 -05:00
Behdad Esfahbod 1b7b97f28a [HB] Add buffer UTF-X API 2009-11-02 14:40:37 -05:00
Behdad Esfahbod fbaf8ffa09 [HB] Add hb_buffer_reverse() 2009-11-02 14:40:37 -05:00
Behdad Esfahbod cbe5a4e08e [HB] Reuse the positions array as alt string array 2009-11-02 14:40:37 -05:00
Behdad Esfahbod 5c44188455 [HB] Start adding Unicode funcs 2009-11-02 14:40:36 -05:00
Behdad Esfahbod 20b035dad4 [HB] Put C++ inline's back
Apparetly in C++, inline means a totally different thing.
2009-11-02 14:40:36 -05:00
Behdad Esfahbod a62f776d8e [HB] Don't override CXX compiler
Just add couple of options to it (still assuming gcc)
2009-11-02 14:40:36 -05:00
Behdad Esfahbod 6bdab706ec [HB] Indent 2009-11-02 14:40:36 -05:00
Behdad Esfahbod 797724904a [HB] Remove unused code 2009-11-02 14:40:36 -05:00
Behdad Esfahbod 284899ccbe [HB] Add a NEXT() macro 2009-11-02 14:40:35 -05:00
Behdad Esfahbod 918572fc87 [HB] Remove done TODO item 2009-11-02 14:40:35 -05:00
Behdad Esfahbod 67cb8111f2 [HB] Print mark sets in main.cc 2009-11-02 14:40:35 -05:00
Behdad Esfahbod 17878255fa [HB] Remove hb_ot_layout_table_find_feature()
That function doesn't make much sense as multiple features in the table may
have the same tag.
2009-11-02 14:40:35 -05:00
Behdad Esfahbod 468769b8f5 [HB] Rename hb_ot_layout_feature_mask_t to hb_mask_t 2009-11-02 14:40:34 -05:00
Behdad Esfahbod 7f96b39a9d [HB] Fix bug introduced recently 2009-11-02 14:40:34 -05:00
Behdad Esfahbod bff3c0fde5 [HB] Remove clumsy macros and improve API 2009-11-02 14:40:34 -05:00
Behdad Esfahbod d0b657379b [HB] Fix various XXX issues 2009-11-02 14:40:34 -05:00
Behdad Esfahbod 82199868fb [HB] Remove unused var 2009-11-02 14:40:34 -05:00
Behdad Esfahbod 07e69226cb [HB] Remove another stale XXX 2009-11-02 14:40:33 -05:00
Behdad Esfahbod e605c367c5 [HB] Rebrand XXX as TODO 2009-11-02 14:40:33 -05:00
Behdad Esfahbod c5a13048e2 [HB] Remove stale XXX 2009-11-02 14:40:33 -05:00
Behdad Esfahbod 9e826ea283 [HB] Fix unaligned access 2009-11-02 14:40:33 -05:00
Behdad Esfahbod 71a8344a5e [HB] Remove a few 'inline's, though the compiler mostly ignores them 2009-11-02 14:40:32 -05:00
Behdad Esfahbod 7f3d5c8166 [HB] Fix blob to use a actual mutex 2009-11-02 14:40:32 -05:00
Behdad Esfahbod a794ebf4be [HB] Use glib again 2009-11-02 14:40:32 -05:00
Behdad Esfahbod 9b76a290a9 [HB] Improve debug output 2009-11-02 14:40:32 -05:00
Behdad Esfahbod 9faee63034 [HB] Minor 2009-11-02 14:40:32 -05:00
Behdad Esfahbod f72059ee69 [HB] Add a few TODO items 2009-11-02 14:40:32 -05:00
Behdad Esfahbod 0d77ab8a73 [HB] Improve debug output 2009-11-02 14:40:32 -05:00
Behdad Esfahbod 268cac4c9e [HB] Fix blob unlock 2009-11-02 14:40:32 -05:00
Behdad Esfahbod 7acb389569 [HB] Improve debug output and fix mprotect bug 2009-11-02 14:40:31 -05:00
Behdad Esfahbod ec9f8db0d3 [HB] Minor 2009-11-02 14:40:31 -05:00
Behdad Esfahbod d341881d9a [HB] Fix build of main.cc 2009-11-02 14:40:31 -05:00
Behdad Esfahbod 8f3be25e7e [HB] turn debugging off 2009-11-02 14:40:31 -05:00
Behdad Esfahbod 62ed5850d9 [HB] Fix another sanitize() bug; hopefully it's the last one 2009-11-02 14:40:31 -05:00
Behdad Esfahbod 90482b6817 [HB] Fix a couple other sanitize() bugs 2009-11-02 14:40:31 -05:00
Behdad Esfahbod 4f3ad9115a [HB] More debugging output 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 8cd6fa28d1 [HB] Fix fatal Sanitizer bug 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 2870ac5e5d [HB] Add missing sanitize 2009-11-02 14:40:30 -05:00
Behdad Esfahbod b28815c1f6 [HB] Add sanitize debugging facilities 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 7edb430f91 [HB] Rename open-types to open-type; beauty 2009-11-02 14:40:30 -05:00
Behdad Esfahbod f4b58d3fc2 [HB] Save edit even if not writeable 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 9bd629ccd0 [HB] Fix warnings 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 5ff4e13143 [HB] Avoid infinite recusion in Extension sanitize() 2009-11-02 14:40:30 -05:00
Behdad Esfahbod d60bb8ca2a [HB] Hook Sanitizer up. Hell's breaking loose right now 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 679f41fe61 [HB] Fix leak 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 4e8a0602bb [HB] Add Sanitizer 2009-11-02 14:40:30 -05:00
Behdad Esfahbod 2765d333e5 [HB] Add XXX 2009-11-02 14:40:30 -05:00
Behdad Esfahbod a328d66e6a [HB] Minor cleanup 2009-11-02 14:40:29 -05:00
Behdad Esfahbod 577c111649 [HB] Shuffle code around 2009-11-02 14:40:29 -05:00
Behdad Esfahbod b1e187fc63 [HB] More sanitize infrastructure 2009-11-02 14:40:29 -05:00
Behdad Esfahbod b508e5ccd5 [HB] open-file sanitize() 2009-11-02 14:40:29 -05:00
Behdad Esfahbod 738c54d9ca [HB] Tag sanitize() 2009-11-02 14:40:29 -05:00
Behdad Esfahbod e49a84c9e3 [HB] GDEF sanitize() 2009-11-02 14:40:29 -05:00
Behdad Esfahbod 18939487d0 [HB] Fix Extension sanitize() 2009-11-02 14:40:29 -05:00
Behdad Esfahbod f2be750981 [HB] Remove stale TODO 2009-11-02 14:40:29 -05:00
Behdad Esfahbod ac26e2a838 [HB] Hookup NEUTER() 2009-11-02 14:40:29 -05:00
Behdad Esfahbod 15164d9258 [HB] Fix mix warnings 2009-11-02 14:40:29 -05:00
Behdad Esfahbod 42b778f89e [HB] GPOS sanitize() 2009-11-02 14:40:29 -05:00
Behdad Esfahbod dc9c4d93cd [HB] Sanitize DeviceTable 2009-11-02 14:40:28 -05:00
Behdad Esfahbod ad3a3cd495 [HB] More casts 2009-11-02 14:40:28 -05:00
Behdad Esfahbod 95639fccc1 [HB] Fix couple of bugs 2009-11-02 14:40:28 -05:00
Behdad Esfahbod 2b5a59c277 [HB] More cast cleanup 2009-11-02 14:40:28 -05:00
Behdad Esfahbod 196598bbcc [Hb] Use reinterpret casts instead of direct casts to char * 2009-11-02 14:40:28 -05:00
Behdad Esfahbod 92b5dd8e71 [HB] Merge more templates 2009-11-02 14:40:28 -05:00
Behdad Esfahbod e6ab2c59ba [HB] Simplify indirect sanitize() 2009-11-02 14:40:28 -05:00
Behdad Esfahbod 29d8644a31 [HB] Finish GSUB sanitize() 2009-11-02 14:40:28 -05:00
Behdad Esfahbod cf086adca1 [HB] Add comment 2009-11-02 14:40:28 -05:00
Behdad Esfahbod a97ce570ab [HB] Optimize sanitize() 2009-11-02 14:40:28 -05:00
Behdad Esfahbod cd3827ee56 [HB] More sanitize() 2009-11-02 14:40:28 -05:00
Behdad Esfahbod 70de50c11e [HB] Start sanitize() 2009-11-02 14:40:27 -05:00
Behdad Esfahbod 5fc22e647c [HB] Remove use of typeof() 2009-11-02 14:40:27 -05:00
Behdad Esfahbod 70e0f2a75e [HB] Make it all work again 2009-11-02 14:40:27 -05:00
Behdad Esfahbod 23c86aa000 [HB] Use face_t directly instead of ot_layout_t 2009-11-02 14:40:27 -05:00
Behdad Esfahbod fc6c94002d [HB] Simplify sub-blob support 2009-11-02 14:40:27 -05:00
Behdad Esfahbod a26442437a [HB] Add sub-blobs 2009-11-02 14:40:27 -05:00
Behdad Esfahbod b28e21b90c [HB] Rename hb-font.c to hb-font.cc 2009-11-02 14:40:27 -05:00
Behdad Esfahbod 5f5b24f99f [OT] Rename C++ header files from *.h to *.hh 2009-11-02 14:40:27 -05:00
Behdad Esfahbod 2098a021a8 [HB] Move OT file handling out of ot-layout 2009-11-02 14:40:26 -05:00
Behdad Esfahbod 0ead481a5a [HB] Port ot-layout to new public API 2009-11-02 14:40:26 -05:00
Behdad Esfahbod 678bed4333 [HB] Add top-level header files 2009-11-02 14:40:26 -05:00
Behdad Esfahbod 2c80296aa5 [HB] Add XXX marks 2009-11-02 14:40:26 -05:00
Behdad Esfahbod c46f8efd6d [HB] Rename _duplicate to _copy
To be in line with cairo
2009-11-02 14:40:26 -05:00
Behdad Esfahbod f1ebe44985 [HB] Cleanup TODO 2009-11-02 14:40:26 -05:00
Behdad Esfahbod f1322e52d5 [HB] Cleanup public buffer structs 2009-11-02 14:40:26 -05:00
Behdad Esfahbod 6d5bb18e93 [OT] Match struct with HB's 2009-11-02 14:40:25 -05:00
Behdad Esfahbod 11fbb5487d [HB] Port buffert to new object API 2009-11-02 14:40:25 -05:00
Behdad Esfahbod 0cc7bc59ea [HB] Move typedef's around 2009-11-02 14:40:25 -05:00
Behdad Esfahbod a12dd324a3 [HB] Add get_reference_count() 2009-11-02 14:40:25 -05:00
Behdad Esfahbod baec684fde [HB] Remove glib dependency 2009-11-02 14:40:25 -05:00
Behdad Esfahbod df66028781 [HB] Assorted compiler macros 2009-11-02 14:40:25 -05:00
Behdad Esfahbod ba8d94ce33 [HB] Simplify object creation 2009-11-02 14:40:25 -05:00
Behdad Esfahbod c62b503770 [HB] Add abstract font and face API
Not used yet.
2009-11-02 14:40:25 -05:00
Behdad Esfahbod 35a7383c61 [HB] Simplify refcounting functions 2009-11-02 14:40:24 -05:00
Behdad Esfahbod 23af767a44 [HB] Fix for dfont's with multiple faces 2009-11-02 14:40:24 -05:00
Behdad Esfahbod e97a95f2ea [HB] Use calloc instead of malloc where feasible 2009-11-02 14:40:24 -05:00
Behdad Esfahbod 0090dc0f67 [HB] Remove hinting setting and use ppem==0 to mean "no hinting" 2009-11-02 14:40:24 -05:00
Behdad Esfahbod f0954d1e08 [HB] Add a "blob" manager 2009-11-02 14:40:24 -05:00
Behdad Esfahbod 02a370697d [HB] Move direction to buffer 2009-11-02 14:40:23 -05:00
Behdad Esfahbod 7cda6fa24c [HB] Rename internal vars 2009-11-02 14:40:23 -05:00
Behdad Esfahbod b196e6f274 [HB] Fix buffer enlargement. Ouch 2009-11-02 14:40:23 -05:00
Behdad Esfahbod f9cd1014f8 Apply patch from Jonathan Kew 2009-11-02 14:40:23 -05:00
Behdad Esfahbod 2ebb89d63d Revert "XX"
This reverts commit c939f6aff405ca7b10b1f1538f46148bff719fcb.
2009-11-02 14:40:22 -05:00
Behdad Esfahbod 55520d2af1 XX 2009-11-02 14:40:22 -05:00
Behdad Esfahbod f53d434b91 [GPOS] Advance buffer cursor in SinglePos lookups. Ouch! 2009-11-02 14:40:22 -05:00
Behdad Esfahbod e35bbd570a [HB] Improve buffer. Don't dup out buffer unless out is longer than in
That is, we work in-place even for ligatures now.
2009-11-02 14:40:22 -05:00
Behdad Esfahbod 6734ed4b6b [GPOS] Fix property checking 2009-11-02 14:40:21 -05:00
Behdad Esfahbod cc83ae1248 [GPOS] Add vertical TODO 2009-11-02 14:40:21 -05:00
Behdad Esfahbod b69d38e7ea [HB] Remove useless include 2009-11-02 14:40:21 -05:00
Behdad Esfahbod 6c8108cb58 [GPOS] Remove unused variables 2009-11-02 14:40:21 -05:00
Behdad Esfahbod 09c292e3b6 [HB] Fix glyph properties 2009-11-02 14:40:21 -05:00
Behdad Esfahbod 64e33f008f [GPOS] Fix PairPos signedness 2009-11-02 14:40:20 -05:00
Behdad Esfahbod 80ea5bd10e [GPOS] Fix mark matching 2009-11-02 14:40:20 -05:00
Behdad Esfahbod 4189b92aaa [HB] When looking back/forward, skip marks only 2009-11-02 14:40:20 -05:00
Behdad Esfahbod 1246e41021 [GDEF] Support MarkFilteringSets 2009-11-02 14:40:20 -05:00
Behdad Esfahbod 5130c35e93 [HB] Simplify MarkAttachmentType handling 2009-11-02 14:40:20 -05:00
Behdad Esfahbod e4b92b85a7 [HB] Support parsing MarkFilteringSets introduced in OpenType 1.6 2009-11-02 14:40:19 -05:00
Behdad Esfahbod 515ce4ceb2 [HB] More de-C++'ization 2009-11-02 14:40:19 -05:00
Behdad Esfahbod d7df42d7ee [HB] Start MarkFilteringSet support 2009-11-02 14:40:19 -05:00
Behdad Esfahbod 62964afcec [HB] Implement get_lig_carets() 2009-11-02 14:40:19 -05:00
Behdad Esfahbod 79420ad9ca [HB] Add get_attach_points() 2009-11-02 14:40:19 -05:00
Behdad Esfahbod 855720ca47 [HB] Remove more macros 2009-11-02 14:40:19 -05:00
Behdad Esfahbod c968fc2dc8 [HB] More buffer cleanup 2009-11-02 14:40:19 -05:00
Behdad Esfahbod 88a5f5a49b [HB] Cleanup buffer 2009-11-02 14:40:19 -05:00
Behdad Esfahbod 347f0b8621 [HB] Clean more 2009-11-02 14:40:18 -05:00
Behdad Esfahbod d9d2a07f4a [HB] Remove one XXX, add another 2009-11-02 14:40:18 -05:00
Behdad Esfahbod 6c78683c04 [HB] Update copyright years 2009-11-02 14:40:18 -05:00
Behdad Esfahbod 4497af0069 [HB] Would have helped if I actually knew C++ before using it... 2009-11-02 14:40:18 -05:00
Behdad Esfahbod cc6c644ff2 [HB] More cleanup 2009-11-02 14:40:18 -05:00
Behdad Esfahbod 20cc86b359 [HB] Simplify Tag 2009-11-02 14:40:18 -05:00
Behdad Esfahbod 3ec0092c5e [HB] Simplify more 2009-11-02 14:40:18 -05:00
Behdad Esfahbod 6ad8d5f3c7 [HB] Simplify some basic things 2009-11-02 14:40:18 -05:00
Behdad Esfahbod f96ffd43bc [HB] simplify macros 2009-11-02 14:40:18 -05:00
Behdad Esfahbod 8e7b30782a [HB] Update text files 2009-11-02 14:40:18 -05:00
Behdad Esfahbod fa7d472494 [HB] Remove stale makefile.msc too 2009-11-02 14:40:17 -05:00
Behdad Esfahbod da2c52abcd [HB] Remove old code!
Goodbye 16 thousand lines of ten-year old code!
2009-11-02 14:40:17 -05:00
Behdad Esfahbod e5372f1621 [HB] Remove stale TODO mark 2009-11-02 14:40:17 -05:00
Behdad Esfahbod 96908b8984 [HB] Add FixedVersion cast to int 2009-11-02 14:40:17 -05:00
Behdad Esfahbod 957740dd25 [HB] Simplify tag 2009-11-02 14:40:17 -05:00
Behdad Esfahbod 87fcdcbe36 [HB] Remove unused data types 2009-11-02 14:40:17 -05:00
Behdad Esfahbod 5876bf1b73 [HB] Simplify version check in GSUB/GPOS 2009-11-02 14:40:17 -05:00
Behdad Esfahbod 212aba6189 [HB] Check for GDEF/GSUB/GPOS versions 2009-11-02 14:40:17 -05:00
Behdad Esfahbod a21b5062cc [HB] Minor 2009-11-02 14:40:17 -05:00
Behdad Esfahbod a080b1cc2f [HB] Add TODO items 2009-11-02 14:40:17 -05:00
Behdad Esfahbod e4efdd80a8 [GDEF] Add some get_carret_value() code 2009-11-02 14:40:17 -05:00
Behdad Esfahbod 9b006bc032 [GPOS] MarkLigPosFormat1
GPOS is complete now!  Yay!
2009-11-02 14:40:16 -05:00
Behdad Esfahbod 923923feb2 [HB] Remove apply_subtables() again 2009-11-02 14:40:16 -05:00
Behdad Esfahbod d468f9af5b [HB] Share Extension lookup code between GSUB and GPOS 2009-11-02 14:40:16 -05:00
Behdad Esfahbod 498f1909e0 [GPOS] Remove printf. MarkMarkPos1 is working
The "bug" was in the font.
2009-11-02 14:40:16 -05:00
Behdad Esfahbod c7d457aa3a [HB] Ouch. Add files. 2009-11-02 14:40:16 -05:00
Behdad Esfahbod fe550f4dd8 [GPOS] MarkMarkPosFormat1
Still not quite working.
2009-11-02 14:40:16 -05:00
Behdad Esfahbod 357ccde36b [GPOS] MarkBasePosFormat1 2009-11-02 14:40:16 -05:00
Behdad Esfahbod 377bfc5860 [GPOS] Implement MarkArray interface 2009-11-02 14:40:16 -05:00
Behdad Esfahbod c18ec2b1d7 [GPOS] Implement Device support in AnchorFormat3 2009-11-02 14:40:15 -05:00
Behdad Esfahbod fca6a0d158 [GPOS] Remove apply_value() return value 2009-11-02 14:40:15 -05:00
Behdad Esfahbod fb3b5ccfef [GPOS] Start MarkBasePosFormat1 2009-11-02 14:40:15 -05:00
Behdad Esfahbod ee8776d9e0 [HB] Add TODO item 2009-11-02 14:40:15 -05:00
Behdad Esfahbod c6456ca5cf [HB] Add TODO item 2009-11-02 14:40:15 -05:00
Behdad Esfahbod 3015c41751 [HB] Remove last dependence on the old code base! 2009-11-02 14:40:15 -05:00
Behdad Esfahbod 5c0adce1cc [HB] Rename harfbuzz-buffer to hb-buffer 2009-11-02 14:40:15 -05:00
Behdad Esfahbod b857b49c82 [HB] Remove all references to the old code! 2009-11-02 14:40:15 -05:00
Behdad Esfahbod e1593a6e62 [GPOS] Finally it's working, up to Cursive
Wow, IranNastaliq renders perfectly again!
2009-11-02 14:40:15 -05:00
Behdad Esfahbod 0f7e6b2cea [GPOS] Fix more brokenness 2009-11-02 14:40:15 -05:00
Behdad Esfahbod ff05d257dd [HB] Move lookup types enum into subtable class 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 263bbef767 [GDEF] Simplify Device access 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 60d77cf05f [HB] Indentation 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 90de3dfff9 [HB] Remove unused methods 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 4c44d830d7 [HB] Indentation 2009-11-02 14:40:14 -05:00
Behdad Esfahbod d18fd8e3f7 [GPOS] CursivePosFormat1 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 70632add33 [GSUB] PairPosFormat2 2009-11-02 14:40:14 -05:00
Behdad Esfahbod b24ecbadf4 [GPOS] PairPosFormat1 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 056c7ec1ae [GPOS] Start filling apply() functions in 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 4fa77d3c43 [HB] Use enums 2009-11-02 14:40:14 -05:00
Behdad Esfahbod 6b54c5d044 [HB] More reference cast simplification 2009-11-02 14:40:14 -05:00
Behdad Esfahbod eb0dfc830e [HB] Rename LOOKUP_ARGS to APPLY_ARGS 2009-11-02 14:40:13 -05:00
Behdad Esfahbod 2a8e6accdf [HB] Internally rename position() and substitute() to apply() 2009-11-02 14:40:13 -05:00
Behdad Esfahbod f6c8a6eacf [HB] Simplify casts 2009-11-02 14:40:13 -05:00
Behdad Esfahbod 9c42f05a5c Switch Pango to new, defunt, GPOS 2009-11-02 14:40:13 -05:00
Behdad Esfahbod 5e5eb0573f [HB] Start GPOS! 2009-11-02 14:40:13 -05:00
Behdad Esfahbod 64e67f7599 [GSUB] Minor 2009-11-02 14:40:13 -05:00
Behdad Esfahbod d79cae0b4e [HB] Minor 2009-11-02 14:40:13 -05:00
Behdad Esfahbod 8533bb985e [GSUB] Protect against mismatching Extension subtable types 2009-11-02 14:40:13 -05:00
Behdad Esfahbod 969afd706e [GSUB] Implement ReverseChainSingleSubst
GSUB is done!
2009-11-02 14:40:13 -05:00
Behdad Esfahbod 4acaffd786 [HB] Don't use G_LIKELY! 2009-11-02 14:40:13 -05:00
Behdad Esfahbod 3dcb12f171 [GSUB] Oops, fix Extension check 2009-11-02 14:40:12 -05:00
Behdad Esfahbod 2e8fb6c38d [HB] Tweak some constants and fix Coverage 2009-11-02 14:40:12 -05:00
Behdad Esfahbod d6aae5f5ca [HB] Cleanup TODOs 2009-11-02 14:40:12 -05:00
Behdad Esfahbod 122f21fb9a [GSUB] Fix context_length handling in Ligature too 2009-11-02 14:40:12 -05:00
Behdad Esfahbod 47958dea21 [HB] Minor cleanup 2009-11-02 14:40:12 -05:00
Behdad Esfahbod e73a0c2a90 [HB] Correctly skip glyphs when applying (Chain)Context lookups 2009-11-02 14:40:12 -05:00
Behdad Esfahbod 7cff75babd [HB] Fix context_length checking 2009-11-02 14:40:12 -05:00
Behdad Esfahbod d0ba055700 [HB] ChainContext complete
IranNastaliq renders perfectly again!
2009-11-02 14:40:12 -05:00
Behdad Esfahbod e072c24e79 [HB] Implement backtrack matching 2009-11-02 14:40:12 -05:00
Behdad Esfahbod 02e1e5c63f [HB] One more step to go, for fully working GSUB and ChainContext 2009-11-02 14:40:12 -05:00
Behdad Esfahbod f14c2b7acf [HB] Further modularize Context matching 2009-11-02 14:40:12 -05:00
Behdad Esfahbod 13ed4405c5 [HB] A step closer to working ChainContext 2009-11-02 14:40:11 -05:00
Behdad Esfahbod e8cbaaf6d5 [HB] Add HeadlessArrayTo<> 2009-11-02 14:40:11 -05:00
Behdad Esfahbod dcb6b60254 [HB] More template goodness 2009-11-02 14:40:11 -05:00
Behdad Esfahbod aa3d7adca5 [HB] More churning towards ChainContext lookups 2009-11-02 14:40:11 -05:00
Behdad Esfahbod 48f16ed96a [HB] Towards sharing Context and ChainContext code 2009-11-02 14:40:11 -05:00
Behdad Esfahbod 6cf2a52593 [HB] Add check to avoid infinite recursion 2009-11-02 14:40:11 -05:00
Behdad Esfahbod 887c4b4416 [HB] Cosmetic 2009-11-02 14:40:11 -05:00
Behdad Esfahbod ca5290f499 [HB] Start ChainContext and ReverseChainSingleSubst lookups 2009-11-02 14:40:11 -05:00
Behdad Esfahbod 433f4aea74 [HB] Remove stale TODO 2009-11-02 14:40:11 -05:00
Behdad Esfahbod 6f20f72e9c [HB] Split Layout-common tables into new files 2009-11-02 14:40:11 -05:00
Behdad Esfahbod f45107fe09 [HB] More shuffling 2009-11-02 14:40:11 -05:00
Behdad Esfahbod f8dc67b3c2 [HB] Cleanup format unions 2009-11-02 14:40:10 -05:00
Behdad Esfahbod da1097bc3b [HB] Use four bytes for Null Tag, not 5 2009-11-02 14:40:10 -05:00
Behdad Esfahbod 19fc24f268 [HB] Couple size checks 2009-11-02 14:40:10 -05:00
Behdad Esfahbod ecf17e849d [HB] Propagate property of first glyph
This slightly grows code size.
2009-11-02 14:40:10 -05:00
Behdad Esfahbod eca8e33710 [GSUB] Further optimize the main switch 2009-11-02 14:40:10 -05:00
Behdad Esfahbod 13068232e7 [HB] Unify first glyph property checking 2009-11-02 14:40:10 -05:00
Behdad Esfahbod 66bf7ce4e3 [HB] Move Context matching logic out of GSUB 2009-11-02 14:40:10 -05:00
Behdad Esfahbod a1625528cd [GSUB] Unify ContextSubst matching 2009-11-02 14:40:10 -05:00
Behdad Esfahbod c36238bea4 [HB] Renames 2009-11-02 14:40:09 -05:00
Behdad Esfahbod 15c3e75b39 [HB] Simplify buffer 2009-11-02 14:40:09 -05:00
Behdad Esfahbod 36f78446ce [HB] Add TODO item 2009-11-02 14:40:09 -05:00
Behdad Esfahbod ee58aaebd2 [HB] Update copyright years 2009-11-02 14:40:09 -05:00
Behdad Esfahbod f4c9514935 [HB] Simplify more arrays 2009-11-02 14:40:09 -05:00
Behdad Esfahbod c9a7cbe9cb [HB] Use ArrayOf<> in GSUB 2009-11-02 14:40:09 -05:00
Behdad Esfahbod 5f810363ac [HB] Add ArrayOf<> 2009-11-02 14:40:09 -05:00
Behdad Esfahbod 238c855fcd [HB] Use OffsetTo<> for Coverage 2009-11-02 14:40:09 -05:00
Behdad Esfahbod 3d54bd1293 [HB] Use OffsetTo<> in more places 2009-11-02 14:40:09 -05:00
Behdad Esfahbod 9e4d9d7b27 [HB] Add OffsetTo template. 2009-11-02 14:40:09 -05:00
Behdad Esfahbod e07f89295b [HB] Automate int-type size assertion 2009-11-02 14:40:09 -05:00
Behdad Esfahbod 8b83580331 [HB] Use templates for Null objects
Also use a common pool for all nul-content ones.
2009-11-02 14:40:08 -05:00
Behdad Esfahbod 6e13d41401 [HB] Remove obsolete comment 2009-11-02 14:40:08 -05:00
Behdad Esfahbod 9f721cf380 [GSUB] Start ChainContextSubst 2009-11-02 14:40:08 -05:00
Behdad Esfahbod 7fca9e5245 [GSUB] Implement ContextSubstFormat3 2009-11-02 14:40:08 -05:00
Behdad Esfahbod 1ff926a568 [GSUB] Implement ContextSubstFormat2 2009-11-02 14:40:08 -05:00
Behdad Esfahbod fc36d9453e [GSUB] Add GSUB::substitute_lookup() 2009-11-02 14:40:08 -05:00
Behdad Esfahbod c43562b2a7 [GSUB] Finish ContextSubstFormat1 2009-11-02 14:40:08 -05:00
Behdad Esfahbod 5ee2189622 [HB] Fix typo 2009-11-02 14:40:08 -05:00
Behdad Esfahbod 6b59c9b445 [HB] Add TODO item 2009-11-02 14:40:08 -05:00
Behdad Esfahbod c5419b6cf2 [HB] Remove DEFINE_NON_INSTANTIABLE 2009-11-02 14:40:08 -05:00
Behdad Esfahbod 0dff25f036 [HB] Remove get_size() 2009-11-02 14:40:07 -05:00
Behdad Esfahbod 25c6c9a3f6 [GSUB] ContextSubst format 1 2009-11-02 14:40:07 -05:00
Behdad Esfahbod f702295103 [GSUB] Shuffle 2009-11-02 14:40:07 -05:00
Behdad Esfahbod a83e08f872 [HarfBuzz] Start a TODO file 2009-11-02 14:40:07 -05:00
Behdad Esfahbod eed05b04eb [GSUB] minor 2009-11-02 14:40:07 -05:00
Behdad Esfahbod cdb317bc4e [GSUB] Towards Context subtitutes 2009-11-02 14:40:07 -05:00
Behdad Esfahbod c9c6a78aec [GSUB] Minor refactoring 2009-11-02 14:40:07 -05:00
Behdad Esfahbod bb3899a579 [GSUB] Implement ligature substitutions 2009-11-02 14:40:07 -05:00
Behdad Esfahbod 38b011a293 [GSUB] Hook new GSUB up in Pango 2009-11-02 14:40:07 -05:00
Behdad Esfahbod a84e71ad11 [GSUB] Start Ligature subtable support 2009-11-02 14:40:07 -05:00
Behdad Esfahbod 52886ca56b [GSUB] Implement Alternate subtables 2009-11-02 14:40:06 -05:00
Behdad Esfahbod 4f27ce7e02 [GSUB] Implement Extension subtables 2009-11-02 14:40:06 -05:00
Behdad Esfahbod 83e61ff470 [GSUB] Fix reverse lookup loop like we did in the old code before 2009-11-02 14:40:06 -05:00
Behdad Esfahbod 5a0b791184 [harfbuzz/GSUB] towards a partially working GSUB 2009-11-02 14:40:06 -05:00
Behdad Esfahbod 30bd763fa2 Implement the first substitute() 2009-11-02 14:40:06 -05:00
Behdad Esfahbod ce48f03946 Merge harfbuzz-ng 2009-11-02 14:38:33 -05:00
Behdad Esfahbod 0e13beeb93 Use git.mk 2009-04-17 17:39:15 -04:00
Behdad Esfahbod 2d15e72c75 Give it a start at GSUB 2009-04-15 19:50:16 -04:00
Behdad Esfahbod 9d870f2a55 Bug 577952 – Error loading {GDEF,GSUB,GPOS} table 0x6EAD
Detect TrueType Collections by checking the font data header instead
of checking for "face->num_faces >1".
2009-04-09 13:30:26 -04:00
Behdad Esfahbod d49caf1f77 [opentype] Protect against illegal access for arrays of length zero 2009-03-02 15:16:11 +03:30
Behdad Esfahbod 66871797af [opentype] Use size_t instead of uint for malloc wrappers 2009-03-02 14:20:20 +03:30
Behdad Esfahbod 3664e59c52 Fix Bug 572529 – Poor -I ordering can break build 2009-03-02 11:09:29 +03:30
Behdad Esfahbod aca4d11388 Allocate all array rows in a single ALLOC call. Saves over 100 alloc calls
2009-01-31  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-gpos.c (Load_Mark2Array),
        (Free_Mark2Array):
        Allocate all array rows in a single ALLOC call.  Saves over 100
        alloc calls when loading DejaVu Sans,
2009-02-02 00:13:07 +00:00
Behdad Esfahbod c561d69c72 Remove ClassDef->Defined field. This is the comment accompanying it:
2009-01-29  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-open.h:
        * pango/opentype/harfbuzz-gdef.c (Make_ClassRange),
        (HB_GDEF_Build_ClassDefinition):
        * pango/opentype/harfbuzz-gpos.c (Load_PosClassRule),
        (Load_ChainPosClassRule):
        * pango/opentype/harfbuzz-gsub.c (Load_SubClassRule),
        (Load_ChainSubClassRule):
        * pango/opentype/harfbuzz-open.c (Load_ClassDef1),
        (Load_ClassDef2), (_HB_OPEN_Load_ClassDefinition),
        (_HB_OPEN_Load_EmptyClassDefinition),
        (_HB_OPEN_Free_ClassDefinition):
        Remove ClassDef->Defined field.  This is the comment accompanying it:

          The `Defined' field is not defined in the OpenType specification
          but apparently needed for processing fonts like trado.ttf: This
          font refers to a class which contains not a single element.  We
          map such classes to class 0.

        The comment is correct that trado.ttf (MS Traditional Arabic) uses
        such classes.  However, in my testing I couldn't identify any
        problems with the font if the special handling is removed.  I also
        processed as many fonts as I could get my hand on and trado.ttf was
        the only not-totally-broken font hitting the special-case code.
        DejaVu fonts hit it too, but I'm sure they do not require the
        special-handling code.  Most probably, that code introduces bugs
        in them.

        The special-casing was consuming lots of memory.  EIGHT MEGABYTES
        for loading DejaVu Sans!  While this could be complete fixed, I
        decided to remove the special-handling code altogether.  I don't
        think it will make any real difference, and if it does, we'll fix
        fonts.  Such hacks will not be in harfbuzz-ng anyway.

        Bug originally reported by nsf.
2009-01-29 09:20:08 +00:00
Behdad Esfahbod 9372edd6f0 Use calloc(), instead of malloc()ing and memset()ing.
2009-01-29  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-impl.c (_hb_alloc): Use calloc(),
        instead of malloc()ing and memset()ing.
2009-01-29 09:19:56 +00:00
Behdad Esfahbod 94c21d26ba Remove old cruft.
2009-01-29  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-dump-main.c (main): Remove old cruft.
2009-01-29 09:19:43 +00:00
Behdad Esfahbod 0a47c4f78e Allocate all array rows in a single ALLOC call. Saves over 2000 alloc
2009-01-29  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-gpos.c (Load_BaseArray), (Free_BaseArray):
        Allocate all array rows in a single ALLOC call.  Saves over 2000
        alloc calls when loading DejaVu Sans!
2009-01-29 09:19:20 +00:00
Behdad Esfahbod 549be924bc Bug 469049 – Fix all compiler warnings
2008-12-25  Behdad Esfahbod  <behdad@gnome.org>

        Bug 469049 – Fix all compiler warnings

        * pango-view/viewer-pangocairo.c (render_callback):
        * pango/fonts.c (append_field), (pango_font_description_to_string):
        * pango/opentype/harfbuzz-dump.c:
        * pango/pango-bidi-type.c (pango_log2vis_get_embedding_levels):
        * pango/pango-coverage.c (pango_coverage_set):
        * pango/pango-markup.c (span_parse_func):
        * pango/pango-renderer.c
        (pango_renderer_default_draw_error_underline):
        * pango/pango-utils.c (pango_scan_string):
        * pango/pangocairo-render.c (pango_cairo_renderer_draw_trapezoid),
        (draw_error_underline), (pango_cairo_renderer_class_init):
        Fix all the remaining warnings.
2008-12-26 02:31:47 +00:00
Behdad Esfahbod 719f9eaa75 Fix more warnings.
2008-12-25  Behdad Esfahbod  <behdad@gnome.org>

        * pango/modules.c (pango_module_load), (script_info_free):
        * pango/opentype/harfbuzz-gpos.c (HB_Load_GPOS_Table):
        * pango/pango-bidi-type.c:
        * pango/pango-coverage.c (pango_coverage_ref),
        (pango_coverage_unref):
        * pango/pango-engine.c (pango_engine_shape_real_covers),
        (fallback_engine_shape), (fallback_engine_covers):
        * pango/pango-fontmap.c (pango_font_map_init):
        * pango/pango-ot-ruleset.c (pango_ot_ruleset_finalize),
        (pango_ot_ruleset_new):
        * pango/pangofc-decoder.c (pango_fc_decoder_init),
        (pango_fc_decoder_class_init):
        * pango/pangofc-font.c (pango_fc_font_find_shaper),
        (pango_fc_font_get_coverage):
        * pango/pangofc-fontmap.c (pango_fc_font_map_list_families),
        (pango_fc_make_pattern), (pango_fc_font_map_get_patterns),
        (get_first_font), (_pango_fc_font_map_get_coverage),
        (cleanup_font), (pango_fc_font_description_from_pattern),
        (pango_fc_face_list_sizes), (pango_fc_family_list_faces):
        * pango/pangoft2-fontmap.c (pango_ft2_font_map_get_resolution):
        * pango/pangoft2-render.c (pango_ft2_renderer_init),
        (pango_ft2_renderer_draw_trapezoid):
        * pango/pangoft2.c (pango_ft2_font_get_face),
        (pango_ft2_font_real_unlock_face),
        (pango_ft2_free_glyph_info_callback):
        Fix more warnings.
2008-12-26 02:31:35 +00:00
Behdad Esfahbod 21f7d507f4 Bug 528272 – "Error loading GPOS table 5503" when using katakana
2008-10-14  Behdad Esfahbod  <behdad@gnome.org>

        Bug 528272 – "Error loading GPOS table 5503" when using katakana
        characters

        * pango/opentype/harfbuzz-gpos.c (Load_Mark2Array): Skip parsing
        null anchor tables.
2008-10-15 03:45:29 +00:00
Behdad Esfahbod a26c6ae705 Fix left-to-right positioning. Reported by Peter Hunter.
2008-09-29  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-gpos.c (Position_CursiveChain):
        Fix left-to-right positioning.  Reported by Peter Hunter.
2008-09-29 22:28:47 +00:00
Behdad Esfahbod b6c06c56a3 Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font
2008-06-29  Behdad Esfahbod  <behdad@gnome.org>

        Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font

        * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Fix reverse
        loops for type 8 lookups.
2008-06-29 18:30:14 +00:00
Behdad Esfahbod c44733596c [hb-ot-layout] Add proper namespace to accessors 2008-02-18 21:33:22 -05:00
Behdad Esfahbod 5722567209 Fix typo, add TODOs 2008-02-18 20:58:39 -05:00
Behdad Esfahbod 4a26ea408c Finish script, language, and feature public API 2008-01-29 17:42:11 -05:00
Behdad Esfahbod 706ab25a4c Add script and language public getter API 2008-01-28 05:58:50 -05:00
Behdad Esfahbod 40a81314fa Make main.cc compile again, which means finished getter API 2008-01-28 02:30:48 -05:00
Behdad Esfahbod e50c3978d3 Rename HB_OT_Layout to hb_ot_layout_t 2008-01-28 00:16:49 -05:00
Behdad Esfahbod dfa8119651 Rename hb_ot_layout_create() to hb_ot_layout_create_for_data() 2008-01-28 00:12:21 -05:00
Behdad Esfahbod 54e5aac5e2 GDEF completely working now 2008-01-27 21:21:37 -05:00
Behdad Esfahbod 6f425b1179 [GDEF] Finish internal API 2008-01-24 19:39:49 -05:00
Behdad Esfahbod 590d55cbb9 [GDEF] Finish public API 2008-01-24 19:15:35 -05:00
Behdad Esfahbod aff831ed67 Implement glyph properties 2008-01-24 06:03:45 -05:00
Behdad Esfahbod ead428d7a0 More public api 2008-01-24 04:09:46 -05:00
Behdad Esfahbod fd92a3dde3 Starting public interface 2008-01-24 03:36:11 -05:00
Behdad Esfahbod 7d6b95b000 Remove unused macro 2008-01-24 04:42:24 +00:00
Behdad Esfahbod 7586089c6f Minor 2008-01-23 18:02:28 -05:00
Behdad Esfahbod aefaafe5bc Minor renaming 2008-01-23 17:25:29 -05:00
Behdad Esfahbod a16ecbf056 Initial gsub stub 2008-01-23 17:01:55 -05:00
Behdad Esfahbod 64aef3a549 Add copyright notices. 2008-01-23 16:14:38 -05:00
Behdad Esfahbod 12360f7c15 Minor cleanup, add LIKELY and UNLIKELY annotations 2008-01-23 15:50:38 -05:00
Behdad Esfahbod 8dd1c8b8d6 Clean up file names, add namespace 2008-01-23 05:02:14 -05:00
Behdad Esfahbod 1f437e6f47 Make all code NULL-free and assert-free 2008-01-23 04:55:38 -05:00
Behdad Esfahbod 600e5eb80f Define get_for_data() factories 2008-01-23 02:01:37 -05:00
Behdad Esfahbod b9d7688fb3 Finish and test GDEF 2008-01-23 01:38:10 -05:00
Behdad Esfahbod 303fe62824 Misc cleanup 2008-01-23 00:20:48 -05:00
Behdad Esfahbod 17843245fd Remove COPYING.GPL and COPYING.FTL that are no longer there.
2008-01-16  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/Makefile.am: Remove COPYING.GPL and COPYING.FTL that
        are no longer there.
2008-01-16 20:39:29 +00:00
Behdad Esfahbod a2a9a023f6 HarfBuzz was relicensed to a more generous and simpler license. Adapt. See
2008-01-15  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*:
        HarfBuzz was relicensed to a more generous and simpler license.
        Adapt.  See pango/opentype/COPYING for the new license which is
        LGPL-compatible.
2008-01-15 22:46:32 +00:00
Behdad Esfahbod 4ccedd22ea Bug 501575 – Compile errors Patch from Jens Granseuer
2007-12-04  Behdad Esfahbod  <behdad@gnome.org>

        Bug 501575 – Compile errors
        Patch from Jens Granseuer

        * pango/opentype/harfbuzz-stream.c (_hb_font_goto_table):
        * pango/pango-utils.c (handle_alias_line):
        Fix C99ism.
2007-12-05 03:41:29 +00:00
Behdad Esfahbod cd55cfa2b0 Undo accidental change. 2007-11-30 04:31:29 +00:00
Behdad Esfahbod 3f05da638c Bug 485536 – underline_position can be zero
2007-11-29  Behdad Esfahbod  <behdad@gnome.org>

        Bug 485536 – underline_position can be zero

        * pango/pango-utils.c (pango_cairo_quantize_line_geometry):
        Document that returned position may be zero.

        * pango/pangocairo-win32font.c
        (pango_cairo_win32_font_create_metrics_for_context):
        * pango/pangofc-font.c (get_face_metrics):
        Handle case of underline_position==0 after rounding.
2007-11-30 04:29:58 +00:00
Behdad Esfahbod e58278fedb Remove unused macro.
2007-11-23  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-impl.c: Remove unused macro.
2007-11-24 01:40:13 +00:00
Behdad Esfahbod 3b047380ae Minor 2007-11-18 22:34:08 +00:00
Behdad Esfahbod 10d6a25a26 Remove dead code. 2007-11-07 10:04:11 +00:00
Behdad Esfahbod 47d2c33e3d And some more.
2007-11-07  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: And some more.
2007-11-07 09:59:18 +00:00
Behdad Esfahbod 78ef65ba08 Some more cleanup and merging.
2007-11-07  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: Some more cleanup and merging.
2007-11-07 08:06:01 +00:00
Behdad Esfahbod 5c9bd37995 Fix typo. 2007-10-29 23:51:48 +00:00
Behdad Esfahbod ef1f481752 Even more cleanup and more type renames.
2007-10-25  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: Even more cleanup and more type renames.
2007-10-25 23:37:11 +00:00
Behdad Esfahbod 282c60a0ee More cleanup, remove redundant error types.
2007-10-25  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: More cleanup, remove redundant error types.
2007-10-25 23:22:17 +00:00
Behdad Esfahbod 4280ec4df4 Rename ftglue.c to harfbuzz-impl.c and more type renames and moving code
2007-10-24  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: Rename ftglue.c to harfbuzz-impl.c and more
        type renames and moving code around.
2007-10-25 00:23:46 +00:00
Behdad Esfahbod 5716ae278a New header file harfbuzz-global.h. Rename FT_* int types to HB_* types.
2007-10-24  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: New header file harfbuzz-global.h.  Rename
        FT_* int types to HB_* types.
2007-10-24 22:44:47 +00:00
Behdad Esfahbod 2130d852c7 Add commented-out dummy struct for Extension lookups.
2007-10-24  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-gpos-private.h:
        * pango/opentype/harfbuzz-gsub-private.h:
        Add commented-out dummy struct for Extension lookups.
2007-10-24 21:35:03 +00:00
Behdad Esfahbod 13b2b96384 Bug 488840 – harfbuzz: protect against ligid overflow
2007-10-21  Behdad Esfahbod  <behdad@gnome.org>

        Bug 488840 – harfbuzz: protect against ligid overflow

        * pango/opentype/harfbuzz-buffer.c (_hb_buffer_allocate_ligid):
        Never return zero, even in case of overflow.

        * pango/opentype/harfbuzz-impl.h: Define dummy HB_LIKELY() and
        HB_UNLIKELY(), to be filled later.
2007-10-21 18:17:02 +00:00
Behdad Esfahbod 6b347138b5 Mark internal symbols as HB_INTERNAL and define that to static in
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: Mark internal symbols as HB_INTERNAL and
        define that to static in harfbuzz.c.

        * pango/opentype/harfbuzz-buffer-internal.h: New file.
2007-10-11 08:30:50 +00:00
Behdad Esfahbod 7cdfb61dee Remove FTGLUE_API/APIDEF cruft.
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/ftglue.[ch]: Remove FTGLUE_API/APIDEF cruft.
2007-10-11 07:46:33 +00:00
Behdad Esfahbod 61ddbafaaa Build harfbuzz.c instead of individual source files, to let compiler go
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/Makefile.am: Build harfbuzz.c instead of individual
        source files, to let compiler go wild with optimizations!
2007-10-11 07:45:26 +00:00
Behdad Esfahbod a219b3d003 Same here.
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz.c: Same here.
2007-10-11 07:34:08 +00:00
Behdad Esfahbod 6567e16e3b Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just used by
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/Makefile.am: Don't include harfbuzz-dump.[ch] in
        libharfbuzz.a.  Those are just used by the harfbuzz-dump tool.
2007-10-11 07:33:19 +00:00
Behdad Esfahbod 0b032549ba Some more cleanup.
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-buffer.c: Some more cleanup.
2007-10-11 07:24:47 +00:00
Behdad Esfahbod 7a26864308 Move some code around.
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-buffer.c: Move some code around.
2007-10-11 07:21:31 +00:00
Behdad Esfahbod 7a5405c826 Minor. 2007-10-11 07:15:16 +00:00
Behdad Esfahbod 986f4fd968 Rename buffer->inplace to buffer->separate_out with the inverted meaning,
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-buffer.[ch]: Rename buffer->inplace to
        buffer->separate_out with the inverted meaning, such that buffer
        is initialization is memset(0).
2007-10-11 07:12:49 +00:00
Behdad Esfahbod 06003908cc Allocate buffer->positions lazily.
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/*: Allocate buffer->positions lazily.
2007-10-11 07:05:09 +00:00
Behdad Esfahbod fc3d6f5758 Bug 485621 – Get rid of freetype memory allocator in harfbuzz
2007-10-11  Behdad Esfahbod  <behdad@gnome.org>

        Bug 485621 – Get rid of freetype memory allocator in harfbuzz

        * pango/opentype/*: Remove all occurences of FT_Memory.  Use
        malloc/realloc/free directly.

        * pango/pango-ot*: Update to above.
2007-10-11 06:52:07 +00:00
Behdad Esfahbod a8abb8b994 Bug 485559 – Boston Summit HarfBuzz optimizations
2007-10-10  Behdad Esfahbod  <behdad@gnome.org>

        Bug 485559 – Boston Summit HarfBuzz optimizations

        * pango/opentype/*: HarfBuzz hacking to:

          - Rename last remaining FT_Err stuff to HB_Err.

          - Fix a couple invalid table paths to be permissive so
            fonts work better.  Particularly GDEF table for Nafees
            Nastaliq is loaded and works great now.

          - Optimize harfbuzz buffer to not copy/swap for simple
          one-to-one and "copy" GSUB operations.

        * pango/pango-ot*: Update to FT_Err to HB_Err renaming.
2007-10-11 00:07:58 +00:00
Behdad Esfahbod dd810b76bc Bug 302952 – The placement of a diacritic marks for an arabic ligature
2007-08-29  Behdad Esfahbod  <behdad@gnome.org>

        Bug 302952 – The placement of a diacritic marks for an arabic ligature
        is not correct

        * pango/opentype/harfbuzz-buffer.c (hb_buffer_allocate_ligid): Don't
        use zero as allocated ligature id.  Zero means no ligature id.
2007-08-29 08:46:50 +00:00
Behdad Esfahbod e90d199194 Bug 463430 – Gets stuck while "formatting message"
2007-08-21  Behdad Esfahbod  <behdad@gnome.org>

        Bug 463430 – Gets stuck while "formatting message"

        * pango/opentype/harfbuzz-gpos.c (Lookup_PairPos1),
        (Lookup_PairPos2), (Lookup_PairPos), (Do_ContextPos):
        * pango/opentype/harfbuzz-gsub.c (Do_ContextSubst):
        Change type of intermediate index variable from FT_UShort to
        FT_ULong as it was overlowing with more than 65536 glyphs.
2007-08-21 08:03:26 +00:00
Behdad Esfahbod 13b86ee398 Don't ignore error return value of hb_buffer_copy_output_glyph(). Patch
2007-08-20  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Don't
        ignore error return value of hb_buffer_copy_output_glyph().  Patch
        sent to harfbuzz-list.
2007-08-21 01:38:07 +00:00
Behdad Esfahbod 4c2556cb4c [gdef] Initial implementation 2007-07-06 11:29:21 -04:00
Behdad Esfahbod 5b2e947fd2 [open] small fixes, including not using unions for main structs 2007-07-06 02:03:26 -04:00
Behdad Esfahbod 151df44346 Improve stupid Makefile 2007-07-05 17:22:07 -04:00
Behdad Esfahbod 6c49bebc70 Link freetype to harfbuzz-dump, for those systems that don't track
2007-04-30  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/Makefile.am: Link freetype to harfbuzz-dump, for
        those systems that don't track dependencies automatically.
2007-05-01 02:32:12 +00:00
Behdad Esfahbod 7341a11691 Copy fixes from harfbuzz stable branch. Includes a leak fix, a kerning
2007-04-03  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-gdef.c (_HB_GDEF_Check_Property):
        * pango/opentype/harfbuzz-gpos.c (HB_Done_GPOS_Table),
        (Lookup_PairPos):
        * pango/opentype/harfbuzz-open.c (Get_Class1):
        Copy fixes from harfbuzz stable branch.  Includes a leak fix,
        a kerning fix, and an array out-of-bound access fix.
2007-04-03 22:45:29 +00:00
Hans Breuer 999a6f0575 updated
2007-01-13  Hans Breuer  <hans@breuer.org>

	* pango/makefile.msc pango/opentype/makefile.msc : updated
2007-01-13 21:31:41 +00:00
Behdad Esfahbod 3c038d40da Remove .cvsignore files (moved to svn:ignore prop) 2007-01-09 03:32:12 +00:00
Behdad Esfahbod 5b3f7702a6 Add stub GDEF files 2006-12-28 06:42:37 -05:00
Behdad Esfahbod b3395a7aa3 Don't shift down the mark attachment type 2006-12-28 06:31:18 -05:00
Behdad Esfahbod 193b66d52a Remove stale comment 2006-12-28 06:12:18 -05:00
Behdad Esfahbod 12c4568c68 Break and rename, in the layout of old HarfBuzz codebase 2006-12-28 06:10:59 -05:00
Behdad Esfahbod 3158d84b0d Oops. s/OpenTypeFontFaceFile/OpenTypeFontFile/g 2006-12-27 20:08:07 -05:00
Behdad Esfahbod bf0f9dd613 Use union for ClassDef 2006-12-27 20:06:42 -05:00
Behdad Esfahbod c46196d09c Use union for Coverage 2006-12-27 20:05:16 -05:00
Behdad Esfahbod 86f450243d Add GPOS stub 2006-12-27 19:59:07 -05:00
Behdad Esfahbod 133466177e s/OpenTypeFont/OpenTypeFontFace/g 2006-12-27 19:58:32 -05:00
Behdad Esfahbod 71d62baab0 GSUBGPOSHeader 2006-12-27 01:36:20 -05:00
Behdad Esfahbod eebabd8b2e Finished OpenType Common Table Formats 2006-12-27 00:21:31 -05:00
Behdad Esfahbod 2b73745197 Device tables. 2006-12-26 20:55:37 -05:00
Behdad Esfahbod eb32e374f4 ClassDef 2006-12-26 20:00:33 -05:00
Behdad Esfahbod 53502c6723 Rename CoverageFormat to Coverage 2006-12-26 19:29:08 -05:00
Behdad Esfahbod 0d6db2abcb Define more structs using DEFINE_INT_TYPE. 2006-12-26 19:05:35 -05:00
Behdad Esfahbod 915931b74a s/DEFINE_NOT_INSTANTIABLE/DEFINE_NON_INSTANTIABLE/ 2006-12-26 15:30:14 -05:00
Behdad Esfahbod 0c0d55330e Coverage. 2006-12-26 15:29:38 -05:00
Behdad Esfahbod 882e52f591 Rename to harfbuzz-ng.cc 2006-12-25 10:28:31 -05:00
Behdad Esfahbod f8ba99f6f3 LookupFlags 2006-12-25 09:58:02 -05:00
Behdad Esfahbod 25ad92c8a6 Implement Feature 2006-12-25 09:35:06 -05:00
Behdad Esfahbod befc022aff LangSys 2006-12-25 09:14:52 -05:00
Behdad Esfahbod c81efca149 Use CamelCaseTags. 2006-12-25 06:22:08 -05:00
Behdad Esfahbod 808dbe283c Make types not instantiable 2006-12-25 06:18:52 -05:00
Behdad Esfahbod b739c05ca4 Add OpenTypeFontFile. 2006-12-25 05:39:20 -05:00
Behdad Esfahbod 8596944b74 Add Makefile 2006-12-23 17:49:25 -05:00
Behdad Esfahbod b6e62bc5db After DEFINE_SCRIPT_ARRAY 2006-12-22 02:21:55 -05:00
Behdad Esfahbod 01e4fcb032 Remove the annoying HB_ prefix. 2006-12-21 22:31:31 -05:00
Behdad Esfahbod 6b4ce01da1 Second version. Complete redesign, based on C++ classes to ensure endian
correctness.
2006-12-21 22:31:10 -05:00
Behdad Esfahbod f78e70c301 First version. 2006-12-21 22:30:38 -05:00
Behdad Esfahbod f726b20e56 Bug 347073 – Allow empty GPOS table
2006-07-24  Behdad Esfahbod  <behdad@gnome.org>

        Bug 347073 – Allow empty GPOS table

        * pango/opentype/harfbuzz-open.c (_HB_OPEN_Load_ScriptList): Don't
        err on empty GPOS/GSUB tables.
2006-07-25 01:02:27 +00:00
Behdad Esfahbod 52481a5c55 Bug 345600 – cvs build error in pango/opentype/Makefile
2006-06-22  Behdad Esfahbod  <behdad@gnome.org>

        Bug 345600 – cvs build error in pango/opentype/Makefile

        * pango/opentype/Makefile.am: Rename variable SOURCES to MAINSOURCES.
        Some automake versions seem to use it or something.
2006-06-22 18:09:04 +00:00
Behdad Esfahbod ffb2d5c1e7 Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory
2006-05-31  Behdad Esfahbod  <behdad@gnome.org>

        Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory
        and have many cpu usage.
        Patch from Yong Li.

        * pango/opentype/ftglue.c (_hb_ftglue_face_goto_table): TrueType table
        offsets are absolute, not relative.
2006-05-31 07:42:55 +00:00
Behdad Esfahbod f8f7bd2451 Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct when
2006-05-31  Behdad Esfahbod  <behdad@gnome.org>

        Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct
        when using MarkAttchmentType
        Patch from Tin Myo Htet.

        * pango/opentype/harfbuzz-gpos.c (Lookup_MarkMarkPos): Ignore marks
        of non-matchin attachment type.
2006-05-31 07:23:02 +00:00
Behdad Esfahbod d2a613187c Fix loop variables. (coverity found bug.)
2006-04-12  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-gpos.c: Fix loop variables. (coverity
        found bug.)
2006-04-12 18:47:50 +00:00
Behdad Esfahbod 14022e826f Bug 337924 – cleanups for issues reported by various compilers Patch
2006-04-11  Behdad Esfahbod  <behdad@gnome.org>

        Bug 337924 – cleanups for issues reported by various compilers
        Patch from Kjartan Maraas.

        * examples/viewer-x.c (update):
        * modules/arabic/arabic-fc.c (fallback_shape),
        (arabic_engine_shape):
        * modules/basic/basic-fc.c (fallback_shape), (basic_engine_shape):
        * modules/basic/basic-x.c:
        * modules/hangul/hangul-fc.c:
        * modules/hebrew/hebrew-fc.c (hebrew_engine_shape):
        * modules/indic/indic-fc.c:
        * modules/khmer/khmer-fc.c:
        * modules/syriac/syriac-fc.c:
        * modules/thai/thai-fc.c:
        * modules/tibetan/tibetan-fc.c:
        * pango/break.c:
        * pango/modules.c:
        * pango/opentype/ftglue.c (_hb_ftglue_face_goto_table):
        * pango/pango-attributes.c (pango_attr_list_filter):
        * pango/pango-engine.c:
        * pango/pango-fontset.c:
        * pango/pango-layout.c (pango_layout_set_text),
        (pango_layout_xy_to_index), (pango_layout_get_cursor_pos):
        * pango/pango-markup.c (text_handler):
        * pango/pango-utils.c (read_alias_file):
        * pango/pangocairo-fcfont.c (G_DEFINE_TYPE_WITH_CODE):
        * pango/pangocairo-fcfontmap.c (G_DEFINE_TYPE_WITH_CODE):
        * pango/pangocairo-font.c (_pango_cairo_font_get_hex_box_info):
        * pango/pangox-fontmap.c (pango_x_make_matching_xlfd):
        * tests/dump-boundaries.c (fail):
        Remove unused variables.  Remove excess semicolon after DEFINE_TYPE
        macros.
2006-04-11 08:31:44 +00:00
Behdad Esfahbod 59aafd0780 Fix minor bugs reported by the Coverity scan report.
2006-04-10  Behdad Esfahbod  <behdad@gnome.org>

        Fix minor bugs reported by the Coverity scan report.

        * pango/opentype/harfbuzz-gdef.c (HB_GDEF_Build_ClassDefinition):
        * pango/opentype/harfbuzz-gpos.c (HB_GPOS_Query_Scripts),
        (HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do not access
        structs before we check them for nullity.

        * pango/pango-layout.c (pango_layout_index_to_line),
        (pango_layout_index_to_line_and_extents),
        (pango_layout_index_to_pos): Check for invalid iterators outside the
        loop, so we don't crash.

        * pango/pango-layout.c (pango_layout_line_x_to_index): Set
        char_trailing instead of trailing in one of too many paths.  Should
        have been a typo.

        * pango/pangox.c (get_font_metrics_from_subfonts): Check for nullity
        somewhere.
2006-04-10 10:33:17 +00:00
Behdad Esfahbod b31d6def96 Update from HarfBuzz. Lars Knoll fixed all the warnings.
2006-04-06  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype: Update from HarfBuzz.  Lars Knoll fixed all the
        warnings.
2006-04-06 18:23:49 +00:00
Behdad Esfahbod ca57250bc9 Make sure TTAG_GDEF and frineds are defined, needed for FreeType <= 2.1.7
2006-04-03  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/harfbuzz-impl.h: Make sure TTAG_GDEF and frineds are
        defined, needed for FreeType <= 2.1.7 (pointed by Tim Janik).
2006-04-03 20:13:17 +00:00
Behdad Esfahbod f618288e00 . 2006-03-31 13:19:29 +00:00
Behdad Esfahbod 5f1f943b9e . 2006-03-31 13:18:23 +00:00
Behdad Esfahbod bce3e0b0d4 Define NULL. 2006-03-31 12:45:40 +00:00
Behdad Esfahbod 9f8da38cd1 Convert pango/opentype to the new project called HarfBuzz.
2006-03-31  Behdad Esfahbod  <behdad@gnome.org>

        Convert pango/opentype to the new project called HarfBuzz.

        * pango/opentype/*: Restructured.

        * pango/pango-ot-*: Updated to use HarfBuzz symbol names.
2006-03-31 12:28:09 +00:00
Behdad Esfahbod dd2a8d4d49 Don't err on Table_Missing.
2006-03-25  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/ottest.c: Don't err on Table_Missing.
2006-03-25 23:52:30 +00:00
Behdad Esfahbod 434833b1b7 === Released 1.12.0 ===
2006-03-13  Behdad Esfahbod  <behdad@gnome.org>

        * === Released 1.12.0 ===

        * configure.in: Version 1.12.0

        * NEWS, README: Updated.
2006-03-13 05:06:05 +00:00
Behdad Esfahbod 8228828e1e Handle GSUB Lookup type 8, and ReverseChainContextualSubst table. (bug
2006-01-30  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/ftxgsub.c: Handle GSUB Lookup type 8,
        and ReverseChainContextualSubst table.  (bug #149696,
        patch from Aamir Wali)
2006-01-30 22:37:48 +00:00
Behdad Esfahbod e040f68196 Removed.
2006-01-28  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/pango-ot-*: Removed.

        * pango/pango-ot-*: Added.

        * pango/Makefile.am, pango/opentype/Makefile.am: Adjusted.
2006-01-28 20:29:18 +00:00
Behdad Esfahbod f45689bc65 If major.minor of required and available glib versions are the same, add
2006-01-25  Behdad Esfahbod  <behdad@gnome.org>

        * configure.in: If major.minor of required and available glib versions
        are the same, add -DG_DISABLE_DEPRECATED to GLIB_CFLAGS. (bug #328617)

        * */Makefile.am: Remove hardcoded -DG_DISABLE_DEPRECATED.
2006-01-25 19:33:58 +00:00
Behdad Esfahbod 6cc6c9a57c Make sure #include <config.h> is the first include in the file. (bug
2006-01-14  Behdad Esfahbod  <behdad@gnome.org>

        * */*.c, */*/*.c: Make sure #include <config.h> is the first include
        in the file. (bug #158870, based on patch by Luis Menina)
2006-01-14 07:00:13 +00:00
Behdad Esfahbod ca07fcf6ef pango/Makefile.am, pango/fonts.c, pango/glyphstring.c,
2006-01-05  Behdad Esfahbod  <behdad@gnome.org>

        * pango/Makefile.am,
        * pango/fonts.c,
        * pango/glyphstring.c,
        * pango/pango-attributes.c,
        * pango/pango-color.c,
        * pango/pango-impl-utils.h,
        * pango/pango-item.c,
        * pango/pango-layout.c,
        * pango/pango-tabs.c,
        * pango/pango-utils.c,
        * pango/pango-utils.h,
        * pango/pangoatsui-fontmap.c,
        * pango/pangocairo-font.c,
        * pango/pangocairo-fontmap.c,
        * pango/pangofc-fontmap.c,
        * pango/pangowin32-fontmap.c,
        * pango/pangox-fontmap.c,
        * pango/pangox.c,
        * pango/opentype/pango-ot-info.c,
        * pango/opentype/pango-ot-ruleset.c: Intern strings to avoid
        unnecessary strdups in the type system. (bug #325832, Matthias Clasen)
2006-01-05 16:14:49 +00:00
Behdad Esfahbod 71524f1bc8 Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias Clasen)
2005-12-27  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/pango-ot-buffer.c: Use g_slice for PangoOTBuffer
        allocation. (bug #325026, Matthias Clasen)
2005-12-27 09:55:48 +00:00
Behdad Esfahbod b5baa43d3a Tiny doc improvement. 2005-11-25 09:22:02 +00:00
Behdad Esfahbod 6f64314f7a Fix typo in docs.
2005-11-23  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentyp/pango-ot-buffer.c: Fix typo in docs.
2005-11-23 19:48:10 +00:00
Behdad Esfahbod f2bcf72296 Added "Since:" tags to all interfaces added after Pango 1.0. (#319116,
2005-11-23  Behdad Esfahbod  <behdad@gnome.org>

        * pango/fonts.c pango/pango-attributes.c pango/pango-context.c
        pango/pango-glyph-item.c pango/pango-layout.c
        pango/pango-script.c pango/pango-utils.c pango/pangofc-font.c
        pango/pangoft2-fontmap.c pango/opentype/pango-ot-buffer.c
        pango/opentype/pango-ot-ruleset.c: Added "Since:" tags to all
        interfaces added after Pango 1.0. (#319116, Brian Cameron)
2005-11-23 17:54:55 +00:00
Behdad Esfahbod 682db81c23 Protect against possible division by zeros (#316468, Steve Grubb)
2005-11-23  Behdad Esfahbod  <behdad@gnome.org>

        Protect against possible division by zeros (#316468, Steve Grubb)

        * pango/pango-context.c (update_metrics_from_items),
        pango/pango-fontset.c (pango_fontset_real_get_metrics): If count is
        zero, do not alter approximate_{char,digit}_width.

        * pango/opentype/disasm.c: Err on invalid DeltaFormat.
2005-11-23 15:19:48 +00:00
Behdad Esfahbod e6e15352d1 Reworked basic shaper with OpenType support. (#101079, based on patch from
2005-11-23  Behdad Esfahbod  <behdad@gnome.org>

        * modules/basic/basic-fc.c: Reworked basic shaper with OpenType
        support. (#101079, based on patch from Denis Jacquerye and Noah Levitt)

        * modules/basic/basic-fc.c (basic_scripts): Added Unicode 4.1 addition
        script PANGO_SCRIPT_GLAGOLITIC that is a "simple" script.

        * modules/arabic/arabic-fc.c, modules/syriac/syriac-fc.c: Replace
        g_utf8_to_ucs4_fast() with g_utf8_strlen()!

        * pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_add_feature):
        Remove reference in docs to pango_ot_ruleset_shape() that was
        removed long ago.
2005-11-23 11:53:03 +00:00
Behdad Esfahbod 612b6cf609 Part of #101079:
2005-11-17  Behdad Esfahbod  <behdad@gnome.org>

        Part of #101079:

        * pango/opentype/ftxopen.c (Load_Lookup): In extension subtables,
        offset is relative to the extension subtable, not the original
        table. (Greg Aumann)

        * pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor,
        skip offsets that are zero.  Works around bug in Doulos SIL Regular.
2005-11-17 06:28:11 +00:00
Behdad Esfahbod 1b2c314b80 Remove debug line that got in accidentally.
2005-11-09  Behdad Esfahbod  <behdad@gnome.org>

        * pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c:  Remove debug
        line that got in accidentally.
2005-11-09 23:30:00 +00:00
Behdad Esfahbod 9717127a5b Turn various gcc warnings off. Adding const, adding static, fully
2005-11-04  Behdad Esfahbod  <behdad@gnome.org>

        * configure.in, examples/argcontext.c examples/cairoview.c,
        examples/renderdemo.c, examples/renderdemo.h examples/xftview.c,
        modules/basic/basic-x.c, modules/hangul/hangul-fc.c,
        modules/hebrew/hebrew-shaper.c, modules/hebrew/hebrew-shaper.h,
        modules/indic/indic-fc.c, modules/indic/mprefixups.c,
        modules/syriac/syriac-fc.c, pango/break.c pango/fonts.c,
        pango/modules.c, pango/pango-coverage.c pango/pango-engine.c,
        pango/pango-engine.h, pango/pango-fontmap.c,
        pango/pango-fontset.c, pango/pango-impl-utils.h,
        pango/pango-layout.c, pango/pango-layout.h,
        pango/pango-renderer.c, pango/pango-script.c,
        pango/pango-utils.c, pango/pangocairo-fc.h,
        pango/pangocairo-font.c, pango/pangocairo-fontmap.c,
        pango/pangocairo-private.h, pango/pangofc-decoder.c,
        pango/pangofc-font.c, pango/pangofc-fontmap.c pango/pangoft2.c,
        pango/pangox-fontcache.c, pango/pangox-fontmap.c pango/pangox.c,
        pango/pangoxft-font.c, pango/querymodules.c,
        pango/opentype/ftglue.c, pango/opentype/ftxgpos.c,
        pango/opentype/ftxopen.c, pango/opentype/pango-ot-buffer.c,
        pango/opentype/pango-ot-info.c,
        pango/opentype/pango-ot-ruleset.c, tests/dump-boundaries.c,
        tests/testboundaries.c, tests/testcolor.c tests/testiter.c,
        tests/testscript.c: Turn various gcc warnings off. Adding const,
        adding static, fully initializing structs, match signedness in
        comparisons. (#317804)

        * tests/testscript.c, tools/gen-script-for-lang.c:
        (scripts_for_file): Pass error->message instead of error to fail(),
        which was wrong.
        (compare_lang): Fix typo comparing a and a instead of a and b.
2005-11-04 23:55:38 +00:00
Behdad Esfahbod c0505f3bb2 Patches from #170414. Reviewed by Matthias Clasen.
2005-11-03  Behdad Esfahbod  <behdad@gnome.org>

        Patches from #170414.  Reviewed by Matthias Clasen.

        * pango/opentype/ftxgpos.c, pango/opentype/ftxgsub.c: Use call table
        to dispatch different lookup types.

        * pango/opentype/pango-ot-buffer.c, pango/opentype/pango-ot-ruleset.c:
        Small cleanup.
2005-11-03 20:13:40 +00:00
Behdad Esfahbod c6b22b9119 Generate valid XML output. Dump LookupFlag too.
2005-08-29  Behdad Esfahbod  <pango@behdad.org>

        * pango/opentype/ottest.c, pango/opentype/disasm.c: Generate valid
        XML output.  Dump LookupFlag too.
2005-08-29 10:06:40 +00:00
Behdad Esfahbod 1e3747ca5d Replace perror with perror_. Remove FT_BEGIN_STMNT and FT_END_STMNT.
2005-08-15  Behdad Esfahbod  <pango@behdad.org>

        * pango/opentype/ftglue.h: Replace perror with perror_.
        Remove FT_BEGIN_STMNT and FT_END_STMNT. (#313477)
2005-08-15 04:16:04 +00:00
Owen Taylor 3c60250875 Skip lookups with lookup index out of range. (Patch from Behdad Esfahbod,
2005-07-26    Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c, pango/opentype/ftxgpos.c: Skip lookups
        with lookup index out of range. (Patch from Behdad Esfahbod, #171170)
2005-07-26 18:33:27 +00:00
Owen Taylor 91a3fa2e4b Remove an unecessary set of block2.
2005-07-22  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftglue.c (ftglue_realloc): Remove
        an unecessary set of block2.
2005-07-22 18:03:58 +00:00
Owen Taylor ff7034787d Patch from David Turner. Review and testing by Behdad Esfahbod
2005-07-22  Owen Taylor  <otaylor@redhat.com>

        Patch from David Turner. Review and testing by Behdad Esfahbod

        * pango/opentype/ftglue.[ch] Makefile.am: Glue layer that provides
        implementation of the internal functions that the opentype code
        expects in terms of publically exported FreeType API.

        * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c
        pango/opentype/ftxgsub.c pango/opentype/ftxopen.c
        pango/opentype/otlbuffer.c pango/opentype/pango-ot-info.c
        pango/opentype/pango-ot-ruleset.c: Remove includes of
        internal headers. Small changes to work with ftglue.[ch]

        * pango/opentype/fterrcompat.h: Remove: no longer needed.

        * pango/opentype/ftxgpos.c: Use FT_IS_SFNT(face) rather
        than poking at FT_MODULE_CLASS (face->driver)->module_name.

        * pango/opentype/ftxopen.c (Free_FeatureList): Free
        fl->ApplyOrder. (Found by Behdad)
2005-07-22 17:56:37 +00:00
Owen Taylor 43dbec6f3a Fix up places where there is missing or incomplete Copyright and License
2005-07-21  Owen Taylor  <otaylor@redhat.com>

        Fix up places where there is missing or incomplete
        Copyright and License information (Reported by William N. Ray)

        * pango/opentype/fterrcompat.h: Mark as FreeType/GPL licensed.

        * pango/opentype/FT-license.txt: Make this the dual-licensing
        description that covers the FreeType code (FreeType's
        LICENSE.TXT) rather than the FTL.

        * pango/opentype/FTL.TXT: Move the FTL (referenced from
        FT-license.txt) to here.

        * modules/basic/basic-common.h modules/hebrew/hebrew-shaper.h
        modules/thai/thai-charprop.c modules/thai/thai-shaper.h
        tools/gen-script-for-lang.c tests/testcolor.c:
        Add LGPL header and copyright information.

        * modules/indic/indic-ot.[ch] modules/indic/indic-ot-class-tables.c
        modules/thai/thai-ot.[ch]: Add LGPL header.

        * modules/thai/thai-shaper.c modules/thai/thai-charprop.h:
        Minor fixes to copyright information.

        * modules/arabic/arabic-ot.c: Add Freetype license boilerplate.
2005-07-21 18:15:45 +00:00
Owen Taylor c55850d36d Chain up from finalize. (#307547, Paolo Borelli)
2005-06-14  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/pango-ot-info.c (pango_ot_info_finalize)
        pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_finalize):
        Chain up from finalize. (#307547, Paolo Borelli)

        * pango/opentype/pango-ot-info.c (pango_ot_info_finalizer):
        make accidentally public function static.
2005-06-14 19:54:19 +00:00
Tor Lillqvist 44ff46a364 Rename LDADDS to libpango_ot_la_LIBADD to actually make libpango-ot.la
2005-04-12  Tor Lillqvist  <tml@novell.com>

	* pango/opentype/Makefile.am: Rename LDADDS to
	libpango_ot_la_LIBADD to actually make libpango-ot.la link with
	it.

	* pango/pangowin32.def: Rename get_scale_factor to
	get_metrics_factor here, too. (#300222, Ivan Wong)
2005-04-12 01:27:21 +00:00
Owen Taylor 0c349a032e For all binary searches, handle the case where the number of items is 0.
2005-03-03  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxopen.c (Coverage_Index1, Coverage_Index2,
        Get_Class2): For all binary searches, handle the case where
        the number of items is 0. (#162977, Nick Lamb)

        * pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition):
        Handle the case where glyph_count == 0 properly. Fix a problem
        with cleanups on memory allocation failure.
        (Get_New_Count, Add_Glyph_Property): Avoid reading off the
        end of the ClassRangeRecord array.
2005-03-03 19:38:02 +00:00
Owen Taylor 03838daaa9 Set G_LOG_DOMAIN.
Mon Nov 22 18:30:14 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/Makefile.am pango/Makefile.am
        modules/*/Makefile.am: Set G_LOG_DOMAIN.
2004-11-22 23:37:19 +00:00
Owen Taylor 346d3b3cac Cleanups from 'sparse', #149922, Kjartan Maraas
Wed Sep 22 14:07:47 2004  Owen Taylor  <otaylor@redhat.com>

        Cleanups from 'sparse', #149922, Kjartan Maraas

        * pango/pango-utils.c (read_config): () => (void) in
        definition.

        * pango/pangofc-fontmap.c (pango_fc_font_map_list_families):
        Initialize *n_families, not n_families.

        * pango/pangofc-fontmap.c pango/pangoft2.c opentype/ftxgdef.c
        opentype/ftxgpos.c opentype/ftxgsub.c: : Fix various 0/NULL
        confusion.
2004-09-22 18:14:55 +00:00
Owen Taylor 8b654dfb5a === Released 1.6.0 ===
Mon Sep 13 17:38:58 2004  Owen Taylor  <otaylor@redhat.com>

        * === Released 1.6.0 ===

        * configure.in: Update versions for 1.6.0

        * NEWS: Update.

        * README: Minor tweak.

        * pango/fonts.c pango/pango-context.c pango/pango-types.h
        pango/pango-utils.c pango/pangoft2.c pango/pango-layout.c
        pango/opentype/pango-ot-buffer.c: Add a bunch of missing
        Since: 1.6.
2004-09-14 13:45:41 +00:00
Owen Taylor d41089a5b6 Finish extending properties flags from FT_UShort => FT_UInt. (OTLBuffer
Fri Jul 30 17:17:05 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.[ch] pango/opentype/ftxgsub.[ch]
        pango/opentype/ftxopen.[ch]: Finish extending properties
        flags from FT_UShort => FT_UInt. (OTLBuffer was already
        using an FT_UInt)
2004-07-30 21:23:04 +00:00
Owen Taylor f42d5eca29 Save the order in which features were added and use that when applying
Tue Jul 27 12:38:05 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxopen.[ch] pango/opentype/ftxgsub.c
        pango/opentype/ftxpos.c: Save the order in which
        features were added and use that when applying features.
        (Patch from Soheil Hassas Yeganeh, #122330)
2004-07-27 17:20:01 +00:00
Behdad Esfahbod ae2daa972d Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
* pango/opentype/ftxgpos.c: Remove the unused parameter
	from the IN_CURITEM() and IN_CURGLYPH macros.
2004-07-27 13:12:19 +00:00
Behdad Esfahbod 7d5435ea8c Fix bug to copy glyph from in_string, not out_string.
* pango/opentype/otlbuffer.c (otl_buffer_copy_output_glyph):
	Fix bug to copy glyph from in_string, not out_string.
2004-07-27 10:43:58 +00:00
Owen Taylor 2ea2a55bdf Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake
Mon Jul 26 19:11:46 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgdef.c: Fix allocation and indexing
        in NewGlyphClasses array. (#130661, Masatake YAMATO)
2004-07-26 23:14:53 +00:00
Owen Taylor 5d42695e5e Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
Mon Jul 26 15:24:11 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (ADD_Glyph): Remove the
        unused parameter from the IN_CURITEM() and IN_CURGLYPH
        macros.
2004-07-26 19:25:45 +00:00
Owen Taylor a00c4ea562 Add missing macro to make the last change actually compile.
Mon Jul 26 15:21:23 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c: Add missing macro to make the
        last change actually compile.
2004-07-26 19:23:06 +00:00
Owen Taylor ed3e1f278d Match backtrack context against the output glyphs not the input glyphs
Mon Jul 26 15:16:07 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]):
        Match backtrack context against the output glyphs not
        the input glyphs (#145174, Aamir Wali)
2004-07-26 19:20:27 +00:00
Owen Taylor 78282cda00 Make Check_Property() take a OTL_GlyphItem, add a gproperties field to
Mon Jul 26 14:49:22 2004  Owen Taylor  <otaylor@redhat.com>

        * ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a
        OTL_GlyphItem, add a gproperties field to OTLGlyphItem,
        and use that to cache the properties for a glyph.

        * ftxgsub.c ftxgdef.c: Adapt to Check_Property() changes.

        * otlbuffer.[ch] ftxgsub.c: Add otl_buffer_copy_output_glyph()
        to use when we are copying an unmodified glyph from input
        to output that preserves the cached properties.
2004-07-26 18:59:02 +00:00
Owen Taylor 81b62af423 Add support for ChainContextSubstFormat3.
Mon Jul 19 17:09:11 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/disasm.c: Add support for
        ChainContextSubstFormat3.
2004-07-19 21:13:23 +00:00
Owen Taylor d4f773ef92 Fix pervasive buffer overruns when skipping glyphs when matching contexts.
Mon Jul 19 16:29:45 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
        Fix pervasive buffer overruns when skipping glyphs
        when matching contexts. (#118592, Kailash C. Chowksey)
2004-07-19 20:37:22 +00:00
Owen Taylor 99848cfafe #143693, Sayamindu Dasgupta
Wed Jun 23 16:13:53 2004  Owen Taylor  <otaylor@redhat.com>

        #143693, Sayamindu Dasgupta

        * pango/opentype/pango-ot-buffer.c (pango_ot_buffer_set_zero_width_marks) pango/opentype/pango-ot-private.h:
        Allow setting for whether marks should be given zero width,
        defaulting to FALSE.

        * modules/arabic/arabic-fc.c (arabic_engine_shape): Turn
        on zero-width-marks setting.
2004-06-23 20:33:35 +00:00
Owen Taylor 68d4cedb87 Use the gcc-3.3 strict-aliasing compatible macros from fterrcompat.h
Mon Jun 21 13:55:17 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/otlbuffer.c: Use the gcc-3.3
        strict-aliasing compatible macros from fterrcompat.h
        (#140495, reported by Stanislav Brabec)
2004-06-21 18:04:02 +00:00
Theppitak Karoonboonyanan b327765176 Negate y offset according to different conventions between
* pango/opentype/pango-ot-buffer.c (apply_gpos_ltr): Negate y offset
	according to different conventions between PangoGlyphString and OTL
	(#142544)
2004-05-28 16:41:36 +00:00
Owen Taylor 068763b547 Revert error return changes from last commit.
Thu May 27 17:54:24 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/otlbuffer.c: Revert error return changes
        from last commit.
2004-05-27 21:55:50 +00:00
Owen Taylor ef07481025 Free buffer->positions, clean up error returns that were returning
Thu May 27 16:57:30 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/otlbuffer.c: Free buffer->positions,
        clean up error returns that were returning uninitialized
        values. (#139239, Behdad Esfahbod)
2004-05-27 21:03:42 +00:00
Owen Taylor de568e7e62 === Released 1.4.0 ===
Tue Mar 16 11:24:46 2004  Owen Taylor  <otaylor@redhat.com>

        * === Released 1.4.0 ===

        * configure.in: Version 1.4.0, interface ago 0. Require
        glib-2.4.0.

        * NEWS: Updates.

        * README: Some updates; include details about the FreeType
        license of the OpenType code.
2004-03-16 19:23:43 +00:00
Hans Breuer 8b3554b3af if PANGO_MODULE_PREFIX is defined include the basic backend shaper (should
2004-03-03  Hans Breuer  <hans@breuer.org>

	* pango/module-defs-win32.c.win32 : if PANGO_MODULE_PREFIX is
	defined include the basic backend shaper (should have been
	commited at 2003-12-12, too)

	* pango/makefile.msc : generate correct type for PangoFontMask
	(bug #135892, John Ehresman)
	* pango/opentype/makefile.msc : updated

	* pango/pango.def pango/pangoft2.def : more updatd externals
2004-03-03 22:35:19 +00:00
Owen Taylor a7e096c5de Rework opentype interfaces and other changes to make GPOS work for Arabic.
Sun Feb 29 09:25:13 2004  Owen Taylor  <otaylor@redhat.com>

        Rework opentype interfaces and other changes to make GPOS
        work for Arabic. (Most of #117282, #121060)

        * pango/opentype/otlbuffer.[ch]: OTL_Buffer that
        acts as a replacement for the separate GSUB and
        GPOS string structures and hides many of the internal
        details.

        * pango/opentype/ftxgsub.[ch] pango/opentype/ftxgpos.[ch]:
        Adapt to OTL_Buffer.

        * pango/opentype/ftxgpos.c: Redo handling of cursive
        chains so that it actually works.

        * pango/pango-ot.h pango/opentype/pango-ot-buffer.c:
        Pango wrapper around OTL_Buffer.

        * pango/pango-ot.h pango/pango-ot-ruleset.c pango/pango-ot-buffer.c:
        Split pango_ot_ruleset_shape() into pango_ot_ruleset_substitute(),
        pango_ot_ruleset_position(), make them act on
        PangoOTBuffer, add a separate pango_ot_buffer_output()
        which does the default positioning and writes to a
        PangoGlyphString.

        * modules/arabic/arabic-fc.c modules/indic/indic-fc.c
        modules/indic/mprefixups.[ch]: Adapt to new OpenType
        interfaces; add GPOS features for Arabic.

        * pango/opentype/pango-ot-info.c: Don't derive class information
        from Unicode properties for Arabic presentation forms,
        let the shaping process derive the properties.
2004-02-29 15:44:50 +00:00
Owen Taylor d670ddf991 Sign convention for y offsets is opposite between PangoGlyphString and FT
Sat Feb 21 09:49:23 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape):
        Sign convention for y offsets is opposite between
        PangoGlyphString and FT code. (#132591)
2004-02-21 14:53:12 +00:00
Owen Taylor b9b3c131c2 Memory leak fixes from Masatake YAMATO, #130652
Fri Feb 13 10:54:18 2004  Owen Taylor  <otaylor@redhat.com>

        Memory leak fixes from Masatake YAMATO, #130652

        * pango/opentype/ftxgdef.c (TT_Done_GDEF_Table):
        Free the gdef table as well as the contained data.

        * pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition):
        Set gcd->loaded, so that the contents get freed later.
2004-02-13 16:11:40 +00:00
Owen Taylor 926b8f3229 Suport CFF fonts as well. (#131202, Manjunath Sripadarao)
Mon Jan 26 14:20:34 2004  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/pango-ot-info.c (is_truetype): Suport
        CFF fonts as well. (#131202, Manjunath Sripadarao)
2004-01-26 19:23:35 +00:00
Hans Breuer 945e479a3a moved pango_fc_* to the latter where they live on *nix too.
2003-12-13  Hans Breuer  <hans@breuer.org>

	* pango/pango.def pangoft2.def : moved pango_fc_*
	to the latter where they live on *nix too.

	* pango/makefile.msc : make it build again (including
	the Ft2 backend)

	* pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX is defined
	include the basic backend shaper

	* pango/pangowin32.c (pango_win32_render_layout) :
	initialize iter before first usage to avoid immediate crashing

	* pango/opentype/makefile.msc
            pango/modules/makefile.msc : finally build with mscv, too.
	[completely untested cause I'm not able to type, write or read
	any of these languages]

	* modules/modules.def : follow module function renaming/changes

	* modules/basic/basic-win32.c : register the right engine, i.e.
	make it compile
2003-12-13 14:31:50 +00:00
Owen Taylor ba0ccd5cfc Switch over to recommended Freetype system of include ft2build.h then
Sat Nov  1 09:32:15 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/pango-ot.h pango/pangofc-font.h modules/indic/indic-ot.h
        pango/pangoft2.c pango/opentype/pango-ot-info.c
        pango/opentype/pango-ot-ruleset.c pango/opentype/ottest.c
        pango/opentype/ftxopen.[ch] pango/opentype/ftxgdef.c
        pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
        Switch over to recommended Freetype system of
        include ft2build.h then #include FT_FREETYPE_H.
        Fixes ftmodule.h problem with current Freetype CVS.
        (#125548)
2003-11-01 15:02:17 +00:00
Owen Taylor 558171a7a3 Fix gcc-3.3 versions of macros to have the right return value.
Mon Sep 15 17:16:59 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/fterrcompat.h: Fix gcc-3.3 versions of
        macros to have the right return value.
2003-09-15 22:04:55 +00:00
Owen Taylor c99259bf7e pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems where
Mon Aug 25 10:17:21 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3)
        * pango/opentype/ftxgpos.c (Lookup_ChainContextPos3):
        Fix problems where the coverage wasn't being checked
        for the first input glyph. (#118639, Kailash C. Chowksey)
2003-08-25 14:30:12 +00:00
Owen Taylor bcf81bcc80 Add some macro definitions for gcc-3.3 that suppress the bogus
Fri Aug 22 18:09:52 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/fterrcompat.h: Add some macro definitions
        for gcc-3.3 that suppress the bogus strict-aliasing
        warnings.

        * pango/pango-utils.c (read_config_file): Use
        g_hash_table_new_full() to simplify code and fix
        gcc-3.3 warnings.

        * pango/pangox-fontmap.c (pango_x_real_get_coverage_win)
        * pango/querymodules.c (query_module): Suppress gcc-3.3
        warnings.

        * pango/modules.c (pango_find_map): Fix warning from
        missing declaration of pango_module_get_type().

        * pango/pango-context.c/pango-engine.c: Fix name confusion
        for pango_get_fallback_shaper().
2003-08-22 22:52:08 +00:00
Owen Taylor 46d379596d Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore marks of
Tue Jul 29 09:58:13 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgdef.c (Check_Property): Rewrite
        handling of IGNORE_SPECIAL_MARKS to be properly
        "ignore marks of attachment type different than
        specified. (#118456, Kailash C. Chowksey)
2003-07-29 14:21:54 +00:00
Owen Taylor 8247acad79 Revert back out the FreeType patch preventing ligatures of not-originally
Sat Jul 26 09:41:22 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Lookup_LigatureSubst):
        Revert back out the FreeType patch preventing
        ligatures of not-originally adjacent glyphs;
        it doesn't work for all scripts. (#118472,
        Kailash C. Chowksey)
2003-07-28 22:28:37 +00:00
Owen Taylor 825e6d7e86 Check for lookahead glyphs in the right place. (Patch from #116860)
Sat Jul 26 22:30:59 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst{1,2,3}):
        Check for lookahead glyphs in the right place. (Patch
        from #116860)

        * pango/opentype/ftxgpos.c (Lookup_ChainContextPos{1,2,3}):
        Same fix here.
2003-07-27 02:40:31 +00:00
Owen Taylor 03a0fe09c7 Fix return value to only contain TTO_Err_Not_Covered if *no* lookups
Sat Jul 26 22:12:46 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Do_String_Lookup,
        TT_GSUB_Apply_String): Fix return value to only
        contain TTO_Err_Not_Covered if *no* lookups
        matched. Fix memory leaks on error in Apply_String().
2003-07-27 02:19:52 +00:00
Owen Taylor e10ea2afd9 Fix confusion between boolean and FT_Error return. (GSUB equivalent of fix
Sat Jul 26 21:06:26 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Load_EmptyOrClassDefinition):
        Fix confusion between boolean and FT_Error return.
        (GSUB equivalent of fix for #108358)
2003-07-27 01:10:15 +00:00
Owen Taylor a7305ab262 Move allocation afer initial checks, fixing memory leak.
Sat Jul 26 10:52:20 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.c (Lookup_ContextPos2):
        * pango/opentype/ftxgsub.c (Lookup_ContextSubst2): Move
        allocation afer initial checks, fixing memory leak.

        * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst2):
        Fix some more error return memory leaks that weren't
        fixed in the Qt changes.
2003-07-26 15:02:13 +00:00
Owen Taylor f40b7c15e0 Fix various memory leaks from error returns that should have been jumps to
Sat Jul 26 10:43:20 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
        Fix various memory leaks from error returns that should
        have been jumps to cleanup blocks. (From Qt, Lars Knoll)
2003-07-26 14:50:23 +00:00
Owen Taylor 256d219707 Fix additional places where TTO_Err_Not_Covered wasn't considered a
Sat Jul 26 10:30:24 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.c: Fix additional places where
        TTO_Err_Not_Covered wasn't considered a successful return
        from Get_Class. (From Qt, Lars Knoll)
2003-07-26 14:35:29 +00:00
Owen Taylor 374960681e If applying a ligature lookup makes adjacent two glyphs that were not
Sat Jul 26 09:41:22 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Lookup_LigatureSubst):
        If applying a ligature lookup makes adjacent two glyphs
        that were not originally adjacent, avoid making
        subsequent ligatures between those glyphs.
        (From FreeType, Werner Lemberg, 2001-08-22, 2001-08-23)
2003-07-26 13:50:23 +00:00
Owen Taylor b682482df7 Fix some FreeType1 variable declarations that snuck in from the last
Sat Jul 26 09:16:57 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.c pango/opentype/ftxopen.c:
        Fix some FreeType1 variable declarations that snuck
        in from the last commits (Christophe Fergeau,
        118363)
2003-07-26 13:20:52 +00:00
Owen Taylor 06c12109de OpenType-1.4 update: backtrack information is stored with the item closest
Fri Jul 25 23:38:07 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
        OpenType-1.4 update: backtrack information is stored with the
        item closest to the input first (From FreeType,
        Werner Lemberg, 2002-09-26)
2003-07-26 03:45:44 +00:00
Owen Taylor 15a69e4a12 Update of GPOS and GSUB support to OpenType 1.3 (From FreeType, Werner
Fri Jul 25 23:07:06 2003  Owen Taylor  <otaylor@redhat.com>

        Update of GPOS and GSUB support to OpenType 1.3
        (From FreeType, Werner Lemberg, 2001-08-08)

        * pango/opentype/ftxopen.h: Add RIGHT_TO_LEFT LookupFlag

        * pango/opentype/ftxgpos.c (GPOS_Instance): Add 'first'
        member to mark the beginning of a chain of cursive connections.

        * pango/opentype/ftxgpos.c (Do_String_Lookup): If the
        RIGHT_TO_FLAG flag is set, shift cursive chain up so
        last glyph is on the baseline.
2003-07-26 03:14:23 +00:00
Owen Taylor 6f74f18b77 Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which allow lookup
Fri Jul 25 22:59:13 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftx{gpos,gsub}.h pango/opentype/ftxgdef.c:
        Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which
        allow lookup information to be stored at 32-bit offets
        via a double indirection. (From FreeType, Werner Lemberg,
        2001-08-08)
2003-07-26 03:03:40 +00:00
Owen Taylor 375781c454 Fix a couple of places where TTO_Err_Not_Covered wasn't considered a
Fri Jul 25 22:25:48 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (Lookup_ContextSubst2,
        Lookup_ChainContextSubst2): Fix a couple of
        places where TTO_Err_Not_Covered wasn't considered
        a successful return from Get_Class -- it means
        use class index 0. (From FreeType, Werner Lemberg,
        2001-08-06)
2003-07-26 02:44:19 +00:00
Owen Taylor 378e1889cd Improvements to OpenType-dumping code, based on changes in Qt by Lars
Fri Jul 25 20:12:00 2003  Owen Taylor  <otaylor@redhat.com>

        Improvements to OpenType-dumping code, based on
        changes in Qt by Lars Knoll.

        * pango/opentype/ottest.c: Tweak the debugging output,
        suppress some warnings.

        * pango/opentype/disasm.c: Add support for
        GSUB Context/Chain GPOS MarkBase lookups, improve
        output in various ways.
2003-07-26 02:10:42 +00:00
Owen Taylor 07bad0e77c Fix uses of g_assert() around statements with side effects. (#115498,
Thu Jul 24 17:04:21 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape):
        Fix uses of g_assert() around statements with side effects.
        (#115498, patch from David Cuthbert)
2003-07-24 21:05:29 +00:00
Owen Taylor f91deef2c9 More careful handling of face->charmap; if is NULL, try to set a unicode
Wed Apr 16 03:46:42 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/pango-ot-info.c (synthesize_class_def):
        More careful handling of face->charmap; if is NULL,
        try to set a unicode charmap, if that doesn't succeed,
        return. (Hopefully fixes #106550)
2003-04-16 21:48:29 +00:00
Owen Taylor 587b3940f3 When loading in Load_Chain{Sub,Pos}ClassRule, the limit we have only
Tue Apr 15 11:49:39 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxg{sub/pos}.c: When loading
        in Load_Chain{Sub,Pos}ClassRule, the limit we
        have only applies to the input ClassDef table.
        Fixes problem with Arial Unicode. Much help from
        Noah Levitt in tracing this down.
2003-04-16 03:58:17 +00:00
Owen Taylor 0d7567f8ea Fix mispelled constant from last commit.
Tue Apr 15 06:57:02 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.c: Fix mispelled constant
        from last commit.
2003-04-15 23:01:19 +00:00
Owen Taylor 73cd600798 Fix confusion between boolean and FT_Error return. (#108358, Noah Levitt)
Tue Apr 15 06:03:39 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.c: Fix confusion between
        boolean and FT_Error return. (#108358, Noah Levitt)

        * pango/opentype/ftxopen.c (Get_Class1): index is
        allowed to be NULL. (#108358, Noah Levitt)
2003-04-15 22:15:41 +00:00
Owen Taylor 462bd0be60 Fix infinite loop in the case where the charmap contains a character >
Tue Apr 15 05:00:39 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/pango-ot-info.c (synthesize_class_def):
        Fix infinite loop in the case where the charmap contains
        a character > 65535. (#106550, Morten Welinder.)
2003-04-15 21:05:53 +00:00
James Henstridge 312e1c1cf9 make similar changes to the ones on glib head (call gtk-docize, etc).
2003-03-11  James Henstridge  <james@daa.com.au>

    * autogen.sh: make similar changes to the ones on glib head (call
    gtk-docize, etc).

    * configure.in: move some calculations into M4 macros, rather than
    calculating them when configure runs.
    Use AC_HELP_STRING where appropriate.
    Replace gtk-doc checks with a call to GTK_DOC_CHECK.
    Replace AC_OUTPUT_COMMANDS() call with a number of calls to
    AC_CONFIG_COMMANDS (once per created file).
    Get rid of the "chmod +x pango-config" bit, because there is no
    pango-config anymore.

    * Makefile.am: get rid of custom distcheck rule, and set
    DISTCHECK_CONFIGURE_FLAGS, which is equivalent.
    Use += to select which .pc files to install.

    * pango/Makefile.am: Add rules to rebuild module-defs* files, and
    remove them on clean.
    Reorder so that rules related to each individual library are next
    to each other.
    Use BUILT_SOURCES for built sources.

    * pango/opentype/Makefile.am: don't use STRIP_BEGIN/STRIP_END.

    * modules/*/Makefile.am: simplify module makefiles through use of
    +=, and regularise them a bit (fixed a few bugs in the process).

    * docs/Makefile.am: remove common rules, and instead include
    gtk-doc.make.

    * examples/Makefile.am: add pango.modules to CLEANFILES.

    * tests/Makefile.am: remove temporary files on clean.
2003-03-11 12:31:16 +00:00
Owen Taylor 1aad15fd0c Add an --enable-debug configure argument defaulting to 'yes' for unstable
Mon Feb 17 13:06:39 2003  Owen Taylor  <otaylor@redhat.com>

        * configure.in **/Makefile.am: Add an --enable-debug
        configure argument defaulting to 'yes' for unstable
        releases and 'minimum' for stable releases.
        For minimum, -DG_DISABLE_CAST_CHECKS.

        * pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c
        pango/pangoxft-fontmap.c: Add caching of fontsets
        (#104495, initial patch and review by Soeren Sandmann)

        * pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c
        pango/pangoxft-fontmap.c pango/pangoft2-private.h
        pango/pangoxft-private.h: Remove cache of recently freed
        fonts; not necessary now that we cache fontsets.

        * pango/pangofc-fontmap.cI (pango_fc_pattern_set_free):
        Rename from pango_fc_font_set_free to reflect
        what it actually does.

        * pango/pangofc-fontmap.cI pango/pangoft-fontmap.c
        pango/pangoxft-fontmap.c: Combine clear-the-cache
        functions; we didn't need separate clear-the-font-cache
        and clear-the-pattern-cache functions.
2003-02-17 22:04:29 +00:00
Owen Taylor 5febce1ffc Up the FreeType version requirement to 2.0.9. (2.2.1 had a compilation
Wed Feb 12 16:59:23 2003  Owen Taylor  <otaylor@redhat.com>

        * configure.in pango/opentype/fterrcompat.h README:
        Up the FreeType version requirement to 2.0.9.
        (2.2.1 had a compilation failure with older versions,
        this catches it more cleanly, and removes some unneeded
        checks. #105302, problem reported by Will Partain.)
2003-02-12 22:12:55 +00:00
Owen Taylor 54e85cc0cf Export TT_New_GDEF_Table to create an empty GDEF table.
Fri Jan 10 18:56:36 2003  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgdef.c: Export TT_New_GDEF_Table
        to create an empty GDEF table.

        * pango/opentype/pango-ot-info.c: If the font doesn't
        have a class definition table, synthesize one using
        the charmap and the unicode properties of characters
        in the charmap. (Needed to make things work with various
        old Arabic fonts, such as the KACST fonts)
2003-01-11 00:16:26 +00:00
Matthias Clasen db6bb4b034 Add docs.
* docs/tmpl/xft-fonts.sgml:
	* docs/tmpl/freetype-fonts.sgml: Add docs.

	* pango/pangoxft-fontmap.c (pango_xft_substitute_changed):
	* pango/pangoft2-fontmap.c
	(pango_ft2_font_map_set_default_substitute):
	Fix doc typos.
2002-11-28 23:53:18 +00:00
Sebastian Wilhelmi 226d9b67db Do not add GLIB_CFLAGS to CFLAGS.
2002-11-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Do not add GLIB_CFLAGS to CFLAGS.

	* docs/Makefile.am, examples/Makefile.am,
	modules/arabic/Makefile.am, modules/basic/Makefile.am,
	modules/hangul/Makefile.am, modules/hebrew/Makefile.am,
	modules/indic/Makefile.am, modules/tamil/Makefile.am,
	modules/thai/Makefile.am, pango/Makefile.am,
	pango/mini-fribidi/Makefile.am, pango/opentype/Makefile.am:
	Instead add $(GLIB_CFLAGS) directly to INCLUDES (GTKDOC_CFLAGS for
	docs/Makefile.am). Also some cosmetic line wrapping and
	reindentation.
2002-11-26 13:37:10 +00:00
Manish Singh 80634a30b9 Get rid of unnecessary casts for g_object_{ref,unref}
Mon Oct 14 15:39:41 2002  Manish Singh  <yosh@gimp.org>

        * pango/pango-context.c pango/pango-layout.c pango/pangoft2.c
        pango/pangowin32-fontmap.c pango/pangowin32.c pango/pangox-fontmap.c
        pango/pangox.c pango/pangoxft-font.c pango/pangoxft-fontmap.c
        pango/testfonts.c pango/opentype/pango-ot-ruleset.c:
        Get rid of unnecessary casts for g_object_{ref,unref}
2002-10-14 22:50:48 +00:00
Owen Taylor 741993e0b1 ligatures can be also used in MarkBasePos lookups. (2001-03-17 Werner
Sun Sep 29 14:55:36 2002  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgpos.c: ligatures can be also used in
        MarkBasePos lookups. (2001-03-17  Werner Lemberg)
2002-09-29 19:06:58 +00:00
Owen Taylor a35dc445e8 Start of merges from freetype1 of OpenType fixes.
Sun Sep 29 14:51:25 2002  Owen Taylor  <otaylor@redhat.com>

        Start of merges from freetype1 of OpenType fixes.

        (2001-03-17  Werner Lemberg)

        * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c pango/opentype/ftxg\sub.c:
        More fixes for special marks.
2002-09-29 19:05:01 +00:00
Tor Lillqvist 5c53f14f37 Remove. Not used. (A static library is built here. Exported entries are in
2002-09-24  Tor Lillqvist  <tml@iki.fi>

	* pango/opentype/pango-ot.def: Remove. Not used. (A static library
	is built here. Exported entries are in ../pangoft2.def.)

	* pango/opentype/Makefile.am (EXTRA_DIST): Remove from here, too.
2002-09-23 21:45:31 +00:00
Tor Lillqvist 35e4593ccd pango/makefile.mingw.in pango/mini-fribidi/makefile.mingw Remove. Not
2002-09-23  Tor Lillqvist  <tml@iki.fi>

	* pango/makefile.mingw.in
	* pango/mini-fribidi/makefile.mingw
	* pango/opentype/makefile.mingw.in: Remove. Not maintained.

	* pango/Makefile.am (EXTRA_DIST)
	* pango/mini-fribidi/Makefile.am (EXTRA_DIST)
	* pango/opentype/Makefile.am (EXTRA_DIST): Remove
	makefile.mingw(.in) from here, too.

	* configure.in (AC_OUTPUT): Don't try to output above removed
	files.
2002-09-23 21:19:30 +00:00
Eric Mader fb279cb0bf Correctly handle back, new_advance. 2002-09-09 18:11:55 +00:00
Eric Mader c880e814a5 Don't fail when reading an empty script. 2002-09-06 22:45:23 +00:00
Owen Taylor 441e7d0292 Offset to MarkAttachClassDef is offset to table, not offset to offset to
Wed Aug  7 12:32:39 2002  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgsub.c (TT_Load_GSUB_Table):
        Offset to MarkAttachClassDef is offset to table,
        not offset to offset to table.

        * pango/opentype/ftxopen.c (Get_Device): Handle
        NULL device tables which we represent with
        d->DeltaValue == NULL.
2002-08-07 17:01:52 +00:00
Owen Taylor 48a16fa809 on Jun 3 18:56:09 2002 Owen Taylor <otaylor@redhat.com>
Xft2 and fontconfig conversion, based largely on a patch
        from Keith Packard.

        * configure.in acconfig.h: Add checks for fontconfig, switch
        Xft checks to switch for Xft2 using pkg-config.

        * pangoxft.pc.in pangoxft.pc.in
        modules/{arabic,basic,hebrew,indic,tamil}/Makefile.am
        pango/Makefile.am: Reflect new Xft/fontconfig dependencies.

        * pango/pangoxft-private.h pango/pangoxft-fontmap.c
        modules/arabic/arabic-xft.c modules/indic/indic-xft.c:
        Switch over to using Xft2 and fontconfig.

        * pango/pangoft2.c pango/pangoft2-fontmap.c pango/pangoft2-private.h
        pango/pango/Makefile.am: Remove usage of mini-xft in
        favor of fontconfig.

        * pango/pango-ot.h pango/opentype/pango-ot-info.c pango/pangoxft.h
        modules/arabic/arabic-{xft,ft2}.c modules/indic/indic-xft.c:
        Attach OpenType information directly to the FT_Face
        structure using FT_Generic.

        * modules/tamil/Makefile.am modules/tamil/tamil-xft.c
        configure.in: Remove this module, no longer needed.

        * pango/pangoxft-font.c (pango_xft_real_render): Coalesce
        calls to Xft rendering functions.
2002-06-04 00:20:51 +00:00
Owen Taylor 9df9af0b36 Fix acess outside of a loaded frame and some memory leaks on failure.
Fri May 10 14:41:27 2002  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Fix acess
        outside of a loaded frame and some memory leaks
        on failure.
2002-05-10 18:44:47 +00:00
Eric Mader a63dbbbeeb Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h,
Mon May 06 15:07:39 2002 Eric Mader <mader@jtcsv.com>
	* Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h, indic-ot-class-tables.c

	* pango/opentype/ftxgdef.c: Compute full offset for mark attachment class table

	* pango/opentype/ftxgpos.c: Only return TTO_Err_Not_Covered if nothing matches

	* pango/opentype/pango-ot-ruleset.c: enable GPOS processing
2002-05-07 20:39:14 +00:00
Owen Taylor cf00f8217c Add compatibility defines for changes in FreeType 2.1.0.
Tue Apr 23 16:15:07 2002  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/fterrcompat.h: Add compatibility
        defines for changes in FreeType 2.1.0.
2002-04-23 20:20:29 +00:00
Owen Taylor 6b1b04e373 In Load_ChainContextSubst2, handle the case where an empty class
Fri Mar 15 01:35:56 2002  Owen Taylor  <otaylor@redhat.com>

	* pango/opentype/ftxgsub.c pango/opentype/ftxopen.c
	pango/opentype/ftxopenf.h: In Load_ChainContextSubst2,
	handle the case where an empty class definition
	is represented by an offset of 0.

	* pango/opentype/ftxgpos.c: Same for Load_ChainContextPos2.

	* pango/opentype/{ftxopen.c,ftxgpos.c,ftxgsub.c,ftgdef.c}:
	Fix pervasive bug where on cleanups on failure of loading
	an array element, all array elements were freed, not
	just the ones that had been succesfully loaded.
2002-03-15 06:46:05 +00:00
Owen Taylor 6050933f33 Uncomment GPOS parts.
Thu Mar 14 23:05:18 2002  Owen Taylor  <otaylor@redhat.com>

        * pango/opentype/ftxopen.c: Uncomment GPOS parts.

        * pango/opentype/disasm.c: Start adding some GPOS
        dumping.
2002-03-15 04:22:14 +00:00
Sebastian Wilhelmi 973bd60a25 Resuming aborted commit
Resuming aborted commit
2001-12-13 17:44:46 +00:00
Matthias Clasen 6926ca9425 Remove declarations of unimplemented functions
* docs/pango-sections.txt, pango/pango-ot.h: Remove declarations
        of unimplemented functions pango_ot_ruleset_set_glyph_loader and
        pango_ot_ruleset_set_alternate_func and the related typedefs
        PangoOTGlyphLoader and PangoOTAlternateFunc.

        * pango/opentype/pango-ot-info.c,
        pango/opentype/pango-ot-ruleset.c: Documentation updates.
2001-10-30 22:09:20 +00:00
Havoc Pennington 87a475c09f header to abstract the difference between FreeType 2.0.3 and 2.0.4 error
2001-09-19  Havoc Pennington  <hp@redhat.com>

	* pango/opentype/fterrcompat.h: header to abstract the difference
	between FreeType 2.0.3 and 2.0.4 error codes, based on the
	configure check.

	* configure.in: check for the tterrors.h header in FreeType 2.0.3,
	and define HAVE_FREETYPE_2_0_3 if we have it
2001-09-19 21:20:36 +00:00
Owen Taylor 9c37226efe Up to 0.19.
Tue Sep 18 15:47:08 2001  Owen Taylor  <otaylor@redhat.com>

	* configure.in (PANGO_MINOR_VERSION): Up to 0.19.

	* pango/pango-font.h pango/pango-fontmap.[ch] pango/fonts.c
	pango/pangoxft-fontmap.c pango/pangoft-fontmap.c pango/pango-context.[ch]
	pango/pangox-fontmap.c: Add new PangoFontFace and PangoFontFamily
	object types, and change the font listing API to list faces and
	families, instead of face names and font descriptions.

	* pango/pango-font.h pango/fonts.c: Make PangoFontDescription
	an opaque heap-allocated structure, add accessors and
	convenience functions.

	* pango/pango-font.h pango/pango-private.h: Make PangoFontMetrics
	heap allocated, protect the structure definition with
	#ifdef PANGO_ENABLE_BACKEND, and add getters for the fields.

	* pango/pango-attributes.[ch] ( pango_attr_iterator_get_font):
	instead of providing a base font description and one to fill
	in, provide a single font description to modify based on
	the attributes.

	* pango/pango-attributes.[ch]: Fix PangoAttrFontDesc to have
	a PangoFontDescription by reference, not by value.

	* pango/pango-utils.[ch]: make pango_parse_style() and friends
	take pointers to individual enumerations instead of to a
	PangoFontDescription structure.

	* pango/*.c: Fix for the PangoFontDescription and PangoFontMetrics
	changes.

        * pango/pango-{break,engine,indic,ot,xft}.h pango/Makefile.am
	pango/opentype/Makefile.am: Protect portions with
	PANGO_ENABLE_ENGINE to shrink the public API.

	* modules/*/Makefile.am: -DPANGO_ENABLE_ENGINE.

	* pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c: Move
	pango_x_font_get_unknown_glyph() into public header since it is
	used from modules.

	* pango/pango-{context,font,fontmap,modules.utils}.h pango/Makefile.am:
	Protect portions with PANGO_ENABLE_BACKEND to shrink the public	API.

	* pango/*.h: Use G_BEGIN/END_DECLS

	* examples/viewer-qt.[cc,h]: Fix for changes to font listing API,
	PangoFontDescription.

	* pango/pango-indic.h modules/indic/*: Since we install this
	header fix it up to Pango conventions, namespece
	ZERO_WIDTH_JOINER, ZERO_WIDTH_NON_JOINER.

	* docs/pango-sections.txt: Updated.
2001-09-18 20:05:20 +00:00
Darin Adler 7dd0838863 Remove stray semicolon.
* modules/arabic/arabic-x.c: (arabic_engine_shape): Remove stray
	semicolon.

	* modules/arabic/arconv.h:
	* modules/arabic/arconv.c: (shape), (doublelig), (arabic_reshape):
	Use long* instead of int* for parameter to match what's passed in.

	* modules/indic/bengali-x.c: Add missing <string.h> include.
	(pango_indic_make_ligs): Use local variable that was added but not
	ever used.
	(pango_indic_engine_shape): Remove unused locals.

	* modules/indic/devanagari-x.c: Add missing <string.h> include.
	(pango_indic_engine_shape): Remove unused local.

	* modules/indic/gujarati-x.c: Add missing <string.h> include.
	(pango_indic_engine_shape): Remove unused local

	* modules/tamil/tamil-x.c: (tamil_engine_shape): Initialize a
	variable to quiet the compiler's unused warning.

	* pango/.cvsignore: Ignore more generated files.

	* pango/opentype/ftxgpos.c: (Get_Anchor): Add code to set up the
	ap variable. The old code would just use the uninitialized value.

	* pango/opentype/ftxopen.c: (Load_Coverage): Remove unused local.

	* pango/opentype/pango-ot-ruleset.c: (pango_ot_ruleset_shape):
	Remove unused local.

	* pango/pango-attributes.c: (pango_attr_list_get_type),
	(pango_color_get_type): Add needed function type casts (just
	warnings under gcc, but could be errors in other compilers).

	* pango/pangoxft-font.c: (pango_xft_font_get_metrics),
	(pango_xft_font_get_coverage), (pango_xft_get_shaper_map),
	(pango_xft_font_find_shaper): Switch from lang char* to
	PangoLanguage*. The code was still compiling, but would not have
	worked.
2001-07-12 16:34:40 +00:00
Owen Taylor 68f8a64307 Use ISO C99 varargs when available.
Fri May 18 11:30:57 2001  Owen Taylor  <otaylor@redhat.com>

	* pango/opentype/disasm.c: Use ISO C99 varargs when
	available.

Thu May 17 11:16:23 2001  Owen Taylor  <otaylor@redhat.com>

	* pango/mapping.c: Fixup docs, remove some FIXMEs that are
	no longer applicable.

	* pango/pango-layout.c: Move by graphemes, not characters.

	* pango/pango-layout.c (pango_layout_line_x_to_index):
	Position at the closest grapheme boundary, not at character
	boundaries.

	* pango/pango-layout.c (pango_layout_line_index_to_x):
	Return positions of grapheme boundaries, not character
	boundaries.
2001-05-18 16:04:40 +00:00
Owen Taylor 89eb36ebc6 Remove excess call to DONE_Stream left over from conversion from FT1.
Tue Apr 24 11:45:55 2001  Owen Taylor  <otaylor@redhat.com>

	* pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Remove
	excess call to DONE_Stream left over from conversion
	from FT1. (reported by Michael Jansson)
2001-04-24 15:47:22 +00:00
Owen Taylor c61a730aae Release 0.14
Tue Apr  3 15:05:19 2001  Owen Taylor  <otaylor@redhat.com>

	* Release 0.14

	* NEWS: updated.

        * pango/pango/opentype/Makefile.am: make dist fixes.

	* configure.in (PANGO_MINOR_VERSION): Up to 0.14
2001-04-03 19:07:36 +00:00
Tor Lillqvist 405b878923 Only a script engine here.
2000-12-21  Tor Lillqvist  <tml@iki.fi>

	* modules/basic/basic-win32.c (script_engine_load): Only a script
	engine here.

	* pango/makefile.mingw.in: Add the built pango-enum-types.[ch].

	* pango/pango.def
	* pango/pangoft2.def: Update.

	* pango/opentype/pango-ot.def
	* pango/opentype/makefile.mingw.in: New files.

	* pango/opentype/Makefile.am (EXTRA_DIST): Add them.

	* configure.in (included_modules): Generate
	pango/opentype/makefile.mingw.
2000-12-21 19:55:23 +00:00
Owen Taylor 80a1582913 Since Xft may only be available statically without shlib deps, check for
Tue Dec 19 22:47:16 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in pango-config.in pangoxft.pc.in
	modules/basic/Makefile.am: Since Xft may only be available
	statically without shlib deps, check for FreeType libs explicitly
	and include them when linking, otherwise things won't work. Also,
	define FREETYPE_CFLAGS from freetype-config --cflags.

	* modules/basic/basic-xft.c pango/pangoxft-font{,map}.c: Fool
	Xft into not converting glyph indices by loading the
	face unencoded then calling FT_Set_Charmap ourselves.

	* pango/Makefile.am pango/pango-ot.h pango/opentype/* :Add start
	of opentype handling - most of the actually meat of the code here
	is the OpenType layout code from FreeType 1 ported to freetype2
	and adapted slighlty for our purposes.  Also, includes a
	incomplete OpenType-table-dumping code useful for figuring
	out what is going on.

	* pango/pangoxft.h pango/pangoxft-font.h: Add calls for
	getting FT_Face and PangoOTInfo from PangoXftFont.

	* modules/arabic/{Makefile.am,arabic-ot.[ch],arabic-xft.c}:
	Initial support for rendering Arabic with OpenType fonts.
2000-12-20 04:41:36 +00:00