Commit Graph

1327 Commits

Author SHA1 Message Date
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
02f6e62d6c Build fix 2011-04-11 13:27:21 -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
9faa980067 Add an in-tree test suite
Uses the glib testing framework.  Wrote unit tests for hb-common.h
types.
2011-04-11 12:46:49 -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
bbdeff5964 Add test directory 2011-04-07 16:05:07 -04:00
Behdad Esfahbod
4accc92afc Update TODO items 2011-04-07 15:53:26 -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
a07874300a Don't use the m4/ dir
We just require people to have libtool, pkg-config, etc installed
when running autogen.sh
2011-01-10 02:27:49 -05:00
Behdad Esfahbod
7bbe14bed8 Fix 'make distcheck' 2011-01-09 22:29:14 -05:00
Javier Jardón
2abe1264a5 Bug 31174 - Update autotools configuration 2011-01-09 22:18:53 -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
76691f0240 Fix ICU detection 2011-01-06 14:16:59 -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
d1f1707adc Bug 31965 - some GNU/Linux distributions lack icu.pc but have icu-config
Patch from suzuki toshiya.
2010-11-30 00:57:15 -05:00
Behdad Esfahbod
3c48982be6 Adjust pyx files to reflect change from int to hb_var_int_t
Patch from Thomas Hunger.
2010-11-28 19:39:47 -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