platform/upstream/libHarfBuzzSharp.git
6 years agoOne more visibility trick
Behdad Esfahbod [Mon, 23 Jul 2018 20:24:26 +0000 (13:24 -0700)]
One more visibility trick

Should fix Windows build again.

6 years agoOne more
Behdad Esfahbod [Mon, 23 Jul 2018 19:00:02 +0000 (12:00 -0700)]
One more

6 years agoRemove unnecessary OT:: namespace specifiers
Behdad Esfahbod [Mon, 23 Jul 2018 18:57:45 +0000 (11:57 -0700)]
Remove unnecessary OT:: namespace specifiers

6 years agoSet num glyphs on sanitizer reference_table()
Behdad Esfahbod [Mon, 23 Jul 2018 18:46:46 +0000 (11:46 -0700)]
Set num glyphs on sanitizer reference_table()

Move out-of-class definitions of two methods to hb-static so they
are accessible in libharfbuzz-subset.

6 years agoRemove Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:50:58 +0000 (22:50 -0700)]
Remove Sanitizer<>

6 years agoPort rest of code away from Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:49:26 +0000 (22:49 -0700)]
Port rest of code away from Sanitizer<>

6 years agoPort dump-emoji away from Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:47:19 +0000 (22:47 -0700)]
Port dump-emoji away from Sanitizer<>

6 years ago.
Behdad Esfahbod [Mon, 23 Jul 2018 05:45:26 +0000 (22:45 -0700)]
.

6 years agoMinor
Behdad Esfahbod [Mon, 23 Jul 2018 05:44:22 +0000 (22:44 -0700)]
Minor

6 years agoPort sbix off of Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:40:56 +0000 (22:40 -0700)]
Port sbix off of Sanitizer<>

6 years agoPort more off of Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:40:32 +0000 (22:40 -0700)]
Port more off of Sanitizer<>

6 years agoAdd sanitizer reference_table, also fix clang build
Behdad Esfahbod [Mon, 23 Jul 2018 05:24:31 +0000 (22:24 -0700)]
Add sanitizer reference_table, also fix clang build

Clang is being really peculiar.  Fix with:

-  inline hb_blob_t *sanitize (hb_blob_t *blob) { return c->sanitize<Type> (blob); }
+  inline hb_blob_t *sanitize (hb_blob_t *blob) { return c[0].template/*clang idiosyncrasy*/sanitize_blob<Type> (blob); }

6 years agoOrder Chakma split vowels in accordance with NFC
David Corbett [Fri, 13 Apr 2018 22:45:37 +0000 (18:45 -0400)]
Order Chakma split vowels in accordance with NFC

Fixes #1105.

6 years agoAdd a new API, hb_ot_layout_get_feature_name_ids (#976)
Ebrahim Byagowi [Sat, 21 Jul 2018 16:44:48 +0000 (21:14 +0430)]
Add a new API, hb_ot_layout_get_feature_name_ids (#976)

This new API returns cvXX and ssXX related NameId, things like
featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX
and UINameId of ssXX, in a unified way.

However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.

6 years agoRemove dump-fon (#1100)
Ebrahim Byagowi [Tue, 17 Jul 2018 18:59:16 +0000 (23:29 +0430)]
Remove dump-fon (#1100)

It had interesting stuffs like EXE parsing and
big-endian parsers but added in an attempt to find
a solution for #681 which later found not related.

6 years agoRemove AAT's gcid/fmtx (#1099)
Ebrahim Byagowi [Tue, 17 Jul 2018 18:02:37 +0000 (22:32 +0430)]
Remove AAT's gcid/fmtx (#1099)

We are not going to use them, at least in the foreseeable future

6 years agoFix hb_face_count() sanitize referencing
Behdad Esfahbod [Tue, 17 Jul 2018 17:17:59 +0000 (19:17 +0200)]
Fix hb_face_count() sanitize referencing

6 years agoRemove TODO that is not gonna be done
Behdad Esfahbod [Tue, 17 Jul 2018 17:09:03 +0000 (19:09 +0200)]
Remove TODO that is not gonna be done

Previously the idea was to cache sanitize results externally (think,
in Fontconfig) and avoid resanitizing every time.  That's, not a good
idea.

6 years agoMove sanitizer code around a bit
Behdad Esfahbod [Tue, 17 Jul 2018 16:45:25 +0000 (18:45 +0200)]
Move sanitizer code around a bit

6 years ago[aat] Update for blob changes
Behdad Esfahbod [Tue, 17 Jul 2018 16:14:45 +0000 (18:14 +0200)]
[aat] Update for blob changes

Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.

6 years ago1.8.4
Behdad Esfahbod [Tue, 17 Jul 2018 11:20:40 +0000 (13:20 +0200)]
1.8.4

6 years agoReland "Implement C++11-style GCC builtin atomic ops"
Behdad Esfahbod [Tue, 17 Jul 2018 08:57:01 +0000 (10:57 +0200)]
Reland "Implement C++11-style GCC builtin atomic ops"

Fixed the crasher in it.

6 years agoMinor
Behdad Esfahbod [Tue, 17 Jul 2018 08:59:19 +0000 (10:59 +0200)]
Minor

6 years agoRevert "Implement C++11-style GCC builtin atomic ops"
Behdad Esfahbod [Tue, 17 Jul 2018 08:50:01 +0000 (10:50 +0200)]
Revert "Implement C++11-style GCC builtin atomic ops"

This reverts commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa.

Is crashing.  Oops.

6 years agoImplement C++11-style GCC builtin atomic ops
Behdad Esfahbod [Mon, 16 Jul 2018 15:58:02 +0000 (17:58 +0200)]
Implement C++11-style GCC builtin atomic ops

Hopefully fixes bots.

6 years agoRelax C++11 atomic ops memory order to acquire-release
Behdad Esfahbod [Mon, 16 Jul 2018 13:44:58 +0000 (15:44 +0200)]
Relax C++11 atomic ops memory order to acquire-release

6 years agoImplement C++11 <atomic> operations
Behdad Esfahbod [Mon, 16 Jul 2018 13:41:09 +0000 (15:41 +0200)]
Implement C++11 <atomic> operations

Fixes https://github.com/harfbuzz/harfbuzz/issues/345

6 years agoMerge pull request #1094 from anthrotype/fix-appveyor-msys2
Cosimo Lupo [Mon, 16 Jul 2018 12:42:43 +0000 (14:42 +0200)]
Merge pull request #1094 from anthrotype/fix-appveyor-msys2

appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build

6 years agoappveyor.yml: try only updating msys2 core, not the rest of the packages
Cosimo Lupo [Mon, 16 Jul 2018 12:14:42 +0000 (14:14 +0200)]
appveyor.yml: try only updating msys2 core, not the rest of the packages

maybe it'll get a bit faster

6 years agoappveyor.yml: pass --needed option to pacman
Cosimo Lupo [Mon, 16 Jul 2018 10:57:27 +0000 (12:57 +0200)]
appveyor.yml: pass --needed option to pacman

so it won't attempt reinstalling packages which are already installed

6 years agoappveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
Cosimo Lupo [Mon, 16 Jul 2018 10:41:59 +0000 (12:41 +0200)]
appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build

https://github.com/harfbuzz/harfbuzz/pull/1093#issuecomment-405201903
https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/ky7lao1ii1bi7ew4#L71

6 years agoMove _hb_alignof later again
Behdad Esfahbod [Wed, 11 Jul 2018 15:27:23 +0000 (17:27 +0200)]
Move _hb_alignof later again

It uses constexpr...

6 years agoMake hb_vector_t 8 bytes smaller
Behdad Esfahbod [Wed, 11 Jul 2018 15:23:53 +0000 (17:23 +0200)]
Make hb_vector_t 8 bytes smaller

6 years agoAlign NullPool and CrapPool to HB_VECTOR_SIZE
Behdad Esfahbod [Wed, 11 Jul 2018 15:00:59 +0000 (17:00 +0200)]
Align NullPool and CrapPool to HB_VECTOR_SIZE

6 years agoFix return type of alignof() fallback
Behdad Esfahbod [Wed, 11 Jul 2018 15:00:13 +0000 (17:00 +0200)]
Fix return type of alignof() fallback

6 years agoMinor
Behdad Esfahbod [Wed, 11 Jul 2018 14:44:21 +0000 (16:44 +0200)]
Minor

6 years agoMinor
Behdad Esfahbod [Wed, 11 Jul 2018 13:27:37 +0000 (15:27 +0200)]
Minor

6 years ago1.8.3
Behdad Esfahbod [Wed, 11 Jul 2018 13:27:13 +0000 (15:27 +0200)]
1.8.3

6 years agoFix shift
Behdad Esfahbod [Tue, 10 Jul 2018 14:34:31 +0000 (16:34 +0200)]
Fix shift

6 years agoPut back include dependencies
Behdad Esfahbod [Tue, 10 Jul 2018 14:05:03 +0000 (16:05 +0200)]
Put back include dependencies

6 years agoMove more stuff from hb-private.hh to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 14:03:31 +0000 (16:03 +0200)]
Move more stuff from hb-private.hh to hb-dsalgs.hh

6 years agoMove more stuff to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 13:49:05 +0000 (15:49 +0200)]
Move more stuff to hb-dsalgs.hh

6 years agoMove hb_bytes_t to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 13:23:08 +0000 (15:23 +0200)]
Move hb_bytes_t to hb-dsalgs.hh

6 years agoRemove hb_auto_array_t
Behdad Esfahbod [Tue, 10 Jul 2018 12:42:10 +0000 (14:42 +0200)]
Remove hb_auto_array_t

6 years agoInclude more basic internal headers from hb-private.hh
Behdad Esfahbod [Tue, 10 Jul 2018 12:41:04 +0000 (14:41 +0200)]
Include more basic internal headers from hb-private.hh

6 years agoMinor renamings of internal inline functions
Behdad Esfahbod [Tue, 10 Jul 2018 12:12:37 +0000 (14:12 +0200)]
Minor renamings of internal inline functions

6 years agoMove hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 12:05:00 +0000 (14:05 +0200)]
Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh

6 years agoMove hb_stable_sort to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 12:03:58 +0000 (14:03 +0200)]
Move hb_stable_sort to hb-dsalgs.hh

Also, include hb-dsalgs.hh from end of hb-pricate.hh

6 years agoMinor
Behdad Esfahbod [Tue, 10 Jul 2018 12:01:39 +0000 (14:01 +0200)]
Minor

6 years agoFix syntax
Behdad Esfahbod [Tue, 10 Jul 2018 11:47:41 +0000 (13:47 +0200)]
Fix syntax

Oops.

6 years agoAdd posix_memalign() fallback
Behdad Esfahbod [Tue, 10 Jul 2018 11:17:27 +0000 (13:17 +0200)]
Add posix_memalign() fallback

6 years agoAlways compile (but not use) alignof() and round() fallback codes
Behdad Esfahbod [Tue, 10 Jul 2018 11:16:52 +0000 (13:16 +0200)]
Always compile (but not use) alignof() and round() fallback codes

Catches compile-errors in them better.

6 years agoFix alignof impl
Behdad Esfahbod [Tue, 10 Jul 2018 11:03:42 +0000 (13:03 +0200)]
Fix alignof impl

6 years agoAdd fallback implementation for constexpr and alignof
Behdad Esfahbod [Tue, 10 Jul 2018 10:58:13 +0000 (12:58 +0200)]
Add fallback implementation for constexpr and alignof

6 years agoMinor
Behdad Esfahbod [Tue, 10 Jul 2018 10:51:29 +0000 (12:51 +0200)]
Minor

6 years agoMerge pull request #1091 from anthrotype/fix-gen-def-py
Cosimo Lupo [Mon, 9 Jul 2018 18:24:22 +0000 (20:24 +0200)]
Merge pull request #1091 from anthrotype/fix-gen-def-py

gen-def.py: pass headers as arguments so that msys2 can convert posix paths

6 years agoCMakeLists.txt: don't pass header args as single space-separated string
Cosimo Lupo [Mon, 9 Jul 2018 17:54:23 +0000 (18:54 +0100)]
CMakeLists.txt: don't pass header args as single space-separated string

let python's parse command-line args as usual

6 years agoCMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE
Cosimo Lupo [Mon, 9 Jul 2018 17:48:20 +0000 (18:48 +0100)]
CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE

6 years agosrc/Makefile.am: pass headers to gen-def.py as arguments, not env vars
Cosimo Lupo [Mon, 9 Jul 2018 17:26:44 +0000 (18:26 +0100)]
src/Makefile.am: pass headers to gen-def.py as arguments, not env vars

6 years agogen-def.py: pass headers as arguments so that msys2 can convert posix paths
Cosimo Lupo [Mon, 9 Jul 2018 17:11:29 +0000 (18:11 +0100)]
gen-def.py: pass headers as arguments so that msys2 can convert posix paths

When one is not using the msys2 python, the header files that are passed in as environment
variable cannot be found.

https://ci.appveyor.com/project/fonttools/ttfautohint-py/build/1.0.65/job/rkremny4jjid9nl2#L803

This is because msys2 shell and make use POSIX paths (e.g. /c/Users/clupo/...)
whereas non-msys2 python.exe uses native Windows paths (e.g. C:\Users\clupo\...).

Msys2 will automatically convert command line arguments (but not environment variables) from
POSIX to Windows paths when calling a native win32 executable, so we pass the header paths
as arguments instead of environment variables.

This way the gen-def.py script can support both mingw python running in an MSYS2 shell, and
native win32 python.

6 years agoDo not enforce a native direction of LTR for Runic
David Corbett [Fri, 6 Jul 2018 19:47:03 +0000 (15:47 -0400)]
Do not enforce a native direction of LTR for Runic

Fixes #481

6 years agoRegenerate the USE table for Grantha and Bhaiksuki (#1090)
David Corbett [Sat, 7 Jul 2018 15:08:17 +0000 (11:08 -0400)]
Regenerate the USE table for Grantha and Bhaiksuki (#1090)

Completes #1037 and fixes #1035.

6 years agoDisable vectorization
Behdad Esfahbod [Thu, 5 Jul 2018 09:34:13 +0000 (14:04 +0430)]
Disable vectorization

Disable vectorization for now.  To correctly use them, we should
use posix_memalign() to allocate them.  Otherwise, can cause
misaligned access.

https://bugs.chromium.org/p/chromium/issues/detail?id=860184

6 years agoFix warning
Behdad Esfahbod [Thu, 5 Jul 2018 09:33:48 +0000 (14:03 +0430)]
Fix warning

../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations]

6 years agoAllow disabling vector_size use
Behdad Esfahbod [Thu, 5 Jul 2018 08:46:00 +0000 (13:16 +0430)]
Allow disabling vector_size use

6 years agoUse CreateFileW explicitly and pass wchar_t to it (#1087)
Ebrahim Byagowi [Wed, 4 Jul 2018 11:03:39 +0000 (15:33 +0430)]
Use CreateFileW explicitly and pass wchar_t to it (#1087)

6 years ago[indic] Adjust left-matra repositioning and Halant,ZWJ sequence
Behdad Esfahbod [Tue, 3 Jul 2018 09:59:25 +0000 (14:29 +0430)]
[indic] Adjust left-matra repositioning and Halant,ZWJ sequence

From the new code (first paragraph is from the OT Devanagari spec.):

  /*   o Reorder matras:
   *
   *     If a pre-base matra character had been reordered before applying basic
   *     features, the glyph can be moved closer to the main consonant based on
   *     whether half-forms had been formed. Actual position for the matra is
   *     defined as “after last standalone halant glyph, after initial matra
   *     position and before the main consonant”. If ZWJ or ZWNJ follow this
   *     halant, position is moved after it.
   *
   * IMPLEMENTATION NOTES:
   *
   * It looks like the last sentence is wrong.  Testing, with Windows 7 Uniscribe
   * and Devanagari shows that the behavior is best described as:
   *
   * "If ZWJ follows this halant, matra is NOT repositioned after this halant.
   *  If ZWNJ follows this halant, position is moved after it."
   *
   * Test case, with Adobe Devanagari or Nirmala UI:
   *
   *   U+091F,U+094D,U+200C,U+092F,U+093F
   *   (Matra moves to the middle, after ZWNJ.)
   *
   *   U+091F,U+094D,U+200D,U+092F,U+093F
   *   (Matra does NOT move, stays to the left.)

Fixes https://github.com/harfbuzz/harfbuzz/issues/1070

Test case added with Adobe Devanagari.

6 years agoFix unused function '_hb_mapped_file_destroy' if no mmap
Behdad Esfahbod [Tue, 3 Jul 2018 08:34:05 +0000 (13:04 +0430)]
Fix unused function '_hb_mapped_file_destroy' if no mmap

6 years ago1.8.2
Behdad Esfahbod [Tue, 3 Jul 2018 08:13:59 +0000 (12:43 +0430)]
1.8.2

6 years agoDisable .dfont code for now
Behdad Esfahbod [Tue, 3 Jul 2018 08:08:21 +0000 (12:38 +0430)]
Disable .dfont code for now

The get_table imple was wrong, as table offsets in a dfont are
relative to the resource.  We were treating them as relative to
the big blob itself.  To be fixed.

Part of https://github.com/harfbuzz/harfbuzz/pull/1085

6 years agoFix trak table apply logic
Ebrahim Byagowi [Sun, 1 Jul 2018 11:02:43 +0000 (15:32 +0430)]
Fix trak table apply logic

In collaboration with Behdad

6 years agoSupport dfont font files (#949)
Ebrahim Byagowi [Sun, 1 Jul 2018 10:02:00 +0000 (14:32 +0430)]
Support dfont font files (#949)

6 years agoImprove nommap naming and use C style comments on create_from_file (#1084)
Ebrahim Byagowi [Sat, 30 Jun 2018 21:24:14 +0000 (01:54 +0430)]
Improve nommap naming and use C style comments on create_from_file (#1084)

6 years agoAdjust MarkBasePos heuristic in presence of MultipleSubst
Behdad Esfahbod [Sat, 30 Jun 2018 11:29:25 +0000 (15:59 +0430)]
Adjust MarkBasePos heuristic in presence of MultipleSubst

From the issue:
"In this font, the virama,ya first forms a ligature, then decomposes back to
virama,ya. This causes those two to be marked parts of a MultipleSubst
sequence. When attaching the matra, we look for the first of the MultipleSubst
sequence because that's where we attach to (because of eg #740). In this case,
the first glyph in the MultipleSubst sequence is a mark, so we skip it and
attach to the base char before it."

Font in question is Nirmala UI from Windows 10. Test sequence:

  U+0926,U+094D,U+092F,U+0941

Fixes https://github.com/harfbuzz/harfbuzz/issues/1020

6 years ago[indic] Tweak for old-spec Bengali and halant-ya-halant
Behdad Esfahbod [Sat, 30 Jun 2018 07:58:03 +0000 (12:28 +0430)]
[indic] Tweak for old-spec Bengali and halant-ya-halant

Fixes https://github.com/harfbuzz/harfbuzz/issues/1073

6 years agoRebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara
punchcutter [Mon, 25 Jun 2018 05:54:57 +0000 (22:54 -0700)]
Rebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara

6 years ago[khmer] Fix infinite-loop in cluster merging
Behdad Esfahbod [Sat, 30 Jun 2018 04:46:54 +0000 (09:16 +0430)]
[khmer] Fix infinite-loop in cluster merging

Indic shaper already had this check.  We removed it when forking
Khmer shaper by mistake.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1464623

6 years agoarmcc compatibility, don't use EINTR if doesn't exist
Ebrahim Byagowi [Thu, 28 Jun 2018 10:02:36 +0000 (14:32 +0430)]
armcc compatibility, don't use EINTR if doesn't exist

Fixes #1081

6 years agoMinor on hb_blob_create_from_file, reuse ferror result
Ebrahim Byagowi [Thu, 28 Jun 2018 08:52:21 +0000 (13:22 +0430)]
Minor on hb_blob_create_from_file, reuse ferror result

Oops

6 years ago[ci] Don't fail on apt update and revive clang-O3-O0
Ebrahim Byagowi [Wed, 27 Jun 2018 13:44:52 +0000 (18:14 +0430)]
[ci] Don't fail on apt update and revive clang-O3-O0

6 years agoMinor, rename blob to data on blob_from_file
Ebrahim Byagowi [Wed, 27 Jun 2018 12:24:44 +0000 (16:54 +0430)]
Minor, rename blob to data on blob_from_file

6 years agoMinor touches on hb_blob_create_from_file (#1079)
Ebrahim Byagowi [Wed, 27 Jun 2018 09:43:26 +0000 (14:13 +0430)]
Minor touches on hb_blob_create_from_file (#1079)

* Handle EINTR on fallback reader
* Increase fallback reader limitation size limitation to 2 << 28
* Ensure _O_BINARY does exist if MMAP is used on Windows
  (maybe superfluous but makes me more confident)

6 years agoMake round() fallback portable to systems that do have round()
Behdad Esfahbod [Tue, 26 Jun 2018 22:00:58 +0000 (18:00 -0400)]
Make round() fallback portable to systems that do have round()

Makes compiling without HAVE_ROUND on systems that do have it work.

6 years agoMinor on hb_blob_create_from_file
Ebrahim Byagowi [Tue, 26 Jun 2018 06:16:10 +0000 (10:46 +0430)]
Minor on hb_blob_create_from_file

Add one more "unlikely" annotation and use explicit nullptr check for more consistency.

6 years ago[subset] Add fuzzer test case that caused a timeout to the corpus.
Garret Rieger [Fri, 22 Jun 2018 22:29:34 +0000 (15:29 -0700)]
[subset] Add fuzzer test case that caused a timeout to the corpus.

6 years agoUnify our pipe reader with the fallback reader (#1068)
Ebrahim Byagowi [Mon, 25 Jun 2018 17:53:43 +0000 (22:23 +0430)]
Unify our pipe reader with the fallback reader (#1068)

And assign one bot to use the path always using NOMMAPFILEREADER token.

It's limited to 200mb so no more fun with using /dev/zero on hb-view!

6 years agoResolve ttx absolute path before use (#1075)
Ebrahim Byagowi [Mon, 25 Jun 2018 14:15:49 +0000 (18:45 +0430)]
Resolve ttx absolute path before use (#1075)

6 years agoTreat - just as /dev/stdin and remove one extra file reader (#1065)
Ebrahim Byagowi [Sun, 24 Jun 2018 18:39:16 +0000 (23:09 +0430)]
Treat - just as /dev/stdin and remove one extra file reader (#1065)

6 years agoIn Coverage iterator, bail out if table smells
Behdad Esfahbod [Sat, 23 Jun 2018 14:32:28 +0000 (10:32 -0400)]
In Coverage iterator, bail out if table smells

In particular, if CoverageFormat2 has unsorted ranges, bail out.
Otherwise, 64k ranges of each 64k glyphs can DoS closure() method.

We can do the same for CoverageFormat1, but that one does not expose
the quadratic behavior, so, fine.

6 years agoSupport pipe and friends on hb_blob_create_from_file (#1061)
Ebrahim Byagowi [Mon, 18 Jun 2018 16:05:40 +0000 (20:35 +0430)]
Support pipe and friends on hb_blob_create_from_file (#1061)

With this hb-view/hb-shape support pipes and possibly socket and named pipe
also, anything fails just on mmap.

We can later do the same for Windows also.

This however reveals two issues, the fact most of our bots don't have HAVE_MMAP and using
this instead the other fread/fopen reader can make failure on CI. I should look at them separately
this change however is very low risk I believe.

6 years agoRevert file blob sanitization and index checking (#1062)
Ebrahim Byagowi [Mon, 18 Jun 2018 15:29:33 +0000 (19:59 +0430)]
Revert file blob sanitization and index checking (#1062)

As https://github.com/harfbuzz/harfbuzz/pull/1059#issuecomment-397912812 we
like to still work with blobs that harfbuzz itself can't handle directly that are failing sanitization
currently apparently.

6 years agoVerbose fail when something is wrong with hb-shape/hb-view input font file (#1059)
Ebrahim Byagowi [Sun, 17 Jun 2018 12:34:55 +0000 (17:04 +0430)]
Verbose fail when something is wrong with hb-shape/hb-view input font file (#1059)

This checks if the blob isn't empty and uses `hb_face_count`
to see if the font file passes the simple font file sanitization
so can detect if the input is actually a font and checks also
whether input font-index is out of range.

6 years agoFix reading fonts from stdin (#1060)
Ebrahim Byagowi [Sun, 17 Jun 2018 12:19:34 +0000 (16:49 +0430)]
Fix reading fonts from stdin (#1060)

We were passing the font path directly to freetype so rendering
was broken when we are getting the font from stdin.

This fixes it by using FT_New_Memory_Face instead.

This fixes:
* build/util/hb-view /dev/stdin text < font.ttf
* build/util/hb-view - text < font.ttf
* cat font.ttf | build/util/hb-view - text

but doesn't work on
* cat font.ttf | build/util/hb-view /dev/stdin text

which I will try to fix separately.

6 years ago1.8.1
Behdad Esfahbod [Tue, 12 Jun 2018 23:38:04 +0000 (19:38 -0400)]
1.8.1

6 years ago[docs] Enlist misc new symbols
Behdad Esfahbod [Tue, 12 Jun 2018 23:32:04 +0000 (19:32 -0400)]
[docs] Enlist misc new symbols

6 years agoMove hb-version.h generation to Makefile
Behdad Esfahbod [Tue, 12 Jun 2018 23:20:20 +0000 (19:20 -0400)]
Move hb-version.h generation to Makefile

Fixes https://github.com/harfbuzz/harfbuzz/issues/864

Unfortunately 1.7.7 and 1.8.0 went out with the wrong hb-version.h contents.

6 years ago[subset] Remove HB_SUBSET_BUILTIN
Behdad Esfahbod [Tue, 12 Jun 2018 22:24:54 +0000 (18:24 -0400)]
[subset] Remove HB_SUBSET_BUILTIN

Just include hb-static.cc in libharfbuzz-subset.so source list as
well.  Those building it built-in will include hb-static.cc once
already.  No need for any gymnastics.

6 years ago[substitute-closure] Rename function for clarity
Behdad Esfahbod [Tue, 12 Jun 2018 03:24:41 +0000 (23:24 -0400)]
[substitute-closure] Rename function for clarity

6 years agoWhitespace
Behdad Esfahbod [Tue, 12 Jun 2018 03:23:40 +0000 (23:23 -0400)]
Whitespace

6 years ago[vector] Always 0-fill new items
Behdad Esfahbod [Tue, 12 Jun 2018 02:11:45 +0000 (22:11 -0400)]
[vector] Always 0-fill new items