Commit Graph

3225 Commits

Author SHA1 Message Date
Behdad Esfahbod 21cb08a417 Remove unused SEA shaper 2015-07-21 17:47:06 +01:00
Behdad Esfahbod db1e9cdd41 Retire SEA shaper in favor of USE 2015-07-21 17:46:06 +01:00
Behdad Esfahbod 87dde9c647 [USE] Only use USE shaper if script system is not DFLT
Same logic as Indic and SEA.
2015-07-21 17:31:43 +01:00
Behdad Esfahbod 29832d797f Route misc untested scripts through USE shaper instead of Indic
These were never tested with Indic shaper, and indeed wouldn't work there
because they didn't have their viramas and other config defined.  They are
all also supported by MS through USE, so route them there.
2015-07-21 17:24:18 +01:00
Behdad Esfahbod 40c4a991c7 [USE] Implement dotted-circle
This makes USE feature-complete as far as the Indic-like features
are concerned.
2015-07-21 17:14:54 +01:00
Behdad Esfahbod 7ce03ebe7c [USE] Move pref 2015-07-21 16:55:26 +01:00
Behdad Esfahbod 2d4b62ead9 [USE] Fix-up variation selectors and word joiner in table 2015-07-21 16:46:37 +01:00
Behdad Esfahbod ad7178227f [USE] Use a couple warnings 2015-07-21 16:43:27 +01:00
Behdad Esfahbod a85c4da9b1 [USE] Move rphf 2015-07-21 16:07:10 +01:00
Behdad Esfahbod 5b5617e066 Add FLAG_UNSAFE()
Unused right now.
2015-07-21 15:52:15 +01:00
Behdad Esfahbod f8160a4959 Add FLAG_SAFE() for values known to be small-enough
And add check to FLAG()
2015-07-21 15:50:02 +01:00
Behdad Esfahbod 366aeaad00 Add note re ASSERT_STATIC_EXPR_ZERO() 2015-07-21 15:45:48 +01:00
Behdad Esfahbod d6adca9fbb Remove unused macro ASSERT_STATIC_EXPR() 2015-07-21 15:17:27 +01:00
Behdad Esfahbod 1025e1a9e7 Use unsigned in FLAG() 2015-07-21 15:05:35 +01:00
Behdad Esfahbod cf59c7589c [USE] Use use_category() for rphf/pref memory 2015-07-21 14:51:45 +01:00
Behdad Esfahbod 595936ec25 [USE] Hook of rphf and pref custom processing
Still no reordering.
2015-07-21 14:15:35 +01:00
Behdad Esfahbod ba72801325 [USE] Add CGJ to table 2015-07-21 11:57:23 +01:00
Behdad Esfahbod 4febed61ed [USE] Set up features 2015-07-21 10:38:48 +01:00
Behdad Esfahbod 52a9577956 [USE] Hook up new scripts to USE shaper
Don't reroute scripts that we were routing to other shapers
before (just yet).
2015-07-21 10:02:04 +01:00
Behdad Esfahbod b4c0829bc1 [USE] Remove unused Unicode data enums from USE C++ side 2015-07-21 09:31:19 +01:00
Behdad Esfahbod 44910cef62 [USE] Finish converting Unicode positional categories to USE
Even compiles.
2015-07-20 18:01:10 +01:00
Behdad Esfahbod ad72555252 [USE] Map from Unicode data to USE syllabic categories
Positional sub-categories not applied yet.
2015-07-20 17:00:06 +01:00
Behdad Esfahbod 20e246e674 [USE] Start moving Unicode-to-USE mapping into Python code 2015-07-20 15:56:19 +01:00
Behdad Esfahbod eb74535cc2 [USE] Fix Number clusters
The spec wrongly has "H" where "HN" is meant.
2015-07-20 15:33:25 +01:00
Behdad Esfahbod a9663958fe [USE] Start putting together the shaper body 2015-07-20 14:24:55 +01:00
Behdad Esfahbod e0eabd7f67 [USE] Put a Ragel machine together
Grammar from the spec!
2015-07-20 13:50:38 +01:00
Behdad Esfahbod fd74b939b1 Minor 2015-07-20 13:30:45 +01:00
Behdad Esfahbod 5e5c8560cc [USE] Minor optimization of USE table 2015-07-20 12:01:20 +01:00
Behdad Esfahbod c48ff28852 [USE] Build Universal Shaping Engine data table from Unicode 8 files 2015-07-20 11:46:17 +01:00
Behdad Esfahbod e2c95116e1 [USE] Add Universal Shaping Engine to Makefile 2015-07-20 11:33:27 +01:00
Behdad Esfahbod 41a29af805 Update Arabic shaping table for Unicode 8.0 2015-07-15 01:39:57 +01:00
Behdad Esfahbod 64a2726e2c Add Unicode 8.0 scripts
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1183209
2015-07-15 01:36:39 +01:00
Behdad Esfahbod 9ae156b768 Fix pragma usage
https://bugs.freedesktop.org/show_bug.cgi?id=91228

Commit cdcdfe61b9 changed two `#pragma
message` to `#pragma error` in hb-unicode.cc, however MSVC uses #error,
just like the #else branch. `#pragma error` is an unknown pragma so
MSVC does not fail the build because of it, which I believe was the
intention of that commit.

If it's meant to be an #error, then the #ifdef for _MSC_VER can be
removed entirely.
2015-07-05 22:43:17 +01:00
Behdad Esfahbod 5f13bbd9d4 When removing default-ignorables, merge clusters
Fixes test-shape, and:
https://code.google.com/p/chromium/issues/detail?id=497578
2015-06-19 13:31:49 -07:00
Behdad Esfahbod 82b521aeb7 Rewrite hide_default_ignorables
Separate the loops for the two cases of replacing with space
and deleting.  For deleting, use the out-buffer machinery.

Needed for upcoming cluster merge fix.
2015-06-19 13:26:03 -07:00
Behdad Esfahbod 351f68f4e0 [bindings] Fix hb_language_get_default() and hb_ot_tag_to_language()
Part of https://github.com/behdad/harfbuzz/issues/91
2015-06-12 17:46:06 -07:00
Behdad Esfahbod a5e4f6d608 Fix warnings: "member call on null pointer of type"
https://bugzilla.mozilla.org/show_bug.cgi?id=1167119
2015-06-10 10:57:46 -07:00
Behdad Esfahbod 8dacb7f8b4 Add include check to hb-ot-font.h 2015-06-03 11:53:42 -07:00
Sascha Brawer 01c3a88543 Fix "Since:" tags
Based on data from http://upstream-tracker.org/versions/harfbuzz.html
Resolves #103
2015-06-01 13:25:27 +02:00
Behdad Esfahbod f1b44303df Fix unary minus operator applied to unsigned int
Applying unary minus operator to unsigned int causes the following
warning on MSVS:

  warning C4146: unary minus operator applied to unsigned type, result still unsigned

Based on patch from Koji Ishi.

Fixes https://github.com/behdad/harfbuzz/pull/110
2015-05-21 14:00:15 -07:00
Behdad Esfahbod 1ae6cdb365 [gobject] Remove hb_language_t workarounds for g-i shortcomings
Using latest gobject-introspection, I don't seem to be having this
problem anymore:

  https://bugzilla.gnome.org/show_bug.cgi?id=707656

Removing that kludge makes language_t behave more like the way I expect it
in Python.

Also fixes:
https://github.com/behdad/harfbuzz/issues/91
2015-05-19 17:42:30 -07:00
Behdad Esfahbod ece434fa0f [gobject] Macroize value types
Fixes user_data_t
2015-05-19 17:20:58 -07:00
Behdad Esfahbod 9df099b483 [ft] Don't set *glyph in get_glyph() if glyph not found 2015-05-18 18:37:46 -07:00
Behdad Esfahbod 5801521532 Add note re OpenType 1.7 language tags 2015-05-06 00:40:31 -07:00
Roozbeh Pournader f6266ad291 [minor] Remove comment about Navajo OpenType code.
Apparently the code is already standardized:
https://www.microsoft.com/typography/otspec/languagetags.htm
2015-05-05 22:39:04 -07:00
Behdad Esfahbod 42b00118ea Merge pull request #102 from roozbehp/master
Add OpenType language tag 'NAV ' for Navajo.
2015-05-05 14:49:47 -07:00
Behdad Esfahbod be66ec5373 Use TRUE/FALSE instead of true/false in docs 2015-04-30 18:27:13 -04:00
Khaled Hosny d055e1fc78 Some attempt into initial hb-shape documentation
Very anaemic, needs to descripe the format understood by
hb_feature_from_string() etc., but it is just start.
2015-04-30 18:24:45 -04:00
Behdad Esfahbod 81bedda58c New API: hb_buffer_reverse_range() 2015-04-30 13:04:16 -04:00
Roozbeh Pournader cfeb0562eb Add OpenType language tag 'NAV ' for Navajo.
The code is not standardized yet, but is used in some Google fonts.
2015-04-29 09:32:42 -07:00
Jonathan Kew f724cc3516 Don't apply Arabic shaping to vertical text. 2015-04-24 12:19:02 -07:00
Behdad Esfahbod 97942420bb Update check-libstdc++ for clang 2015-04-23 18:56:24 -07:00
Behdad Esfahbod 39851ce84e [coretext] Oops; fix issue number for previous commit 2015-04-21 19:23:27 -07:00
Behdad Esfahbod 24f17afeaf [coretext] Fix positioning with trailing whitespace
Fixes https://code.google.com/p/chromium/issues/detail?id=476913
2015-04-21 19:21:32 -07:00
Behdad Esfahbod dba482fc44 [ot-font] Accept MS Symbol cmap if nothing else found 2015-04-17 13:08:08 -07:00
Behdad Esfahbod 3029e8b59d Revert "Add MSVC pragma for UTF-8 source code"
This reverts commit 89cbd4d953.

See discussion:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
2015-04-14 13:32:22 -07:00
Behdad Esfahbod 89cbd4d953 Add MSVC pragma for UTF-8 source code
Not sure we have any right now; motivated by this:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
2015-04-13 12:27:08 -07:00
Behdad Esfahbod 713f99ff61 Merge pull request #99 from khaledhosny/introspection-fixes2
More ntrospection fixes
2015-04-10 14:34:05 -07:00
Khaled Hosny 22524a514f [bindings] Fix hb_buffer_get_segment_properties
Annotate the output parameter.
2015-04-10 22:57:38 +02:00
Behdad Esfahbod 1086f21e54 Merge branch 'hb-fc' 2015-04-10 12:21:04 -07:00
Khaled Hosny 04f89e8f7d [bindings] Fix ownership of returned hb_language_t
It should not be freed by the caller.
2015-04-10 18:17:02 +02:00
Konstantin Ritt 855a5d7cb8 Fix build on WEC2013
Based on patch from Björn Breitmeyer
2015-04-10 17:18:01 +04:00
Behdad Esfahbod eb0bf3ae66 Relax inert checks
Previously, when creating an object from inert inputs (eg:
"hb_font_create(hb_face_get_empty())") we returned the inert
empty object.  This is not helpful as there are legitimate
usecases to do that.

We now never return the inert object unless allocation failed.

Tests are revised to reflect.
2015-04-09 19:16:57 -07:00
Behdad Esfahbod 9c974360fe Minor rename 2015-04-09 12:04:14 -07:00
Behdad Esfahbod f3b170bdd9 Minor 2015-04-08 16:26:24 -07:00
Behdad Esfahbod 2958f2c147 Fixup 2015-04-08 16:26:16 -07:00
Behdad Esfahbod b931e0b0ce Fix warnings
Part of https://github.com/behdad/harfbuzz/pull/68
2015-04-08 14:43:33 -07:00
Behdad Esfahbod cdcdfe61b9 Err, instead of warn, if mutex / atomic / unicode funcs are missing
Hopefully this results in fewer badly built HarfBuzz integrations.
2015-04-08 13:25:04 -07:00
Behdad Esfahbod fc3c59a1d7 Fix unused var warnings 2015-04-08 13:04:29 -07:00
Konstantin Ritt 3f174cd020 Minor refactoring to the atomics implementation
s/atomic_int/atomic_int_impl/ and s/atomic_ptr/atomic_ptr_impl/
to bring it in par with hb_mutex_impl_t, then re-introduce
hb_atomic_int_t as a wrapper around hb_atomic_int_impl_t.

In hb_reference_count_t, make it clear the non-atomic get and set
are intentional due to nature of the cases they are used in
(comparison to -1 and the debug output/tracing).
2015-04-08 13:04:22 -07:00
Behdad Esfahbod 24930d544e Minor 2015-04-08 12:52:06 -07:00
Behdad Esfahbod 45a8b46f47 Allow implementing atomic and mutex ops in config
Motivated by
https://github.com/behdad/harfbuzz/pull/92
2015-04-08 12:49:38 -07:00
Behdad Esfahbod 3fe4e92bc5 Minor 2015-04-08 12:49:23 -07:00
Behdad Esfahbod ce01ad7c2f MSVC 2015 supports snprintf and not _snprintf 2015-04-01 11:05:59 -07:00
Behdad Esfahbod 560718862f Move WinCE define to better place 2015-04-01 11:04:58 -07:00
Behdad Esfahbod aee685086c Fix VC++ /analyze warnings
out\debug\hb-buffer-deserialize-text.rl(47) : warning C6001: Using
uninitialized memory 'pos'.
2015-03-26 14:13:53 -04:00
Khaled Hosny a394bb6670 [bindings] Fix *_from_string functions
Without the element-type they will be getting garbage, at least with
Python.
2015-03-22 20:29:10 +02:00
Behdad Esfahbod 9e401f6890 Fix reverse_range() for empty range
Fixes coretext notdef loop consisting of all default_ignorable glyphs

https://code.google.com/p/chromium/issues/detail?id=464755
2015-03-20 16:08:38 -04:00
Behdad Esfahbod 98e3ea8e34 Fix hb-uniscribe build 2015-03-04 12:03:39 -08:00
Behdad Esfahbod 8ac345e5c0 Fix reverse_range() to only reverse alt array if positions are used
In hb-coretext, when we were using scratch buffer for book-keeping,
a reverse_range() caused by the notdef-insertion loop could mess up
our log_clusters.  Ouch!
2015-03-02 16:06:55 -08:00
Behdad Esfahbod 5f541f8f7b Minor refactoring 2015-02-25 15:43:35 -08:00
Behdad Esfahbod ef79bdf73b Minor 2015-02-25 15:43:35 -08:00
Behdad Esfahbod 68e04afbb1 Typo 2015-02-25 15:43:34 -08:00
Behdad Esfahbod 55553699b3 Minor 2015-02-25 15:43:34 -08:00
Behdad Esfahbod 5175300fba [layout] Fix comparison of GlyphID and hb_codepoint_t
Before, the IntType::cmp functions providing this and was truncating
the hb_codepoint_t to 16bits before comparison.  I have no idea how
this was never discovered, and I'm too lazy to try to reproduce this
with Pango (which uses non-16bit codepoint numbers for missing glyphs).
2015-02-25 15:43:34 -08:00
Behdad Esfahbod 7cce809cb1 Remove unused (and wrong as of a few commits ago) cmp() function 2015-02-25 15:43:34 -08:00
Behdad Esfahbod 8e3d4bae03 Minor 2015-02-25 15:43:33 -08:00
Behdad Esfahbod f47cf1f12d Minor 2015-02-25 15:43:33 -08:00
Behdad Esfahbod 640b66c634 [layout] If lookup has only one subtable, move the forward loop down to subtable
I was hoping to see a nice speedup, but it resulted in a very minor one.
2015-02-25 15:43:33 -08:00
Behdad Esfahbod e2f50f2a7e [layout] Add apply_forward / apply_backward 2015-02-25 15:43:32 -08:00
Behdad Esfahbod 1d4a328472 [layout] Remove unneeded return value from apply() 2015-02-25 15:43:32 -08:00
Behdad Esfahbod bbdd6fd21c Minor simpilfy BEInt 2015-02-25 15:43:32 -08:00
Behdad Esfahbod 88a399acdc Optimize IntType comparison to avoid branches for 16bit numbers 2015-02-25 15:43:32 -08:00
Behdad Esfahbod 37de2d5331 Minor simplify IntType 2015-02-25 15:43:31 -08:00
Behdad Esfahbod bd047d3b7f [layout] Minor 2015-02-25 15:43:31 -08:00
Behdad Esfahbod b9d3f60520 [layout] Minor 2015-02-25 15:43:31 -08:00
Behdad Esfahbod 1a2322134a [layout] Don't check glyph props against lookup flags when recursing
Shouldn't be needed.  I have a hard time imagining this breaking any
legitimate use case.
2015-02-25 15:43:30 -08:00
Behdad Esfahbod 095a1257cc [layout] Port sanitize() to use dispatch()
Needed some rework of Extension table.  Hopefully I got it right, and
the new template usage doesn't break any compilers...
2015-02-25 15:43:30 -08:00
Behdad Esfahbod 758fb20630 Remove unused macro 2015-02-25 15:43:30 -08:00
Behdad Esfahbod 40c58923cb [layout] Refactor Lookup::dispatch() 2015-02-25 15:43:30 -08:00