Commit Graph

1363 Commits

Author SHA1 Message Date
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