From 318c28e8e0e40ccd6584b984f470a951f9c3edb0 Mon Sep 17 00:00:00 2001 From: Siyamed Sinir Date: Mon, 30 Jul 2018 17:40:20 +0000 Subject: [PATCH] Update git submodules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update external/harfbuzz_ng from branch 'master' to 45a4d8338c593592b40a143cfe7f3a71f336a548 - Merge "Update Harfbuzz to 1.8.3" - Update Harfbuzz to 1.8.3 Bug: 78038251 Change-Id: I2b842a4e3faf85919363c44ce7c8ebf92f48f3d7 - 1.8.3 - Fix shift - Put back include dependencies - Move more stuff from hb-private.hh to hb-dsalgs.hh - Move more stuff to hb-dsalgs.hh - Move hb_bytes_t to hb-dsalgs.hh - Remove hb_auto_array_t - Include more basic internal headers from hb-private.hh - Minor renamings of internal inline functions - Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh - Move hb_stable_sort to hb-dsalgs.hh Also, include hb-dsalgs.hh from end of hb-pricate.hh - Minor - Fix syntax Oops. - Add posix_memalign() fallback - Always compile (but not use) alignof() and round() fallback codes Catches compile-errors in them better. - Fix alignof impl - Add fallback implementation for constexpr and alignof - Minor - Merge pull request #1091 from anthrotype/fix-gen-def-py gen-def.py: pass headers as arguments so that msys2 can convert posix paths - CMakeLists.txt: don't pass header args as single space-separated string let python's parse command-line args as usual - CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE - src/Makefile.am: pass headers to gen-def.py as arguments, not env vars - 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. - Do not enforce a native direction of LTR for Runic Fixes #481 - Regenerate the USE table for Grantha and Bhaiksuki (#1090) Completes #1037 and fixes #1035. - 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 - Fix warning ../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations] - Allow disabling vector_size use - Use CreateFileW explicitly and pass wchar_t to it (#1087) - [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. - Fix unused function '_hb_mapped_file_destroy' if no mmap - 1.8.2 - 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 - Fix trak table apply logic In collaboration with Behdad - Support dfont font files (#949) - Improve nommap naming and use C style comments on create_from_file (#1084) - 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 - [indic] Tweak for old-spec Bengali and halant-ya-halant Fixes https://github.com/harfbuzz/harfbuzz/issues/1073 - Rebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara - [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 - armcc compatibility, don't use EINTR if doesn't exist Fixes #1081 - Minor on hb_blob_create_from_file, reuse ferror result Oops - [ci] Don't fail on apt update and revive clang-O3-O0 - Minor, rename blob to data on blob_from_file - 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) - Make round() fallback portable to systems that do have round() Makes compiling without HAVE_ROUND on systems that do have it work. - Minor on hb_blob_create_from_file Add one more "unlikely" annotation and use explicit nullptr check for more consistency. - [subset] Add fuzzer test case that caused a timeout to the corpus. - 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! - Resolve ttx absolute path before use (#1075) - Treat - just as /dev/stdin and remove one extra file reader (#1065) - 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. - 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. - 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. - 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. - 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. - 1.8.1 - [docs] Enlist misc new symbols - 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. - [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. - [substitute-closure] Rename function for clarity - Whitespace - [vector] Always 0-fill new items - Fix compiler warning re reordering of initializations - Style - [hb-set] Additional testcase for hb-set-intersect. - [hb-set] Don't shrink vectors until after processing their contents. Fixes #1054. - Fetch the updated dwrite_1.h header from a better place Following to https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1693/job/mfkjdhcdykjuqdfc - More fixes for SunStudio 12.6 build Followup to https://github.com/harfbuzz/harfbuzz/pull/1053 - Fix SunStudio 12.6 build (#1053) - [subset] Use REPLACEME instead of version. - [subset] Move variable declaration out of loop. - [subset] Add test cases for gsub closure in subsetting. - [subset] Add fuzzing of gsub closure to hb-subset-fuzzer. - [subset] Use gsub closure if ot layout is not being dropped. - [subset] Add drop_ot_layout setting to subset input. - [subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups. - [set] Add is_subset New API: +hb_set_is_subset() - [subset] Add memoization of GSUB lookup closures. - Minorish - Compiler gymnastics Part of https://github.com/harfbuzz/harfbuzz/issues/630 - Move prime_for back into map This was causing problem on systems without visibility when map was used from both libharfbuzz and libharfbuzz-subset. Sigh. https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1669/job/dey47nmff0770vp3 - Convert Consonant_Initial_Postfixed to CONS_FINAL Consonant_Initial_Postfixed was split off of Consonant_Succeeding_Repha, so it should correspond to the same USE class, CONS_FINAL. - 1.8.0 - [ucdn] Update to Unicode 11 https://github.com/grigorig/ucdn/issues/19 - Update to Unicode 11.0.0 UCDN is not updated yet. - Minor - [RELEASING] Update - 1.7.7 - [khmer] Fix Coeng vs Halant confusion Test suite results are unchanged (34). - Fix hb_face_count build issue I should've rebased #1002 before the merge, my bad - Add hb_face_count, a new API (#1002) Simply, it returns the number of faces on a font blob. To be used on hb-sanitizer tool but other clients also can benefit from it. - [sinhala] Move reph to after post-consonants Apparently this changed between Win 7 and Win 10. Fixes https://github.com/harfbuzz/harfbuzz/issues/967 To be continued in https://github.com/harfbuzz/harfbuzz/issues/1044 - [test] Fix record-test to use gids not glyph-names as those might not match what FontTools think of the glyphs if font does NOT have glyph names. - Remove DISALLOW_* from vector, set, and map Some of the build bots, still fail on this. I suppose mine pass because I enable C++11... Anyway, remove these again. - Fix fallout from 975bdd5ef562e37655067b703b2b9ca7481f4985 Ouch! - [vector] Use Crap pool in push() as well - [vector] Keep success status - [vector] Whitespace - Another attempt at making every compiler happy... Sigh. - [map] Move prime_for to hb-static - [set] Shrink page-map size again - Fix hb_vector_size_t - [subset] Have the subset fuzzer pull the text string to subset to from the end of the fuzzer provided data. - Add Codacy badge - Revert "Remove HB_DISALLOW_COPY_AND_ASSIGN" This reverts commit ff92de766bf775bfdd3a01bda94de699180ff86a. Revert that and remove ASSERT_POD. Let's see which bots are unhappy with this configuration... - Use NullPool for _hb_set_nil and _hb_map_nil - [set] Minor - Rename in_error to !successful Towards possibly using Null pool for some nil objects. - Fix a whitespace inconsistency Null() and Crap() are only places that there's no space before '('... - Remove trivial HB_ATOMIC_INT_INIT() - Use 0 as inert object reference value instead of -1 Towards using Null object for nil objects. - Add const OffsetTo<> dereference Unused, but now that we have CrapPool, implement it. - Fix symbol export issue of prime_mod on Alpine bot Apparently our gcc-6.4.0 on Alpine Linux distribution doesn't like defining static const inside a method, lets put that on outside the classes. - [map] Mark prime_for HB_INTERNAL Trying to see if it fixes gcc-4.2 bots. - Add CrapOrNull - [subset] Switch to using hb_map_t inside of hb_subset_plan_t. - [map] Fix size calculation Don't know why I thought I should subtract one there... - Remove HB_DISALLOW_COPY_AND_ASSIGN llvm-gcc-4.2 bot had this problem: hb-private.hh:812: error: initializer specified for non-virtual method 'void hb_vector_t::operator=(const hb_vector_t&) [with Type = hb_user_data_array_t::hb_user_data_item_t, unsigned int StaticSize = 1u]' Removing the delete didn't work with a constructor. So, remove constructor. Just disallow assignment. Still better than nothing. - [map] Fix resize - Disable use of thread_local Clang build was failing with: /usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32 against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used when making a shared object Instead of fighting it, just disable use of it. - [map] Not going to implement is_equal which is complicated - [map] Move prime_mod to header to avoid linkage issues in subset.so - [map] Fix copyright year - [map] Minor - [map] Don't return INVALID from get() just because in_error - [map] Fix bool use in C API - [map] More minor - [map] Make initial resize actually work - [map] Add clear(), is_empty(), and get_population() - [map] Minor - [map] Track population and occupancy separately - [map] Minor - Revert "[map] Return bool from set()" This reverts commit face7cf55d4895ffca314c8448c0a749a26cc182. - Revert "[map] Make hb_map_set() return bool" This reverts commit 7bf1980146cfc081b06264ac367b23ae9397adf1. - [map] Make hb_map_set() return bool - [map] Return bool from set() - [map] Implement operator[] for get()ting - [map] First try at implementing an integer-to-integer hashmap Fully untested. - [blob] Use MAP_NORESERVE if available (#1039) MAP_NORESERVE is not available on macOS for example so set the flag to zero if not defined on the headers. - [set] Remove stale comment - Add HB_DISALLOW_COPY_AND_ASSIGN - Move pool definitions to hb-static.cc - Fix Uniscribe build If a pointer type was passed to Null(), reinterpret_cast<> was complaining about qualifiers being removed. Turns out I need the const on the other side of "Type" to fix that. Also remove unused const from NullPool type. - Underflow protection in hb_vector_t - Mark CrapPool thread_local Not sure if I like to keep it. For now, aim for correctness. - Add CrapPool Common Regoin for Access Protection. Like the NullPool, but writable. - Move code around - Add hb_vector_t::push(const Type &v) Makes for cleaner code. - [ci] Revive the SunCC bot * Adds libnsl to the bot as it is now needed apparently * Disables hb-icu, apparently the newer ICU itself is not compatible with SunCC - Actually enable vectorized operations Fixup for previous commit. Was accidentally turned off. - Another try at smart vectorization Make clang happy. Also, don't use anonymous union. - Try enabling vectorization smartly We'll see if this sticks to the bots. - [set] Always check population before checking for equality - [test/text-rendering-tests] Update from upstream - Minor, make CreateFile compatible with the disabled writable flag "writable" is not in use and probably we can go in the reverse direction and remove the flags that are useful for enabled writable, this is just for the sake of completeness however. - Remove unnecessary headers and definitions of hb-blob (#1028) It removes io.h and other polyfills which we no longer need as 7e76d74 - Make hb_blob_create_from_file more portable (#1027) This makes it compatible with ARMCC which I had access in a collaboration with @imgtec, thanks! Basically hb_blob_create_from_file features three code paths, mmap, Win32 and fallback. We had fallback implementation even before this but it was relied to "open" which is not available on some environments. This change improved the situtation by using only fopen and friends for fallback path. Interestingly we could use "open" on Windows but in fact it was emulated by MSVCRT so I've completely split that from Unix path now that we have a distinct path for fallback path also. - Fix warning - Reinstante DEFINE_NULL_DATA Seems like I messed up; buffer overrun got reported. - Use arrayZ on hb-coretext and hb-uniscribe and fix macOS/Win bots (#1024) Following to 63f57f4 - Mark more unsized array's as arrayZ - Use UnsizedArrayOf<> in one place where [VAR] was used Trying to see how many can converted meaningfully. - Merge pull request #1018 from googlefonts/cmap4 [subset] Add cmap format 4 subsetting. - Don't keep instance in hb_table_lazy_loader_t - Rename - Minor - Always lock blob in sanitize. Remove blob->lock_as() in favor of blob->lock() - Move Sanitizer::lock_instance<>() to blob->lock_as<>(). - Move null pool to hb-private - Rename hb_string_t to hb_bytes_t - Minor - Allocate user-data-array on the heap This saves each object allocation 72 bytes. Now object overhead is just 16 bytes (on x86) instead of 88 bytes. Neat. - Oops Fixes https://github.com/harfbuzz/harfbuzz/issues/1023 - Support scripts that are written both LTR and RTL Right now only Old Italic is marked as such. Fixes https://github.com/harfbuzz/harfbuzz/issues/1000 - [ot] Apply langsys's required feature even if no other feature exists - Move some blob functions to methods - Add hb-blob-private.hh Towards making blob more memory-allocation-friendly - [ot-layout] Remove unused members We should hang those off somewhere else. For now, the unused ones can go. - Set inline hidden flag only on shared library building To avoid need of CMP0063 which is not available on older CMake versions - [subset] entrySelectorZ -> entrySelector. - [subset] add missing template parameter. - [subset] Switch to a non-log using implementation of caculating searchRangeZ, entrySelectorZ, and rangeShiftZ in cmap4. - [subset] Updated expected files for japanese subset integration tests to include cmap4. - [subset] Update expected files for subset integration tests to include cmap4. - [subset] Get cmap tests passing again. - [subset] Write out a format 4, plat 0 encoding record to match fontTools. - [subset] A few bug fixes for cmap format 4 subsetting. - [subset] Complete implementation of cmap4 subsetting. - [subset] WIP implementation of serialize for cmap format 4. - [subset] Add an implement for cmap format 4 create_sub_table_plan. - [subset] WIP cmap format 4 subsetting. - [subset] Refactor cmap subsetting to make it possible to add support for more sub tables. - [subset] Add const to the hb_subset_plan_t input to a couple functions in hb-subset-plan. - Rename some X-terminated members to Z-terminated X-terminated means don't access this, it's not located correctly. Z-terminated means this is a C array with no bound checking. - [set] Fix init/fini of set on the stack to call object init/fini Part of https://github.com/harfbuzz/harfbuzz/issues/1017 - Remove hb_auto_array_t Part of https://github.com/harfbuzz/harfbuzz/issues/1017 - s/hb_prealloced_array_t/hb_vector_t/g Part of https://github.com/harfbuzz/harfbuzz/issues/1017 - Add hb_auto_t Part of https://github.com/harfbuzz/harfbuzz/issues/1017 - s/finish/fini For consistency. - Add hb_object_fini() - [set] Cache population Part of https://github.com/harfbuzz/harfbuzz/issues/1017 - [subset] Do not compare ttx progress output in the tests Suppress progress messages of ttx. This avoids comparing this output to the reference file which lets the test fail. - [dwrite] Minor, enable the original code assertions - Don't decompose Bengali Rra and Rha Fixes #779 and follow up to b01d9b3d90e892341ee4463f2eda4600850b97d8 - Minor, improve file reading failing condition comment https://bugzilla.gnome.org/show_bug.cgi?id=659212 for more context - Minor, re-add unused mark to some of ragel defined state machines (#1005) - Minor, re-add unused mark for two TRACE_ macros To revive Travis CI bot - Resolve some of clang's double-promotion warnings - Resolve clang's used-but-marked-unused warnings - Resolve clang's conditional-uninitialize warnings - Resolve some of clang's zero-as-null-pointer-constant warnings - Minor, fix calloc call order - [aat/kerx] Minor (#1003) - Add hb_blob_create_from_file, a new API (#926) - [subset] Check instruction offsets in glyph to ensure they are in bounds. - [subset] In subset fuzzer run through drop hints and keep hints pathways. - [util] Check all specified shapers are known (#993) A bit brute force and requires all shapers to be known, not just one. Fixes https://github.com/harfbuzz/harfbuzz/issues/956 - [subset] Add integration tests for cmap breakge. - [subset] Add a test for previous cmap breakage. - [subset] Fix broken cmap creation. It was ignoring the restriction that gids must be consecutive to be placed into a single group. - Minor, annotate the added tables with likely/unlikely (#997) - [subset] Remove printf's from fuzzing targets. - Do sanitization before the use on 'main' mini-program (#994) - [subset] add a fuzzer target for subset_get_all_codepoints method. (#987) - [colr] Check layer record access - [subset] Add implementation of cmap format 12 codepoint listing. (#988) - Add pre-opentype font pages detection code (#986) As Khaled's finding on #981 this is the way Uniscribe detects those fonts. This is its detection part. - Make some of implicit header uses explicit (#989) Splitted from #950 and #986 IIRC Chromium had a policy about this encouraging it, not sure about automated way to detect and add them but for now lets have the needed ones of them. - Add round to F2DOT14 inner store setter (#990) It uses floor implicitly without it but explicit use of round will be more correct. - [subset] Don't assume the last segment in cmap 4 can be skipped, actually check it. - [subset] sketch out support for a call that lists all codepoints present in a font. Implement support for it in format 4 cmap sub table. - Further improvements on dump-fon (#985) - Add dump-fon, a prototype on how to work with .fon/.fnt files (#981) - Implement to_float and set_float of F2DOT14 (#984) - Rename UINT24 to HBUINT24 for consistency (#983) - Merge pull request #979 from ebraminio/msvc05 Reinstate support for Visual Studio 2005 - Reinstate support for Visual Studio 2005 - Always enable atexit on Android (#971) Obviously one can use a newer NDK for building an updated HarfBuzz instead that now pretty old version however I am concerned if that version checking is working with clang that is used with the newer NDK versions. - Update the links and revive the dead ones - Add or update tables specifications links - minor, use LOffsetTo and LArrayOf whenever possible (#966) - [dwrite] Cosmetic change (#963) - [graphite] Use tabs instead 8 spaces (#965) - [aat] Cosmetic changes (#964) - [ot-color] Cosmetic changes (#962) - minor - [colr/cpal] Improvements and add a sample renderer (#927) - [ci] Don't fail on brew warnings Not the best fix but it works and we don't care about brew warnings, so - Fix build with CoreText on OS X 10.7 and earlier (#952) - [aat] Further improvements on feat (#948) - [hangul] Fix comment - [aat] Implement feat table parsing (#947) - Another try at fixing linker issue Fixes https://github.com/harfbuzz/harfbuzz/issues/880 - Minor build related changes - [aat] Implement gcid table parsing (#944) - [aat] Implement bsln table parsing (#943) - Make atexit callbacks threadsafe (#930) - [graphite] Make get_table threadsafe (#931) - Make gen-* scripts LC_ALL=C compatible (#942) - Actual py3 compatibility making on gen-* scripts (#941) - Make more gen-* scripts py3 compatible (#940) - Add README.wine.md and touch some other docs (#939) - [atexit] Make hb_languate_item_t *langs freeing threadsafe Part of https://github.com/harfbuzz/harfbuzz/issues/923 - Fix one UBSan warning Fixes https://github.com/harfbuzz/harfbuzz/issues/935 - [uniscribe] Fixup for previous commit Fixes https://github.com/harfbuzz/harfbuzz/issues/934 - [uniscribe] Fix assertion fail in checksum calc Program: Z:\Users\ebrahim\Desktop\harfbuzz\winbuild\util\.libs\hb-shape.exe File: ../../src/hb-open-type-private.hh, Line 769 Expression: 0 == (Length & 3) abnormal program termination - Make gen-use-table.py py3 compatible (#932) - [subset] fix infinite loop bug in looping through tables for subsetting. - Implement an internal emojis dumper tool (#909) Later to be expanded to a more general tool but for now it only supports CBDT, SVG and CBDT. - [ci] Fix coverage build fail (#925) - [subset] Couple of fixes for fuzzer discovered issues. (#924) * [subset] sanitize individual DeviceRecord's as part of hdmx sanitization. * [subset] Fix out of bounds read with non-two byte align glyphs. * [subset] Just use size_device_record >= DeviceRecord::min_size. * [subset] Add TODO. * [subset] Re-order checks in hdmx sanitize. - [hdmx] Minor - Minor - Fix previous commit Automake has this stupid behavior where if your Makefile.am has syntactic error, it can get to a state that make succeeds but just ignores broken Makefile.am. Ouch. - Try fixing linking again Before 1.7.5, we were setting -fno-exceptions etc on CXXFLAGS. In 1.7.6 we set it as CPPFLAGS. Try fixing. Also, I'm fairly sure it's safe to set these unconditionally. Fixes https://github.com/harfbuzz/harfbuzz/issues/880 (or so I hope) - Add HB_SUBSET_BUILTIN Fixes https://github.com/harfbuzz/harfbuzz/issues/865 - Add HB_NO_ATEXIT - [aat] Unprefix not essentially layout tables (#921) - Allow trailing non-numeric chars in --unicodes - [aat/ltag] Whitespace - [aat/ltag] Implement the table parsing (#911) - [aat/fmtx] Implement the table parsing (#910) - [ci] Add a build only apple-gcc-4.2 i686 bot - [dwrite] minor - More ULL fixes Fixes https://github.com/harfbuzz/harfbuzz/issues/901 - Define uint64_t constants with ULL suffix Fixes https://github.com/harfbuzz/harfbuzz/issues/901 - hb-private.hh: Add fallback implementation for round() For pre-C99 compilers that do not support round(), we need to have a simplistic implementation for it, when it is not detected during build configuration, either via CMake or autotools, by using floor() and ceil(), which are provided in the pre-C99 compilers. Please see discussion at commit 86a0ac2 for more details for re-adding this patch. - Policy 0063 must be enabled to have hidden inline visibility... (#900) ...on static builds. - Fix llvm-gcc-4.2 compile issue and add a macOS bot to test it (#899) - [dwrite] Replace rest of 'malloc/free's with 'new/delete' (#897) - [subset] Check for the Null table and not nullptr to detect failure to find a table in glyf accelerator. - [subset] Fix to debug message. - [subset] don't use pointers returned from push after array has resized in hb-subset-glyf.cc - [subset] Fixed out of bounds read when subsetting hdmx. - [subset] Disable glyf accelerator_t methods if it didn't successfully init. - [subset] Fix infinite loop in there are more then 32 tables. - [subset] Add a fix for segfault in hmtx/vmtx subsetting code. - [subset] Add a test demonstrating a seg fault while subsetting hmtx. - [subset] Restore subset to hb-subset-fuzzer. - [dwrite] Use new again and enable the build on msys2 bots (#890) - Appropriate fix for msys2 bot fail on gen-def.py (#894) - Do feature test before adding -Bsymbolic-functions, autotools part (#892) - Do feature test before adding -Bsymbolic-functions, cmake part (#889) - [cmake] Don't hide symbols by default (#891) But keep use of cmake idiomatic way of making inlines hidden - [subset] Test not linking libharfbuzz-subset-fuzzing into hb-subset-fuzzer. - [subset] Test hb-shape-fuzzer in run-subset-fuzzer-tests. - [subset] make libharfbuzz-subset-fuzzing.la depend on lib target. - [subset] %d -> %zu - [subset] Add some more logging to hb-subset-fuzzer. - [subset] Fix run-shape-fuzzer-tests.py. It was generating incorrect paths for input fonts. - [subset] Add more verbose output for subset fuzzer test. - [subset] Rename hb-fuzzer -> hb-shape-fuzzer. - [subset] Add rub-subset-fuzzer-tests.py to dist files. - [subset] Add a test runner for hb-subset-fuzzer and cmake build config. - [subset] Fix fuzzing build for hb-subset-fuzzer. - [subset] Add missing destroy of subsetting result in subset fuzzer. - [subset] First pass at setting up a fuzzing program for hb-subset. - [util] Remove line buffering Something weird seems to be going on. Just kill it. Fixes https://github.com/harfbuzz/harfbuzz/issues/888 - Remove extra stdbool includes They are handled in our common header. - Add NameID - [color/COLR] Simplify - [color/COLR] Clean up - [color/COLR] Fix bad sanitize Bad bad bad bad code. Don't do that. If compiler's not happy, understand why. - [color/COLR] Clean up - [color/cbdt] Clean up - Revert "hb-private.hh: Add fallback implementation for round()" This reverts commit b9dcbb1f8312d8606b230f75594d40b7d4087004. This is gross. Should be only done if a specific macro is defined. Not the other way around. This fails my build as autotools companions where not added anyway. - Merge pull request #886 from madig/only-export-visible-symbols CMake: hide symbols by default on non-MSVC, define export attribute - Enable implicit symbol hiding for all libraries, static and shared This covers all built libraries now and both static and shared builds. - [dwrite] GCC/mingw/msys2 compatibility (#884) - [ci] Trying to fix gen-def issue on appveyor (#885) - CMake: hide symbols by default on non-MSVC, define export attribute This change makes sure that non-MSVC builds using CMake properly hide non-exported functions. - Merge pull request #877 from fanc999/master.msvc Fix CMake builds on Windows, MSVC in particular - CMake: Fix utility program installation Put in the utility program that was missed in installation by replacing the one that was duplicated. - CMake: Fix introspection on Windows The list of source files to pass to g-ir-scanner is becoming too long for Windows, as Windows imposes a 8192-character limit for command lines, so we need to first transform that list into a listings file, and then use the --filelist option for g-ir-scanner to build the introspection files. - test/api: Fix building subset tests Include stdbool.h in hb-setset-test.h instead of in the individual sources, if it is found; otherwise use a simplistic fallback for it if it is not found. Also declare variables at the top of the block, to build on pre-C99 compiliers. - CMake: Fix running tests on Windows For the API tests, output the test programs at $(TOP_BUILDDIR) so that the freshly-built DLLs will be available for the test programs. For those that are run through the Python wrapper scripts, use ${PYTHON_EXECUTABLE} instead of plain 'python' in case the Python interpreter is not in the PATH. - hb-private.hh: Add fallback implementation for round() Add a simplistic round() implementation for our purposes, used when the compiler does not support round() directly. - configure.ac/CMake: Check for round() and stdbool.h Not all the compilers that HarfBuzz is buildable on supports round() and has the header stdbool.h, so we check for them and define HAVE_ROUND and HAVE_STDBOOL_H repsectively in our CFLAGS so that we include them only when they are found, or use fallback implementations when necessary. Also include FindPythonInterp earlier as we need PYTHON_EXECUTABLE to be set for running the tests. - [ot-color/SVG] Minor (#878) - [sbix] Clean up - [ot-color] SVG table implementation (#874) - [ot-color] sbix table implementation (#870) - [dev-run] minor - Merge pull request #872 from googlefonts/drop-tables [subset] Drop the same tables by default as fontTools does. - Make subset test runner compatible with py3 Fixes #873 - [ci] Enable subset tests on ArchLinux to test This makes ArchLinux bots fail, a starting point to #873 - [subset] Drop the same tables by default as fontTools does. - Merge pull request #871 from googlefonts/mplus [subset] Add a Japanese font to the subset integration tests. - [subset] Drop cmap 12, platform 0 tables from Mplus1p expected files. - [subset] Fix deadlock waiting for process output in subset test runner. - [subset] add some extra logging to subset run-tests.py. - [subset] Add japanese font file to subset integration tests. - Merge pull request #868 from googlefonts/post [subset] Drop glyph names from post when subsetting. - [subset] use create_sub_blob instead of manually copying the post table. - [subset] Unit test to check that post subsetting drops glyph names. - [subset] drop all glyph names from the post table. - Merge pull request #867 from googlefonts/vmtx [subset] Add vmtx subsetting. - [subset] fix author. - [subset] s/hmetrics/vmetrics. - [subset] cleanup. - [subset] add unit tests for vmtx subsetting. - [subset] Skip subsetting vhea. - [subset] Subset vmtx if present. - [test] Fix build with older glib - 1.7.6 - [ot] Comment out AAT include - Remove hb-ot-color.h So I can make a release. - [ot] Remove hb-ot-base.h BASE table API will go into hb-ot-layout.h. - [set] Fix algebra Was totally b0rked. Ouch! Fixes https://github.com/harfbuzz/harfbuzz/issues/863 - [set] Minor In preparation to fix https://github.com/harfbuzz/harfbuzz/issues/863 Binary operations are sets are completely broken. Ouch. - Minor - Sign - [set] add a test demonstrating a bug in hb_set_union. - [ci] Enable -Werror=unused (#862) - [ot-color] Further improvements on COLR/CPAL implementation (#859) * Implemented a bsearch on get_base_glyph_record * Made get_color_record_argb actually work - [dev-run] an option to open using a GUI app - [ci] minor, bring back the removed assertion - [ci] minor - [aat/kerx] Add a TODO - [ot-color] Move cbdt to the namespace (#860) - [ci] Remove --coverage as use of --enable-code-coverage - [ci] Don't run coveralls on freetype folder - [ci] Remove failing check on run-coveralls - Add lcov tool for coverage tests - [ci] Enable code coverage on Travis Linux builds - Enable coverage test on autotools (#857) - [ot-color] Move the related tables to hb-ot-color-* (#858) - [COLR/CPAL] Provide enough helper for rasterization (#855) - [COLR] Revert previous sanitization on the table That sanitization wasn't right, firstLayerIndex is an index from beginning of the Layer Records not the table itself. - [aat/kerx] Improve format 6 subtable - [aat/kerx] Make parsing of the table actually work (#850) - [COLR] Sanitize BaseGlyphRecord (#854) - [CPAL] Fix version checking logic on sanitizer (#851) - [test] Add test suite for Brahmi Number Joiners https://github.com/harfbuzz/harfbuzz/pull/660 - [subset] In subset integration test pass output through ots-sanitize if present. - Merge pull request #845 from googlefonts/drophints [subset] drop hints from composites - [subset] kick the build - [subset] extract a method to flip off composite instruction flag - Use old project location of coverity https://github.com/harfbuzz/harfbuzz/commit/8089711a61687d565f207c56d3d2b658f514d7ab#commitcomment-27835452 - Merge pull request #847 from ebraminio/colr [colr] Implement - [colr] Implement - Merge pull request #841 from ebraminio/color Support CPAL table - [cmake] cleanup (#846) - [CPAL] Refactor and address the reviews - [subset] remove WE_HAVE_INSTRUCTIONS from composites when dropping hints - [subset] update the test file for composite, fix an offset calculation - Merge branch 'expand-tests' of github.com:googlefonts/harfbuzz into drophints - [subset] Add drop hinting profile to full-font.tests - [subset] Add a drop hints profile to basics.tests - [subset] apply subset profiles (flags) to the subset integration tests. - [subset] add expected/full-font to dist files. - [subset] Add subset integration tests using the full roboto font. - [subset] Add some more variations of the basic test. - [subset] add a (failing for now) test for composite glyf hint dropping - Merge pull request #842 from googlefonts/maxp [subset] when dropping hints, clear hint related fields in maxp. - [subset] minor fixes in hb-ot-maxp-table.hh - [subset] whitespace for hb-ot-maxp-table.hh - [subset] Add maxpV1Tail instead of defining a struct inside maxp for v1 data. - [subset] when dropping hints, clear hint related fields in maxp. - [BASE] More - [BASE] Clean up first 29% - Merge with master - Merge pull request #838 from harfbuzz/BASE BASE table - Remove public API of the branch - Merge pull request #818 from googlefonts/drophints [subset] Drop hints - [subset] clearer name for trim() and better comment about composite handling, per review feedback - Merge pull request #840 from googlefonts/os2 [subset] During os2 subsetting update ulUnicodeRange[]c - [subset] update to comment in hb-ot-os2-unicode-ranges.hh - [subset] small cleanups in hb-ot-os2-table. - [subset] small updates to gen-unicode-ranges.py - [subset] Move util/generated-unicode-ranges.py to src/gen-unicode-ranges.py - [subset] unsigned int -> hb_codepoint_t. - [subset] const in _compare_range. - [subset] Add comment to os2UnicodeRangesSorted. - [subset] Fix incorrect index. - [subset] Add special case handling of bit 57 in os2 ulUnicodeRange. - [subset] Add python util that was used to generated hb-ot-os2-unicode-ranges.hh - [subset] Add cmake build def for test-unicode-ranges. - [subset] Rename hb-os2-unicode-ranges.cc to test-unicode-ranges.cc. - [subset] set ulUnicodeRange[] in os2. - [subset] Move hb-ot-os2-unicode-ranges into a cc file with a helper methods and tests. - [subset] Add hb-ot-os2-unicode-ranges.hh, a map of os2 unicode ranges. - [dev-run] show images using iTerm2 images feature - [aat/ankr] Define Anchor struct - Minor - [aat/ankr] Minor DEFINE_SIZE_MIN is to be used only in rare cases. For fixed-size structs we want DEFINE_SIZE_STATIC. - [aat/ankr] Hook up Lookup table - [aat/ankr] Simplify - [aat/trak] Simplify sanitize() - [aat/trak] Clean up We always just used "unsigned int" for counter values. There's no use for uint16_t outside of a struct. Also, no need for explict casting where implicit does. - [aat] trak sanitization - [aat] minor Ops, this was done for testing - Minor - [aat/trak] Minor Maybe we should make DEFINE_* make structs uncopyable. - [aat] Implement ankr - [BASE] Minor - Merge remote-tracking branch 'eroux/add-base' - [ci] Add clang O3/O0 testers (#834) - Workaround for old automake on Travis Linux images https://github.com/harfbuzz/harfbuzz/pull/821#issuecomment-368116538 - Add -Werror=unused-function check to Travis (#832) - [aat] Implement trak logic (#816) - Include hb-version.h in git (#825) - [subset] update hdmx test to create input explicitly - [subset] format tweak, doc string - Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into drophints - [subset] keep glyph trim separate of more general get_offset - [subset] zero glyf and loca memory before writing so pads are clean. Test just the part of maxp we care about - Merge pull request #829 from googlefonts/test-checksum [subset] Caclculate head table checksum adjustment - [subset] Caclculate head table checksum adjustment Test still fails, because we do not serialize tables in the same order that fonttools subsetter does. - Merge pull request #828 from googlefonts/mem-fixes [subset] Fix several memory leaks in subsetting. - [subset] Fix checksum calc out-of-bounds access - [subset] Fix memory leak in hb-subset-glyf. - [subset] Fix memory leak in hb-subset-plan. - [subset] Fix memory leak in hb-subset. - [subset] Fix memory leak in cmap subsetting. - [subset] Fix memory leak in hmtx subsetting. - [subset] Fix memory leak in subset face destroy. - autoconf: provide a harfbuzz-config for use from CMake (#822) - Clean up check-defs and check-symbols (#821) Also, call c++filt on their results. Also build and fix and check harfbuzz-gobject.def Also changes harfbuzz-gobject to distribute generated enum sources. - [subset] clone trim logic from fonttools glyf handling - Merge pull request #823 from googlefonts/hdmx [subset] Add hdmx subsetting. - [subset] Remove commented code from run-tests.py. - [subset] Update expected files for subsetting integration test to not include cmap 4. - [subset] Fix checksum clearning in subset test diff. Add an updated expected file (has cmap4 restored). - [subset] Don't compare actual to itself in Fix test/subset/run-tests. Print a diff on failure. - [hdmx] Fix sanitize() - [hdmx] Minor - [hdmx] Move DeviceRecord to toplevel again More readable. - [subset] More complete sanitization implementation for hdmx. - [subset] Formatting and comments in hdmx. - [subset] In hb-ot-hdmx-table, s/glyf/hdmx. - [subset] Fail subset if a table fails to sanitize. - [subset] Add a unit test for hdmx subsetting. - [subset] Enable hdmx subsetting. - [subset] Move DeviceRecord inside of hdmx. - [subset] Add hdmx subsetting implementation. - [subset] In hdmx serialize set the correct value of sizeDeviceRecord. - [subset] When serializing a DeviceRecord in hdmx pad to make 32 bit aligned. - [subset] Begin implementing serialize for hdmx. - [subset] Sketch out a basic hb-ot-hdmx.hh. - [util] Implement ppem/ptem on hb-{shape,view} (#811) - [dev-run] minor - [dev-run] Add gdb/lldb shortcuts - [subset] sketch out dropping in-glyf instructions. Sometimes yields differnet size glyphs than fonttools, possibly due to padding not being corrected - [subset] keep the result of _subset - Add two more ragel-generated headers Fixes https://github.com/harfbuzz/harfbuzz/issues/817 - [subset] drop hint tables if so flagged. Still need to dump glyf instructions. - Add .editorconfig (#810) More information: http://editorconfig.org/ - [subset] add --hinting flag - [subset] keep the result of _subset - Use HB_SET_VALUE_INVALID consistently - [subset] fix calculation of range shiftz. Should be 16 * len - searchRange not 16 * (len - searchRange). - [subset] Reverse table order for font serialization to match what OTS expects. - [subset] sanity check glyph data writes during glyph subsetting to ensure they are inbounds. - [subset] Sanity check that loca writes are inbounds. - Merge pull request #812 from googlefonts/cleanup Clean up of glyf subsetting. - [aat] Cosmetic touch-ups to trak table - Add Ragel-generated files to git I know it's bad form; I know I've said no to this multiple times... But this is part of an experiment to see if we can make rolling HarfBuzz into Chrome much faster. That will give us a lot more testing exposure that currently Chrome does. Doing this while those files are still considered ignored by our gitignore rules; will see how that flies. - [subset] Switch to hb_blob_copy_writable_or_fail in glyf subsetting. - [subset] Move glyf subsetting code into hb-ot-glyf-table.hh - Don't use %zu Some of our bots / compilers don't like it. Wasn't caught by bots because this is only in debug code. https://github.com/harfbuzz/harfbuzz/pull/809/commits/825ad378e0f0e6e6bb690894a0d5d25f198be21b - [dev-run] minor - [dev-run] Support autotools builds - Use %zu format specifier for size_t to fix cross platform build Fixes Chromium Android builds, compare https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/491787 - Change Alpine and ArchLinux bot to test O3 and O0 on gcc, #801 - [aat] First dig on 'trak' - Ugh. Really fix build. - Fix build after previous commit - [subset] Don't include hb-subset.h from hb.h - Check availability of entr instead now that this works with it - Simplify hb-fuzzer output printing and fix ArchLinux bot - Test debug builds on ArchLinux bot Fixes #805 - Limit how much work sanitize() can do Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6022 - [aat] Minor - Fix debug build Context needs to be called 'c'. The TRACE_* rely on that. - [aat] Silence warning - [ci] Make AppVeyor less noisy - Readjust mark attachment heuristic a bit more Previously adjusted logic could fail if nothing around was ligated, and something moved. This should take care of that. CC https://github.com/harfbuzz/harfbuzz/issues/740 - [test] Add test for https://github.com/harfbuzz/harfbuzz/issues/740 - [aat] First dig on 'kerx' (#704) - Merge pull request #796 from ebraminio/dev-run Add a continuous builder using fswatch - Remove unused check - Add a continuous builder using fswatch - [test] Fix a couple of coverity_scan issues - Another attempt on fixing coverity I hope I am in a correct direction at least - Merge pull request #800 from harfbuzz/bitops Optimize set through optimized bit operations - Fix BitScanForward() usage Should fix Win64 bot. - Merge branch 'master' into bitops - Do not mark the first glyph as unsafe to break Fixes #791. - [test] Remove unused var - Update outdated TODO file - [test/api] Distribute all fonts - Misc fixes Should bring bag djgpp bot. - [subset] add a glyf subsetting test for a font with composite glyphs. - [subset] missing return. - [subset] Add support for updating reference gids in components to their new values. - [subset] Refactor composite glyf iteration code into an Iterator outside of the accelerator. - [subset] Use gids_to_retain_sorted to produce old gid -> new gid mapping since it now has the more complete set. - [subset] Use complex glyph closure to populate gids_to_retain_sorted. - [subset] add constant to get_composite and in_table methods in hb-ot-glyf-table - [subset] Add a DFS search to produce a closure of composite glyphs. - [subset] add helper methods to glyf accelerator for reading composite glyph information. - Another bitops fallback fix I'm confident that all bugs are hashed out now. - Another bitops fallback impl fix - [set] Implement iteration using bitop intrinsics - Fix wide bitops implemenetation - [set] Readjust parameters - Fix bitops fallback impl - Flesh out other bit ops some more for 128bit as well - Clean up bit functions Compile all code-paths possible, to better catch errors. Also enable MSVC ones on mingw which seems to support them. - Improve _hb_popcount() Support 128bit type. - Fix warnings - Enable C99 if available Hopefully we can now mix-and-match code and declaration in the C test files. - Merge pull request #792 from googlefonts/master Support more tables in subsetter - That didn't work... - Add mingw32.sh and mingw64.sh - Remove checking macros __OPTIMIZE__ for MSVC Visual C++ compiler doesn't define macros __OPTIMIZE__ when optimizations enabled - Make this work for old versions of automake - Print only the failed log - Simplify calls to collect-logs.sh - [subset] try to get more info from bot where g_assert_cmpmem fails - [subset] fix int type for blob length in hb-subset-test.h - Merge branch 'master' of https://github.com/harfbuzz/harfbuzz - Fix hb-private.hh compile issue - Use _BitScanForward and _BitScanReverse on MSVC - [subset] apparently C99 is too much to ask in 2018 - [subset] fix format specifier for size_t - [subset] fix no matching function MIN in djgpp - [subset] add files to EXTRA_DIST - [subset] correct bug introduced to get_advance - [subset] remove unused decl - Move collect_logs to .ci dir Next to other CI scripts. - [subset] hmtx space bracket. authors++ - [subset] cmap space bracket - [subset] space bracket - [subset] maxp copy writeable fn - [subset] hmtx use copy writeable fn instead of direct memory - [subset] whitespace - [subset] Minor - [test] Reinstate test/shaping/data/in-house/tests/myanmar-syllable.tests - [subset] Merge remote-tracking branch 'googlefonts/master' - [subset] Don't fail on different checksum adjustment in subsetting tests. - [subset] Fix hhea subsetting and clean up some memory leaks. - [subset] Add missing face reference in hb-subset-plan plus ensure all struct members are cleaned up on destroy. - [subset] In hb-subset-test use hb_set_union instead of manually copying set. - [subset] Restore hb_face_data_destroy to be internal. - [subset] Fix memory leak in hb-ot-{maxp,os2}. Plus some formatting. - Another linker tweaking Trying to fix this warning: cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C Let's see what the clang bots think of it. - [set] Tune size again Switch from a 128+64 hierarchy, to 32+32. New page size is 1024. This should make set iteration faster, without affecting other op performances much. - [subset] remove TODO that was already done - [subset] maxp wrong int type, note to use copy_writable_or_fail - [subset] return bool not hb_bool_t from table::subset - [subset] Use a supplier instead of memcpy and fix a few unnecessary {}s for cmap - [subset] add free - [subset] Give Behdad credit again - [subset] First pass at hmtx - Redirect email notifications to another mailing list dedicated for this (#790) - Add .collect_logs and use it on CI bots, fixes #786 (#789) - [subset] Fix codepoint iteration in hb-subset-test. - Another try - Fix compile error in hb-subset-test. - [test] Fix warning - Tweak Makefile some more - [subset] Allow linking to libstdc++ We want to use it. - copy all cmap groups at once - Merge remote-tracking branch 'upstream/master' into fixed - [subset] Drop GSUB, GDEF, GPOS, and DSIG from subsetter expected test outputs. - [subset] capitalize dsig. - [subset] Extract maxp subsetting into hb-ot-maxp-table. - [subset] Add a test for OS/2 fixes during subsetting. - [subset] white and add inline in hb-ot-cmap-table. - [subset] Correct usFirstCharIndex and usLastCharIndex in OS2 table when subsetting. - Another attempt on fixing the tests on Travis (#788) - [set] Add backwards iterator New API: - hb_set_previous() - hb_set_previous_range() - [set] Allow starting iteration from a non-member of the set - Add hb_blob_copy_writable_or_fail() New API: - hb_blob_copy_writable_or_fail() - [subset] Rename constructor to hb_subset_input_create_or_fail() To signify that unlike rest of library, returns nullptr on failure. - [use] Add dump-use-data - [khmer] Add dump-khmer-data - [myanmar] Add dump-myanmar-data - [indic] Rename print-indic-table to dump-indic-data Makes more sense given what this prints, err, dumps. - [indic] Explicitly number indic_position_t So it's easier to cross-reference from output of print-indic-table. - More tweaking linker and linker flags - [indic] Share some copy/pasta code - [indic] Add print-indic-table - [subset] Fix loca offsets Was writing source font's offsets. Ouch. - Another tweak at libstdc++ things To fix this warning: cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C - [aat] Minor - Minor - [subset] hb_subset_input_t changes - Disable threadsafe static's for all libraries Even in libharfbuzz-subset, we still will handle our own threadsafety for statics. - Specify the project name for coverity, trying to fix #785 - Pass no-libstdc++ flags only to libraries suppressing it - [subset] Allocate bulk memory with malloc(), not calloc() We use calloc() to allocate simple structs and set them to zero. For bulk memory, use malloc() that doesn't zero. - Use hb_face_get_upem() instead of face->get_upem() Such that hmtx accelerator can be used from libharfbuzz-subset. - [subset] Remove unreachable code sanitizer.sanitize never return nullptr. - Allow libharfbuzz-subset to link to libstdc++ We want to use it instead of reinventing hashmap... Also, don't change linker for ICU since libicu also uses libstdc++. - Move linker specifying to a better place - [subset] whitespace - output format 12 as enc 10 to match how Roboto did it - basic wiring for a (failing) cmap test - auto-completed the wrong gids_to_retain - Use functions to get new gids. Avoid 0; fonttools drops it from cmap. - [subset] Remove test-subset, testing is planned to be done at the table level here with test/subset covering the complete subsetting operation. - [subset] added todo in test-subset-glyf. - [subset] re-enable test-subset-glyf. Refactor to use common functions in hb-subset-test.h - [subset] Add some helper functions for writing tests around subsetting. - [subset] Fix loca generation, was previously writing the original glyph starting offset. - Rename --with-stdcpp → --with-libstdc++ Also improve wording a bit and fix make check in --with-libstdc++=yes. - we love all our groups - drop GDEF, GPOS, GSUB, and dsig - [subset] Set the new number of glyphs in maxp. - Don't force loca version to long. - Destroy the subset plan at the end of subsetting. - Build a working cmap format 12 - subset for real - C-style comments - Fix symbol exporting issue on msys2 and ✅ bringing all the bots (#781) - Minor - Minor, don't skip the whole test when one .def file not found - Apply check-defs.sh to -icu and -subset, toward mingw fix (#780) - Add --with-stdcpp for ossfuzzer and mupdf use (#770) - minor - Add Travis based Coverity trigger (#778) - Remove linker selection from hb-ucdn Since this is a convenience library, it's not actually linked. Or so I think. Hoping this might fix this Appveyor failure: https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/9884jyb5vryja9pw Making all in hb-ucdn make[4]: Entering directory '/c/projects/harfbuzz/src/hb-ucdn' CC libhb_ucdn_la-ucdn.lo GEN libhb-ucdn.la /bin/sh: libhb_ucdn_la-ucdn.lo: command not found make[4]: *** [Makefile:404: libhb-ucdn.la] Error 127 make[4]: Leaving directory '/c/projects/harfbuzz/src/hb-ucdn' make[3]: *** [Makefile:2548: all-recursive] Error 1 make[3]: Leaving directory '/c/projects/harfbuzz/src' make[2]: *** [Makefile:1382: all] Error 2 make[2]: Leaving directory '/c/projects/harfbuzz/src' make[1]: *** [Makefile:486: all-recursive] Error 1 make[1]: Leaving directory '/c/projects/harfbuzz' make: *** [Makefile:418: all] Error 2 - Add MSVC to no-visibility list - Add Sun compiler to no-visibility as well Fixes https://github.com/harfbuzz/harfbuzz/pull/776 - Fix more warnings - Another try at fixing multiple-defintion of NullPool This one might do it... - [docs] Minor update - [subset] Another fixup I broke this in c31fcf4c58d96eb7d9781a986991b1a79ac7be44 - Try at fixing multiple-definition of NullPool If we don't have visibility, make NullPool static. - [subset] Use auto_array_t where it does make sense Better fix for https://github.com/harfbuzz/harfbuzz/pull/775 - Minor - Install fonttools on two bots and enable cmake hb-subset test (#777) - Initialize bad_indices on hb-subset (#775) - fix gobject compile issue (#773) - [gpos] Adjust mark attachment heuristic Hopefully it... fixes https://github.com/harfbuzz/harfbuzz/issues/740 - More fixes - Misc warning fixes - Fix djgpp bot - Minor - Favor use of static instead HB_INTERNAL - [test] Disable test-subset-glyf for now - More fixes test-subset-glyf still failing. No idea why :( - Fix more build issues Hopefully most bots come back with this... - Hide more symbols of hb-subset (#771) - [subset] Replace auto_array with prealloced_array auto_array has constructor/destructor. Cannot be used in POD object, as the clang bots all noticed... - Fix some other bots - [util] Remove use of ssize_t which was failing on MSVC - Minor - Fix symbol exporting and libstdc++ linkage of hb-subset (#769) - [aat] Add buffer messages - Minor - [subset] Merge remote-tracking branch 'googlefonts/master' - Replace Supplier.advance with Supplier::operator+= - [util] Use setlinebuf() if present To work around mysterious bug on OS X. Fixes https://github.com/harfbuzz/harfbuzz/issues/727 - Fix cast warnings on clang (#768) - In glyf subsetting add suport for writing out a short loca table when possible. - First pass at building a cmap - Check for failures from add table. - add missing return - Keep a second set of glyph ids in subset plan which is sorted by glyph id and always has gid 0 - Formatting for hb-subset-plan. - Try fixing build with Sun Studio Trying to fix: https://circleci.com/gh/harfbuzz/harfbuzz/6635 Also part of: https://github.com/harfbuzz/harfbuzz/issues/630 - Return empty face on hb_subset failure instead of null. Plus some minor cleanups for _add_head_and_set_loca_version - Typo - [docs] Improve UNSAFE_TO_BREAK docs - Documentation for HB_GLYPH_FLAG_UNSAFE_TO_BREAK. HB_GLYPH_FLAG_UNSAFE_TO_BREAK means that the glyph with this flag is somehow affected by the previous logical glyph (the previous index in the buffer if ltr and the next index if the buffer is rtl). If these two glyphs are separated by a break (line or otherwise) then the underlying text should be re-shaped on both sides up to corresponding position in the text of some glyph not marked with this flag. - Update head table with loca format selected by glyf+loca subsetting. - Remove uneeded code in hb-subset. - [test/text-rendering-tests] Update from upstream - Create the groups for a cmap format12. Does not yet build the actual table. - capture codepoints sorted so we can use them for cmap later. one day we will have a map - remove output noise - fix comment - comment the serialization of table - Add an extra entry to the end of the loca table to identify the end of the last glyph's data. - Apply per table subsetting while building the new face in hb_subset. - Disable subset tests on cmake for now. - Disable subset tests on cmake for now. - Oops! - Whitespace - Minor fixups - Don't include subset headers in libharfbuzz. - Fix include gaurds and include order in hb-subset-glyf and hb-subset-plan - Add CMake config for building a separate harfbuzz-subset. - Skip subset to fonttools comparison test if TTX is not present. - Whitespace - In the hb-subset to fontTools comparison, use ttx to compare the fonts. This allows for some binary differences such as re-ordered tables. - Implement basic loca (long version only) subsetting. - Update interface to hb-subset-glyf to subset glyf and loca. - Comment out failing assert in test-subset-glyf for now. Should be re-enabled once hb_subset is writing out a new face. - Add a basic test for glyf subsetting. - Cleanups in hb-subset-glyf and hb-subset-plan. - move to the hb_face_t dest pattern - sketch a subset and call it for cmap. Add subset to cmap, albeit not working even for the msot basic case just yet - Fix overflow in space fallback shaping Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=657466 - Avoid undefined-behavior in fallback mark positioning Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5584 - [fuzzer] Minor - [util] Minor - [aat] Minor - [test/text-rendering-tests] Update from upstream - TODO - [subset] Fix thinko - Fix another thinko - [subset] Fix thinko - Build - [subset] Assemble font - [set] Respect stride Ouch! - [subset] Fixup - Whitespace - [subset] Create new face and copy all tables to it test-subset fails now because subset-face does not know how to compile itself. - Refactor subset glyf to remove multiple calls to glyf.fini() - Add implementation of glyf subsetting. - Extract glyf offset calculation into it's own method. - Fix two undefined-behavior issues Fixes https://github.com/harfbuzz/harfbuzz/issues/761 Fixes https://github.com/harfbuzz/harfbuzz/issues/762 - Try fixing build for platforms that have no visibility attributes - [test] Minor - [subset] Add hb_subset_face It's a hb_face_t that has add_table() and in the future knows how to compile itself into a font blob. - [subset] Change hb_subset API to remove hb_subset_face_t - Remove NullPool visibility hack We keep a separate private NullPool in libharfbuzz-subset.so This can fire back later since now there are two separate null objects, and comparisons to the null pool can be confused. Something to deal with when it comes up. Ouch! - glyph ids to retain should most likely keep the glyph id not the codepoint - Remove \ns leftover from fprintf - Horrid hack to assign new gids. Use DEBUG_MSG over fprintf - Add a subset debug category - [aat] Set debug lookup_index - TEMPORARY: remove HB_INTERNAL from null pool so subset builds again - Add an instance of glyf::accelerator_t to hb-subset-glyf. - add back assert_pod - Resolve codepoints:glyph ids. Does not compile; undefined reference to OT::_hb_NullPool - Add skeleton of hb-subset-glyf, call if from hb_subset(...) - Create a subset plan in hb_subset. - capture the set of codepoints passed by --unicodes - Make hb-subset-plan private. - Move definition of hb_subset_input into hb-subset-private.hh. - Add codepoints to subset input. - Add a basic sketch of hb-subset-plan. - [aat] Fix debug compile - [test] Fix test-subset on old distros (#758) https://developer.gnome.org/glib/stable/glib-Testing.html#g-assert-cmpmem - [aat] Adjust unsafe-to-break logic some more I believe I'm happy with it now. - [aat] Simplify unsafe-to-break logic - [buffer] Tweak diff re glyph_flags again We expect the buffer to have no flags that the reference doesn't... Meh. Makes MORX tests pass now. Need to better define the behavior. - Fix hb-buffer logic error - [subset] Fix Windows issue on endlines (#756) - Fix fallthrough compiler warning with gcc >= 7 Fixes https://github.com/harfbuzz/harfbuzz/issues/755 - [test] Minor - [subset] Minor - Merge pull request #754 from googlefonts/master Fix build for subsetting code. - ssize_t -> size_t - Switch to fopen() instead of open() in subset test. open wasn't compiling on windows. - Rename HB_SUBSET_sources -> HB_SUBSET_CLI_sources to match what cmake is looking for. - Wrap unistd.h include in ifdef. - Add libharfbuzz-subset.la to linking when building api tests. - [subset] Build hb-subset into separate libharfbuzz-subset.so - [subset] Minor - Merge pull request #745 from googlefonts/master Interface for hb_subset, skeleton for the hb-subset cli, and basic testing rigging. - [test/text-rendering-tests] Update from upstream - [aat] Fix unsafe-to-break At any position, if state is not zero, mark unsafe-to-break before, unless we can reason it safe. At any position, if there's an action entry for end-of-text, mark unsafe to break. Also changes buffer diff impl to allow for flag differences as long as the buffer glyph flags are superset of reference glyph flags. With this, all MORX tests pass. - Actually call hb_subset - Add CMakeLists.txt to dist files for subset test. - Add CMake configuration for all of the new subsetting code. - Add missing unistd header to hb-subset. - Properly include subset test data files. - Re-write hb-subset utility to use main-font-text driver. - Whitespace - Include subset test files in distribution. - Whitespace - Get test-subset to pass. - Attach add a hb_face_t to hb_subset_face_t. - Whitespace - Add a basic implementation of hb-subset to enable compilation of test-subset. - Make the expected output for subsetting basics test be equal to the input file for now. - Add the beginning of a unit test for hb-subset - tweak test failure output. write to a temp file not stdout. test still fails because expected is not just an identical copy of input - Add hb-subset.h to hb.h - Fix typo in hb-subset.h - Remove basic subset test from XFAIL - Whitespace - Configure automake to run the new subset tests. - WIP test runner for subset tests. - In generate-expected-outputs read the test definition with utf8 encoding. - Add basic directory structure for subsetter integration tests. Plus a utility for generating expected output files. - Start to sketch APIs for subsetting - [aat] More adjustment to ContextualSubtable See comment. With this, MORX-20 passes if I turn --verify off. Our unsafe-to-break logic is currently broken in presence of end-of-text actions. That's, ugh, extra work to fix. Let me try... - [aat] In ContextualSubstitute, apply end-of-text action to last glyph - [aat] Remove unneeded check - [configure] Fix wording Fixes https://github.com/harfbuzz/harfbuzz/issues/741 - [aat] In ContextualSubtable, mark mark after substituting mark Fixes MORX-21. - [aat] Fix ContextualSubtable sanitization Fixes MORX-18, MORX-19, and MORX-22. - Correctly show documentation build status Correctly show if building documentation is enabled or not in configure summary. Fixes https://github.com/harfbuzz/harfbuzz/issues/741 - Enable use of atexit() on macOS and related platforms. The atexit() man page indicates that this is expected to behave in the expected way on unloading of shared libraries. - Use nullptr, not NULL. - [cmake] unistd typo fix (#747) - Let VS1 follow U+1031 MYANMAR VOWEL SIGN E - Merge "Move to Harfbuzz 1.7.4" - Allow optional ZWJ in virama terminated cluster - Use nullptr instead of 0. - Fix typos. - [ot-layout] Fix nullptr dereference. If the `calloc` for `gsub_accels` or `gpos_accels` fails, then the unlikely branch afterwards can be taken, which frees up the `hb_ot_layout_t`, but since those fields can now be `nullptr`, then we don't want to dereference them. - [coretext] Fix memory leaks. In `reference_table`, if the data is empty and we return early, we still need to release the data object. In `hb_coretext_shape`, there two edge cases where an early return should release the attributed string. - Move to Harfbuzz 1.7.4 Merge commit '007a2a4317227b8fb4c764c590203c85fc3da5fd'. - 1.7.5 - Fix distcheck - [aat] Limit number of DontAdvance transitions Remove the faulty loop-detection logic. Use max-ops for breaking out of infinite loops or heavy work. https://twitter.com/behdadesfahbod/status/958065026262183936 - [test/text-rendering-tests] Update from upstream - [cmake] Build src/ executables (#733) - [test] Use 'otool -L' where ldd doesn't exist (macOS) (#732) - Fix Travis build on macOS (#731) - Misc warning fixes Fixes https://github.com/harfbuzz/harfbuzz/issues/712 - Use KernSubTableFormat2::rightClassTable Issue originally reported at http://cppfiles.com/chromium.txt . This fixes what appears to be a copy - paste issue which causes both KernSubTableFormat2::rightClassTable and the 'right' argument to KernSubTableFormat2::get_kerning to go unused. - [cmake] Use -fvisibility-inlines-hidden instead (#726) - [cmake] fix symbol exporting issue on newer gcc (#724) - [ci] minor, less hacks (#722) - [ci] minor (#721) - [ci] unbreak bots with outdated freetype version (#718) - Fix typos. - [aat] Fix Ligature matching I hope... Makes "ffi" work with Zapfino. I'm not sure if doing it correctly though... - [aat] Add TODO - [aat] Implement LigatureSubtable We form the Zapfino ligature now. Yay! No further testing done. - [aat] Embed a sanitizer context in hb_aat_apply_context_t For run-time checking. - [aat] Add hb_aat_apply_context_t - Rename hb_apply_context_t to hb_ot_apply_context_t - Whitespace - [cmake] Always put test/api/CMakeLists.txt on distributions - hb-common.cc: Hatran script is right-to-left (#714) "Hatran is written from right to left horizontally" http://www.unicode.org/L2/L2012/12312-n4324-hatran.pdf This ancient script was added with Unicode 8.0. Also this spreadsheet (referenced in an inline comment in the source code) has it as RTL: http://goo.gl/x9ilM - Improve avoiding C++ linkage, definition creation and cmake tests (#710) - Update record-test.sh to the new directory layout (#716) - [aat] Allocate set dynamically - Typo Fixes https://github.com/harfbuzz/harfbuzz/issues/711 - [cmake] don't link to libstdc++ (#707) - [cmake] Fix for CMake 3.0 and below (#706) - [cmake] Fix symbols visibility and enable check-symbols.sh test (#705) - Disable MORX-13/14 Really, need better way to catch these :(. - Disallow sanitize recursing into Extension subtables multiple times Fixes https://oss-fuzz.com/v2/testcase-detail/5216838347653120 which is a stack overflow, not by way of infinite recursion, just being deep. That's disallowed anyway, so catch it as it happens, not afterwards. - Whitespace - [aat] Sanitize classTable in StateTable - [aat] Wire up table length to apply() - [aat] Towards implementing LigatureSubtable - Fix set initializer - [test/text-rendering-tests] Update from upstream - [aat] Fix some struct sizes I hate it that with my compiler at least, it doesn't catch totally uncompilable statements in templates if they are not used... - [aat] Flush rest of buffer if state machine failed - Minor - [aat] Fix symbol visibility Not sure why only one of the bots sees this as visible... - Revert accidental morx enablement - Fix docs - [aat] Tweak previous commit - [aat] Detect infinite-loops in state machine - [circleci] cat test logs on failure on autotools-based builds - [travis] On test failure, cat all .log files - [travis] Update cat'ing test-suite.log files - Disable C++11 To better catch errors locally. - [aat] Fix more builds Maybe I should disable C++11 detection such that my compiler also catches these. Doesn't look like we can switch to it for a while anyway... - [aat] Fix builds - Update _POSIX_C_SOURCE to the latest version Defining _POSIX_C_SOURCE to an old version on FreeBSD can cause C99 to be disabled in libc. - [aat] Port RearrangementSubtable to StateTableDriver - [aat] Add StateTableDriver and convert ContextualSubtable to it - [test/text-rendering-tests] Update README - [test] Disable MORX-12 Ouch. I need a better workflow for this. - [aat] Remove 'mort' support It's dead, Jim! - [aat] Allow DontAdvance Apparently CoreText does allow these. To be done: detect infinite loops. Fixes MORX-12 test. - [test/text-rendering-tests] Update from upstream - [aat] Sanitize ContextualSubtable - More warning fixes - [aat] Sanitize StateTable - [aat] Actually fix d887f931485b715775e922516a4b0de5bb92c34f - [test/text-rendering-tests] Actually disable MORX-11 - [buffer] Fix compiler warnings line 323: Warning: info hides hb_buffer_t::info ... - [aat] Make bots happy Don't know why this is not caught by my compiler. Looks like clang catches it while gcc doesn't. In file included from ../src/hb-aat-layout-morx-table.hh:31: ../src/hb-aat-layout-common-private.hh:523:30: error: no member named 'static_size' in 'AAT::ContextualSubtable::EntryData' DEFINE_SIZE_STATIC (4 + T::static_size); ~~~^ - [aat] In NoncontextualSubtable, handle MarkLast with end-of-line transition Fixes MORX-11 test. - [test/text-rendering-tests] Update from upstream - [aat] Implement ContextualSubtable Tested with Zapfino and text "2nd". Sascha will create tests later. - [aat] Towards implementing ContextualSubtable - [aat] Implement end-of-text in state machine Passes MORX-10 test now. - [test/text-rendering-tests] Update from upstream - Minor - [cmake] Update and unbreak (#700) - [aat] Generate finegrained unsafe-to-break in state-machine! Neato. - [buffer] Fix crash - [test/text-rendering-tests] Add DISABLED list - [test/in-house] Add Makefile.sources - Minor - [test/text-rendering-tests] Update from upstream Also adds an update.sh script that does this automatically. - [test/text-rendering-tests] Add README and COPYING - [aat] Fix RearrangementSubtable action - Minor - [aat] Mark state-machine-based lookup as completely unsafe-to-break To be improved later. - [aat] Implement RearrangementSubtable - Move the #define of _GNU_SOURCE to the top of hb-private.hh (#697) This fixes the build on Cygwin. - [cmake] Fix hb-blob test (#699) - [test] Better tests output by converting stderr to stdout (#696) https://gitlab.kitware.com/cmake/cmake/issues/17630 - [test] Print shaping output on CI fails (#695) - [cmake] Another try on making sure feature testing is working (#691) - [util] Replace setlinebuf - [util] Set stdio files to line buffering So we can stream lines to hb-shape and read output. - [aat] Add Class subtable thingy From old 'mort' table. - [cmake] Add header existence tests (#685) - [cmake] Fix tests against latest changes (#690) - Improve HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES docs Add the note about absolute glyph positions from the commit message. - [test] Move test handling to sundirectories - [test] Whitelist one more passing test - Calculate anchor positions in float, then round Hoping to reduce rounding error, to make tests happier... No luck. - [test] Whitelist one more passing test - Round, instead of floor, when applying variations Hoping this would fix remaining text-rendering-tests failures, but so far no luck. - [test] Whitelist one passing test - Minor - Minor - [test] Another try Making cmake happy this time. - [test] Fix text disabling Ouch, make! - [test/text-rendering-tests] Disable failing tests - [test/text-rendering-tests] Disable failing tests - Add HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES New API: HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES hb-shape / hb-view --remove-default-ignorables One more text-rendering-tests test passing. Eleven failing. - [test/text-rendering-tests] Hook up font variations Six more passing. Twelve failing now. - [test] Add tests from text-rendering-tests repo https://github.com/unicode-org/text-rendering-tests - Prefix int types with HB Such a headache that Windows defines UINT8, ...; Just prefix it. - [aat] Try fixing VC bots c:\projects\harfbuzz\src\hb-aat-layout-common-private.hh(51): error C2872: 'UINT16': ambiguous symbol [C:\projects\harfbuzz\build\harfbuzz.vcxproj] C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared\basetsd.h(80): note: could be 'unsigned short UINT16' c:\projects\harfbuzz\src\hb-open-type-private.hh(648): note: or 'OT::UINT16' - Disable processing of morx table in ot shaper So I can merge this to master... - [util] Add hb-shape --ned For not displaying extra data: no clusters, no advance. Just data pertaining to where glyphs end up on the screen. - [test] Minor - [kern] Mark unsafe-to-break - Add option to buffer serialization to not output glyph advances When advances are not printed, glyph offsets reflect absolute glyph positions. New API: HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES hb-shape --no-advances - [test] Add script for extracting tests from text-rendering-tests Work in progress... https://github.com/unicode-org/text-rendering-tests - [test] Minor - [test] Simplify test runner Always pass hb-shape as first argument to run-tests.py. Also require automake 1.13. - [test] Minor - [test] Reorganize test suite In anticipation of importing more test suites. - [test] Remove unused hb-diff-ngrams - [test] Remove unused manifest stuff - [test] Move test files around - [aat/morx] Implement NoncontextualSubtables Also makes hb-ot-shape call morx for now instead of GSUB... Just for testing. - Minor - [aat] Implement Lookup table Untested, but compiles. - Minor - [aat] Update previous commits for rebase on master - [aat] Start implementing common table formats - [aat] Start implementing Apple AAT morx table [...] --- external/harfbuzz_ng | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/harfbuzz_ng b/external/harfbuzz_ng index 4c37cfd7ee..45a4d8338c 160000 --- a/external/harfbuzz_ng +++ b/external/harfbuzz_ng @@ -1 +1 @@ -Subproject commit 4c37cfd7ee27796854bbd1d3fe74f70e2da857ce +Subproject commit 45a4d8338c593592b40a143cfe7f3a71f336a548