Behdad Esfahbod [Sat, 9 Jun 2012 01:45:00 +0000 (21:45 -0400)]
Remove unused buffer->replace_glyphs_be16
Behdad Esfahbod [Sat, 9 Jun 2012 01:44:06 +0000 (21:44 -0400)]
Don't use replace_glyphs_be for MultipleSubst
Behdad Esfahbod [Sat, 9 Jun 2012 01:41:46 +0000 (21:41 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 01:32:43 +0000 (21:32 -0400)]
Add test for static initializers and other C++ stuff
Behdad Esfahbod [Sat, 9 Jun 2012 01:29:18 +0000 (21:29 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 01:01:45 +0000 (21:01 -0400)]
Remove done TODO items
Behdad Esfahbod [Sat, 9 Jun 2012 01:01:20 +0000 (21:01 -0400)]
Merge clusters during normalization
Behdad Esfahbod [Sat, 9 Jun 2012 00:56:05 +0000 (20:56 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 00:55:21 +0000 (20:55 -0400)]
Use merge_clusters instead of open-coding
Behdad Esfahbod [Sat, 9 Jun 2012 00:40:02 +0000 (20:40 -0400)]
Use merge_clusters when forming Unicode clusters
Behdad Esfahbod [Sat, 9 Jun 2012 00:35:18 +0000 (20:35 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 00:33:27 +0000 (20:33 -0400)]
Extend into main buffer if extension hit end of out-buffer merging clusters
Behdad Esfahbod [Sat, 9 Jun 2012 00:31:32 +0000 (20:31 -0400)]
Extend end when merging clusters in out-buffer
Behdad Esfahbod [Sat, 9 Jun 2012 00:30:03 +0000 (20:30 -0400)]
Extend clusters backward in out-buffer
Behdad Esfahbod [Sat, 9 Jun 2012 00:27:53 +0000 (20:27 -0400)]
Extend clusters backwards, into the out-buffer too
Behdad Esfahbod [Sat, 9 Jun 2012 00:21:02 +0000 (20:21 -0400)]
Clear output buffer before calling GSUB pause functions
Behdad Esfahbod [Sat, 9 Jun 2012 00:17:10 +0000 (20:17 -0400)]
When merging clusters, extend the end
Behdad Esfahbod [Sat, 9 Jun 2012 00:13:56 +0000 (20:13 -0400)]
Merge clusters when ligating
Behdad Esfahbod [Fri, 8 Jun 2012 23:29:44 +0000 (19:29 -0400)]
Minor, use next_glyph()
Behdad Esfahbod [Fri, 8 Jun 2012 23:23:43 +0000 (19:23 -0400)]
Minor
Behdad Esfahbod [Fri, 8 Jun 2012 18:18:30 +0000 (14:18 -0400)]
Increase Uniscribe MAX_ITEMS
Behdad Esfahbod [Fri, 8 Jun 2012 18:08:32 +0000 (14:08 -0400)]
Fix Uniscribe charset matching
Previously was failing to match fonts that didn't support CHARSET_ANSI.
There still remains a problem with the Uniscribe backend, in that if a
font with the same family name is installed, and is newer, the native
one is preferred over the font we provide. Fixing it requires rewriting
the name table with a unique family name...
Behdad Esfahbod [Fri, 8 Jun 2012 15:48:29 +0000 (11:48 -0400)]
Remove unused code
Behdad Esfahbod [Fri, 8 Jun 2012 14:53:35 +0000 (10:53 -0400)]
Remove zero-width chars in the fallback shaper too
Behdad Esfahbod [Fri, 8 Jun 2012 14:43:49 +0000 (10:43 -0400)]
Fix regressions introduced by sed. Ouch!
Introduced in
99c2695759a6af855d565f4994bbdf220570bb48.
Broken mark-mark and mark-ligature stuff.
Behdad Esfahbod [Fri, 8 Jun 2012 14:23:03 +0000 (10:23 -0400)]
Whitespace
Behdad Esfahbod [Fri, 8 Jun 2012 14:22:06 +0000 (10:22 -0400)]
Fix Uniscribe clusters with direction-overriden Arabic
Behdad Esfahbod [Fri, 8 Jun 2012 14:10:29 +0000 (10:10 -0400)]
Really fix override-direction in Uniscribe
Behdad Esfahbod [Fri, 8 Jun 2012 13:59:43 +0000 (09:59 -0400)]
Unbreak Uniscribe
Oops. hb_tag_t and OPENTYPE_TAG have different endianness. Perhaps
something to add API for in hb-uniscribe.h
Behdad Esfahbod [Fri, 8 Jun 2012 13:26:17 +0000 (09:26 -0400)]
Override direction in Uniscribe backend
Matches OT backend now.
Behdad Esfahbod [Fri, 8 Jun 2012 13:20:53 +0000 (09:20 -0400)]
Make Uniscribe backend respect selected script
Behdad Esfahbod [Thu, 7 Jun 2012 21:42:48 +0000 (17:42 -0400)]
Add note re _NullPool
Behdad Esfahbod [Thu, 7 Jun 2012 21:31:46 +0000 (17:31 -0400)]
Fix alignment-requirement missmatch
Detected by clang and lots of cmdline options.
Behdad Esfahbod [Thu, 7 Jun 2012 19:48:18 +0000 (15:48 -0400)]
Fix clang warning with NO_MT path
Behdad Esfahbod [Thu, 7 Jun 2012 19:44:12 +0000 (15:44 -0400)]
Fix warnings produced by clang analyzer
Behdad Esfahbod [Thu, 7 Jun 2012 17:32:57 +0000 (13:32 -0400)]
Fix warnings
Behdad Esfahbod [Wed, 6 Jun 2012 15:29:25 +0000 (11:29 -0400)]
Minor
Behdad Esfahbod [Wed, 6 Jun 2012 15:27:17 +0000 (11:27 -0400)]
Fix ASSERT_POD on clang
As reported by bashi. Not tested.
Behdad Esfahbod [Wed, 6 Jun 2012 07:42:36 +0000 (03:42 -0400)]
Enabled ICU again
Behdad Esfahbod [Wed, 6 Jun 2012 07:30:09 +0000 (03:30 -0400)]
Add ASSERT_POD for most objects
Behdad Esfahbod [Wed, 6 Jun 2012 07:07:01 +0000 (03:07 -0400)]
Add macros to check that types are POD
Behdad Esfahbod [Wed, 6 Jun 2012 01:14:04 +0000 (21:14 -0400)]
Don't link to libstdc++
New try.
Behdad Esfahbod [Wed, 6 Jun 2012 00:49:51 +0000 (20:49 -0400)]
Remove unused hb_static_mutex_t
Behdad Esfahbod [Wed, 6 Jun 2012 00:39:07 +0000 (20:39 -0400)]
Disable Intel atomic ops on mingw32
Apparently the configure test is not enough...
Behdad Esfahbod [Wed, 6 Jun 2012 00:35:40 +0000 (20:35 -0400)]
Cleanup TRUE/FALSE vs true/false
Behdad Esfahbod [Wed, 6 Jun 2012 00:31:49 +0000 (20:31 -0400)]
Fix inert buffer set_length() with zero
Oops!
Behdad Esfahbod [Wed, 6 Jun 2012 00:16:56 +0000 (20:16 -0400)]
Add configure tests for Intel atomic intrinsics
Behdad Esfahbod [Tue, 5 Jun 2012 23:55:46 +0000 (19:55 -0400)]
Shuffle
Behdad Esfahbod [Tue, 5 Jun 2012 23:23:29 +0000 (19:23 -0400)]
Remove last static initializer
We're free! Lazy or immediate...
Behdad Esfahbod [Tue, 5 Jun 2012 23:17:02 +0000 (19:17 -0400)]
Make hb-view err if all shapers failed
Behdad Esfahbod [Tue, 5 Jun 2012 22:30:19 +0000 (18:30 -0400)]
Make hb-ft static-initializer free
Behdad Esfahbod [Tue, 5 Jun 2012 22:14:03 +0000 (18:14 -0400)]
Undo default unicode-funcs to avoid static initializer again
Behdad Esfahbod [Tue, 5 Jun 2012 22:00:45 +0000 (18:00 -0400)]
Implement lock-free hb_language_t
Another static-initialization down. One more to go.
Behdad Esfahbod [Tue, 5 Jun 2012 21:27:20 +0000 (17:27 -0400)]
Add atomic-pointer functions
Gonig to use these for lock-free linked-lists, to be used for
hb_language_t among other things.
Behdad Esfahbod [Tue, 5 Jun 2012 20:34:49 +0000 (16:34 -0400)]
Add gcc intrinsics implementations for atomic and mutex
Behdad Esfahbod [Tue, 5 Jun 2012 20:06:28 +0000 (16:06 -0400)]
Add gcc implementation for atomic ops
Behdad Esfahbod [Tue, 5 Jun 2012 19:37:19 +0000 (15:37 -0400)]
Add a mutex to object header
Removes one more static-initialization. A few more to go.
Behdad Esfahbod [Tue, 5 Jun 2012 19:17:44 +0000 (15:17 -0400)]
Remove static initializers from indic
Behdad Esfahbod [Tue, 5 Jun 2012 16:31:51 +0000 (12:31 -0400)]
Better hide nil objects and make them const
Behdad Esfahbod [Tue, 5 Jun 2012 18:17:32 +0000 (14:17 -0400)]
Remove constructor from hb_prealloced_array_t
This was causing all object types to be non-POD and have static
initializers. We don't need that!
Now, most nil objects just moved from .bss to .data. Fixing for that
coming soon.
Behdad Esfahbod [Tue, 5 Jun 2012 17:30:11 +0000 (13:30 -0400)]
Check for atexit()
Behdad Esfahbod [Tue, 5 Jun 2012 17:04:20 +0000 (13:04 -0400)]
Fix warnings
Behdad Esfahbod [Mon, 4 Jun 2012 14:21:22 +0000 (10:21 -0400)]
s/script-punjabi/script-gurmukhi/
Behdad Esfahbod [Mon, 4 Jun 2012 12:56:00 +0000 (08:56 -0400)]
Add --verbose to hb-shape
Just turns all --show-* options on.
Behdad Esfahbod [Mon, 4 Jun 2012 12:28:19 +0000 (08:28 -0400)]
Remove comma at the end of enum
As reported by Jonathan Kew on the list.
Behdad Esfahbod [Sun, 3 Jun 2012 19:54:19 +0000 (15:54 -0400)]
Remove const from ref_count.ref_count
According to Tom Hacohen this was breaking build with some compilers.
In file included from hb-buffer-private.hh:35:0,
from hb-ot-map-private.hh:32,
from hb-ot-shape-private.hh:32,
from hb-ot-shape.cc:29:
hb-object-private.hh: In constructor '_hb_object_header_t::_hb_object_header_t()':
hb-object-private.hh:97:8: error: uninitialized const member in 'struct hb_reference_count_t'
hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count' should be initialized
In file included from hb-ot-shape.cc:33:0:
hb-set-private.hh: In constructor '_hb_set_t::_hb_set_t()':
hb-set-private.hh:37:8: note: synthesized method '_hb_object_header_t::_hb_object_header_t()' first required here
hb-ot-shape.cc: In function 'void hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, hb_set_t*)':
hb-ot-shape.cc:521:12: note: synthesized method '_hb_set_t::_hb_set_t()' first required here
Behdad Esfahbod [Sun, 3 Jun 2012 19:52:51 +0000 (15:52 -0400)]
Minor
Behdad Esfahbod [Sat, 2 Jun 2012 16:21:19 +0000 (12:21 -0400)]
[util] Minor
Behdad Esfahbod [Sat, 2 Jun 2012 16:13:08 +0000 (12:13 -0400)]
[util] Make hb-shape continue shaping other lines if shapers failed
Behdad Esfahbod [Fri, 1 Jun 2012 17:46:26 +0000 (13:46 -0400)]
Remove tab character like other "zero-width" characters
Uniscribe does that, this make comparing results to Uniscribe
easier.
Behdad Esfahbod [Fri, 1 Jun 2012 17:45:25 +0000 (13:45 -0400)]
Remove unused variable
Behdad Esfahbod [Mon, 28 May 2012 14:46:47 +0000 (10:46 -0400)]
Remove hb_atomic_int_set/get()
We never use them in fact...
I'm just adjusting these as I better understand the requirements of
the code and the guarantees of each operation.
Behdad Esfahbod [Mon, 28 May 2012 02:39:48 +0000 (22:39 -0400)]
Minor Malayalam test case
From https://bugs.freedesktop.org/show_bug.cgi?id=45166
Behdad Esfahbod [Mon, 28 May 2012 02:07:04 +0000 (22:07 -0400)]
Add Myanmar test case
Behdad Esfahbod [Sun, 27 May 2012 15:29:21 +0000 (11:29 -0400)]
Add hb_font_get_glyph_name() and hb_font_get_glyph_from_name()
Behdad Esfahbod [Sun, 27 May 2012 14:45:57 +0000 (10:45 -0400)]
Warn if no Unicode functions implementation is found
Behdad Esfahbod [Sun, 27 May 2012 14:20:47 +0000 (10:20 -0400)]
Cleanup atomic ops on OS X
Behdad Esfahbod [Sun, 27 May 2012 14:11:13 +0000 (10:11 -0400)]
Don't use atomic ops in hb_cache_t
We don't care about linearizability, so unprotected int read/write
are enough, no need for expensive memory barriers. It's a cache,
that's all.
Behdad Esfahbod [Sun, 27 May 2012 14:09:18 +0000 (10:09 -0400)]
Minor
Behdad Esfahbod [Sun, 27 May 2012 14:01:13 +0000 (10:01 -0400)]
Fix Windows atomic get/set
According to:
http://msdn.microsoft.com/en-us/library/65tt87y8.aspx
MemoryBarrier() is the right macro to protect these, not _ReadBarrier()
and/or _WriteBarrier().
Behdad Esfahbod [Fri, 25 May 2012 18:30:24 +0000 (14:30 -0400)]
[util] Add hidden --shaper that is equivalent of --shapers
Behdad Esfahbod [Fri, 25 May 2012 18:17:54 +0000 (14:17 -0400)]
Add set iterator
Behdad Esfahbod [Fri, 25 May 2012 17:48:00 +0000 (13:48 -0400)]
Add set symmetric difference
Behdad Esfahbod [Thu, 24 May 2012 19:00:01 +0000 (15:00 -0400)]
Minor
Behdad Esfahbod [Thu, 24 May 2012 14:46:39 +0000 (10:46 -0400)]
Fix hb_atomic_int_set() implementation for HB_NO_MT
As pointed out by Jonathan Kew.
Behdad Esfahbod [Thu, 24 May 2012 02:00:25 +0000 (22:00 -0400)]
Update TODO
Behdad Esfahbod [Thu, 24 May 2012 01:50:43 +0000 (21:50 -0400)]
Add Arabic diacritics tests
Behdad Esfahbod [Wed, 23 May 2012 02:12:22 +0000 (22:12 -0400)]
Fix substitution glyph class propagation
The old code was doing nothing.
Still got to find an example font+string that makes this matter, but
need this for fixing synthetic GDEF anyway.
Behdad Esfahbod [Fri, 18 May 2012 19:04:35 +0000 (15:04 -0400)]
Add CJK Compatibility Ideographs tests
From:
http://people.mozilla.org/~jdaggett/tests/cjkcompat.html
Behdad Esfahbod [Fri, 18 May 2012 02:04:45 +0000 (22:04 -0400)]
Add a lock-free cache type for int->int functions
To be used for cmap and advance caching if desired.
Behdad Esfahbod [Fri, 18 May 2012 02:02:08 +0000 (22:02 -0400)]
Implement hb_atomic_int_set() for OS X
Behdad Esfahbod [Fri, 18 May 2012 01:53:24 +0000 (21:53 -0400)]
Minor
Behdad Esfahbod [Fri, 18 May 2012 01:23:49 +0000 (21:23 -0400)]
Add hb_atomic_int_set() again
Behdad Esfahbod [Fri, 18 May 2012 01:01:04 +0000 (21:01 -0400)]
Fix type conflicts on Windows without glib
Behdad Esfahbod [Fri, 18 May 2012 00:55:12 +0000 (20:55 -0400)]
Don't use min/max as function names
They can be macros on some systems. Eg. mingw32.
Behdad Esfahbod [Fri, 18 May 2012 00:50:38 +0000 (20:50 -0400)]
Prefer native atomic/mutex ops to glib's
Behdad Esfahbod [Fri, 18 May 2012 00:30:46 +0000 (20:30 -0400)]
Move atomic ops into their own header
Behdad Esfahbod [Fri, 18 May 2012 00:15:49 +0000 (20:15 -0400)]
Update TODO
Behdad Esfahbod [Wed, 16 May 2012 03:53:18 +0000 (23:53 -0400)]
[util] Add hb-ot-shape-closure tool
Computes all the glyphs that may be generated given a font and
set of Unicode characters.
The order of the Unicode characters is irrelevant.
Sample output:
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf f
f f_f
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf i
i
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf fi
f f_i f_f_i f_f i
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ب
uni0628 uni0628.init uni0628.medi uni0628.fina
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ا
uni0627 uni0627.fina
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با
uni0627 uni0627.fina uni0628 uni0628.init uni0628.medi uni0628.fina
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با --no-glyph-names
5 6 133 134 135 136
Behdad Esfahbod [Wed, 16 May 2012 03:10:39 +0000 (23:10 -0400)]
[util] Refactor to accommodate for upcoming new tool