Commit Graph

725 Commits

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